C语言实现仓库管理信息系统

5星 · 超过95%的资源 需积分: 49 130 下载量 92 浏览量 更新于2024-07-18 37 收藏 90KB DOC 举报
"C语言仓库管理系统是一个用于管理仓库业务及其作业的信息系统,通过货物信息、单据和人员管理实现综合管理。系统支持货物的增删查统,优化企业仓库管理的准确性与效率。代码中使用了C语言,包含了结构体定义、数据操作函数以及一系列功能接口,如登录、信息查询、单据操作、统计等。" 在这个C语言编写的仓库管理系统中,主要涉及到以下几个关键知识点: 1. **结构体(Struct)**:系统定义了两个结构体,`List` 和 `People`。`People` 结构体用于表示货物信息,包括序列号(num)、货物名称(info1)、货物数量(info2)和负责人名称(info3)。`List` 结构体则用来存储和管理`People`结构体对象的链表,包含指向成员的指针(elem)、当前成员数(length)和最大成员容量(listsize)。 2. **动态内存分配(malloc、calloc、realloc)**:在C语言中,使用`malloc`、`calloc`或`realloc`进行内存分配。例如,`malloc`函数用于动态创建`People`结构体实例。 3. **链表操作**:`ListInsert`函数可能是用于在链表中插入新的货物信息。链表的插入操作通常涉及创建新节点、设置节点数据和更新链表长度。 4. **文件操作**:函数如`read`和`write`可能用于读取和保存货物信息到文件。例如,`read`函数可能读取文件中的数据并填充到`List`结构体中。 5. **函数指针**:系统定义了一系列功能函数,如`login`、`xinxi`、`danju`等,这些函数可能分别对应登录、信息查询、单据操作等功能,通过函数指针调用实现不同业务逻辑。 6. **字符串处理**:在`isCharArrayEqauls`和`compareCharArray`等函数中,涉及字符串比较,用于检查货物名称或负责人名称是否相等。 7. **数组操作**:`ArrayCopy`函数可能用于复制字符数组,例如在复制货物名称时。 8. **用户交互**:`fmain`函数作为主程序入口,会调用其他功能函数,实现与用户的交互,如登录、数据输入输出、系统维护等。 9. **错误处理**:`isover`和`tuchu`等函数可能用于处理程序结束或退出的逻辑。 10. **统计与报表**:`tongji`和`quetecenter`函数可能用于生成仓库统计报告或处理用户查询请求。 通过这个仓库管理系统,开发者可以学习到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(); }