以下是一个简单的商品入库出库查询的功能代码,其中使用了结构体来表示商品信息,使用了数组来保存多个商品的信息:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_PRODUCTS 100 // 最大商品数量 // 商品结构体 typedef struct Product { char name[20]; // 商品名称 int stock; // 库存数量 } Product; // 商品数组 Product products[MAX_PRODUCTS]; int num_products = 0; // 显示菜单 void show_menu() { printf("1. 显示所有商品\n"); printf("2. 入库\n"); printf("3. 出库\n"); printf("4. 查询商品\n"); printf("5. 退出\n"); } // 显示所有商品 void show_all_products() { if (num_products == 0) { printf("没有商品!\n"); return; } printf("名称\t库存\n"); for (int i = 0; i < num_products; i++) { printf("%s\t%d\n", products[i].name, products[i].stock); } } // 查找商品的索引 int find_product_index(char* name) { for (int i = 0; i < num_products; i++) { if (strcmp(products[i].name, name) == 0) { return i; } } return -1; } // 入库 void add_stock() { char name[20]; int stock; printf("请输入商品名称:"); scanf("%s", name); printf("请输入入库数量:"); scanf("%d", &stock); int index = find_product_index(name); if (index == -1) { printf("没有找到商品 %s!\n", name); return; } products[index].stock += stock; printf("商品 %s 入库 %d 个,当前库存 %d 个\n", name, stock, products[index].stock); } // 出库 void reduce_stock() { char name[20]; int stock; printf("请输入商品名称:"); scanf("%s", name); printf("请输入出库数量:"); scanf("%d", &stock); int index = find_product_index(name); if (index == -1) { printf("没有找到商品 %s!\n", name); return; } if (products[index].stock < stock) { printf("商品 %s 库存不足!\n", name); return; } products[index].stock -= stock; printf("商品 %s 出库 %d 个,当前库存 %d 个\n", name, stock, products[index].stock); } // 查询商品 void search_product() { char name[20]; printf("请输入商品名称:"); scanf("%s", name); int index = find_product_index(name); if (index == -1) { printf("没有找到商品 %s!\n", name); return; } printf("名称\t库存\n"); printf("%s\t%d\n", products[index].name, products[index].stock); } // 主函数 int main() { int choice; while (1) { show_menu(); printf("请选择操作:"); scanf("%d", &choice); switch (choice) { case 1: show_all_products(); break; case 2: add_stock(); break; case 3: reduce_stock(); break; case 4: search_product(); break; case 5: printf("再见!\n"); return 0; default: printf("无效的选择!\n"); break; } } }
以上代码实现了商品入库出库查询的功能,包括以下操作:
- 显示所有商品
- 入库
- 出库
- 查询商品 用户可以根据菜单选择需要的操作,方便地管理商品的库存信息。
以上代码实现的商品入库出库查询功能比较简单,还有许多可以完善的地方。以下是一些可以继续完善的方向:
输入检查
目前的代码没有对用户输入进行检查,可能会导致程序崩溃或出现意外结果。可以在输入时加入一些检查,比如检查输入的商品名称是否存在、入库出库数量是否为正数等等。
文件存储
目前的代码在程序退出时会丢失所有商品信息,可以将商品信息保存到文件中,下次运行程序时自动加载之前的商品信息。
商品分类
如果有多种类型的商品,可以考虑对商品进行分类管理,比如按照商品类别、品牌、规格等分类。
界面优化
目前的代码界面比较简陋,可以考虑使用图形界面或者命令行界面库来优化界面,方便用户更直观地查看和管理商品信息。
数据库支持
如果需要进行更加复杂的商品管理,可以考虑使用数据库来存储和管理商品信息,比如使用MySQL、SQLite等数据库。 综上,以上代码可以作为商品入库出库查询功能的基础代码,还有许多可以完善的地方,可以根据实际需求进行扩展和修改。
评论