C语言实现的仓库管理程序

需积分: 50 13 下载量 50 浏览量 更新于2024-10-04 1 收藏 10KB TXT 举报
"这是一个使用C语言编写的仓库管理系统,包含了源代码和需求分析。系统提供了对货物信息的增、删、查、改等基本操作,以及帮助和退出等功能。" 在C实训项目中,这个仓库管理系统是通过结构体来存储货物信息的。`struct cargo`定义了一个结构体,包含以下字段: 1. `num[10]`: 存储货物编号,长度为10个字符。 2. `name[10]`: 存储货物名称,长度同样为10个字符。 3. `price[3]`: 存储货物价格,考虑到货币金额通常不超过三位数字,所以长度设为3个字符。 4. `number[10]`: 可能用于存储货物的数量或者额外的编号,长度也是10个字符。 此外,全局变量`k=0`被用来记录当前仓库中货物的数量。 该系统的核心功能实现如下: - `enter()`: 用于添加新的货物信息到系统中。 - `display()`: 显示仓库中所有货物的信息。 - `look()`: 允许用户按照一定的条件查看货物信息。 - `change()`: 修改仓库中已有货物的信息。 - `del()`: 删除仓库中的特定货物。 - `save()`: 将当前仓库的货物信息保存到文件,以便后续读取和恢复。 - `lookbynum()` 和 `lookbyname()`: 根据货物编号或名称查询货物信息。 - `changebynum()` 和 `changebyname()`: 根据货物编号或名称修改货物信息。 - `delbynum()` 和 `delbyname()`: 根据货物编号或名称删除货物信息。 - `help()`: 提供系统操作的帮助指南。 - `main()`: 系统的主函数,负责用户交互界面和功能选择的逻辑控制。 在`main()`函数中,通过`switch-case`结构实现了用户菜单的选择,用户可以输入数字1-8来执行相应的操作。例如,输入1则调用`enter()`函数添加货物,输入2则调用`display()`显示所有货物等。 通过这样的设计,学生可以在实际操作中理解和掌握C语言的结构体、文件操作、内存管理以及用户交互等方面的知识,这对于初学者来说是一次很好的实践机会。同时,这个系统也可以根据实际需求进行扩展,例如增加库存预警、货物分类管理等功能,以提升系统的实用性。
2020-07-01 上传
#include #include #include #include #define M 50 typedef struct //结构体 { int num; //货品编号 char name[20]; //货品名称 int stock; //原始库存 int in; //入库数目 int out; //出库数目 int amount; //最终库存 int warning_value; //警戒值 int state; //库存状态(是否低于警戒值) }goods; goods s[M]; //用于存放货品信息 goods r[M]; //用于存放入库货品信息 goods t[M]; //用于存放出库货品信息 void Re_file(); //读入原始库存文件 void Stock_in(); //读入入库文件 void Stock_out(); //读入出库文件 void Display(); //显示库存情况 void Estimate(); //判断库存值是否小于警戒值 void Query(); //查询货品 void Sort(); //商品库存总量从小到大排序 void Printf_back(); //返回主菜单 void Modify(); //修改货品信息 void Statistics(); //统计数目 int Wr_file(); //写输出文件 int N; int P; main() { int sele; Re_file(); //读取货品信息 sele=1; while(sele) { system("cls"); printf("\n\n"); printf("**************************************\n"); printf("* 仓库物资管理系统 *\n"); printf("**************************************\n"); printf("********** 1.物资入库 **********\n"); printf("********** **********\n"); printf("********** 2.物资出库 **********\n"); printf("********** **********\n"); printf("********** 3.物资查询 **********\n"); printf("********** **********\n"); printf("********** 4.物资排序 **********\n"); printf("********** **********\n"); printf("********** 5.库存修改 **********\n"); printf("********** **********\n"); printf("********** 6.统计库存 **********\n"); printf("********** **********\n"); printf("********** 7.退出程序 **********\n"); printf("**************************************\n"); printf("\n\n"); printf("请选择功能序号:"); scanf("%d",&sele); switch(sele) { case 1:Stock_in();Display();break; case 2:Stock_out();Display();break; case 3:Query();break; case 4:Sort();Display();break; case 5:Modify();Display();break; case 6:Statistics();break; case 7:exit(0);sele=0;break; } printf("\n\n按任意键继续...\n"); getch(); //读取字符 } Wr_file(); }