1、商 品 库 存 管 理程序设计报告课程名称:C 语言课程设计程序设计班 级: 电 气 1401 组 长: 王闯 小组成员:王闯 孟宁 夏涵 胡琛 谢俊良 韩梦成 代仁旺 指导老师: 伊芸芸 目录第 1 章 引言 (1)第 2 章 总体设计 (2)2.1 系统的需求分析 (2)2.2 系统的功能 (2)2.3 主要用到的函数 (6)第 3 章 详细设计 (7) 3.1 代码以及对应的备注(9)第 4 章 界面设计及代码 (17)4.1 主界面 (17)4.2 录入商品信息 (18)4.3 查看商品信息 (20)4.4 删除商品信息 (22)4.5 修改商品信息 (24)4.6 查询单个商品信息(
2、30)4.7 商品库存系统退出(32)4.8 其他字符输入管理(32)第 5 章 调试 (34)5.1 测试目的(34)5.2 功能测试(34)第 6 章 总结与展望 (35)附录 (36)附录 A 小组成员及其分工情况(36)参考文献(37)第 1 章 引言商品经济是社会经济的重要组成部分,而作为商品经济最基本的商品,由于其种类繁多,因此其商品管理本身就已经比较复杂,何况作为商品管理最重要的库存管理的复杂性, 可想而知。因此一个完善的商品库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以商品库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一
3、直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对物资信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套商品库存管理软件成为很有必要的
4、事情。第 2 章 总体设计2.1 系统的需求分析伴随着计算机的发展及网络技术的应用,我们正在快速地向信息化社会迈进,信息自动化的作用变得越来越大。在仓库管理领域中,仓库管理的规模正在不断扩大,仓库管理的复杂度正在急剧地增加,有关仓库管理的各种信息量也成倍地增长。面对庞大的信息量,就需要有商品库存管理系统来提高库存管理工作的效率。通过这样的系统,可以方便的查询、添加和修改商品及供货商的基本情况,掌握入库出库的各种情况,实现信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,同时避免由于人为因素造成数据遗漏和误报等。2.2 系统功能本系统主要模块为商品信息管理。仓库管理模块通过此模块来管
5、理商品信息,包括浏览、录入、查询、修改和删除功能。2.2.1 录入功能录入功能是向系统中输入数据的一个功能。可以把商品的名称、编号以及数据录入系统中。流程图如图 2.1 所示图 2.1 入库流程图2.2.2 查询功能查询功能是对于库存中的产品的数据进行查询。流程图如图 2.2 所示图 2.2 查询功能流程图首先输入一个商品代码 i,然后对 i 进行判断,如果 i 正确也就是存在,那么 i,执行输出该商品各信息的步骤。如果 i 不存在 i,那么执行没有该商品这个步骤。最后进行循环该步骤查询多个商品.2.2.3 修改功能修改功能是应用于对商品信息的修改。出库后的时候对商品库存数目的管理;还有对于一
6、些错误信息的修改。具体流程如图 2.3 所示图 2.3 修改功能流程图2.2.4 删除功能删除功能主要应用于把不需要的商品进行下架处理。流程图如图 2.4 所示图 2.1 删除功能流程图刚开始定义两个变量,然后与商品的属性值进行比较,通过循环达到我们所需的条件,再根据这些与录入的商品信息进行比较,商品信息中有我们要找的商品最后进行删除,没有该商品信息的则退出。2.3 主要用到的函数1. int main(void);主函数 2.void add_goods(information im , int geshu);录入商品信息 3.check_goods(information im);查询并显
7、示所有商品 4.menu(); 列出对商品所要执行的操作:录入、查询、删除、修改5.void del_goodsinfor(information im ,int goods_number);对商品进行删除操作6. void check_oneGoods(information im , int goods_number); 对商品按编号进行查询7. void menu1();列出对商品信息修改操作:名称、编号、数目 8. void change_goodsinfor(information im ,int goods_number)对商品信息进行修改 第三章 详细设计3.1 代码以及对应的备
8、注#include#define max 100/*给定结构体数组的最大值*/int size = 0;/*显示商品属性的信息*/typedef struct goodsInformationchar goods_name20;/*商品的名字*/ int goods_number;/*商品的编号*/ int goods_count;/*商品的数目*/information;/* Function:void add_goods(information im, int geshu) * Description:存储商品的信息 * Called By:* int main(void) * Input
9、:用户根据相应的提示,输入商品信息 * */void add_goods(information im, int geshu)int i;int count = size + geshu;/*目的是实现商品的多次输入*/ for(i = size; i count; i+)printf(“请录入商品的名称:n“); scanf(“%s“,imi.goods_name);printf(“请录入商品的编号:n“);scanf(“%d“,printf(“请录入商品的数目:n“); scanf(“%d“,size+;/*end of for*/ printf(“添加成功!nn“); /* Functi
10、on:void check_goods(information im)* Description:查询所有的商品并显示出来 * Called By:* int main(void) * Output:显示所有的商品 * */void check_goods(information im)int i;/*目的是实现输入多个商品*/for(i = 0; i size; i+)printf(“库存的商品有:“);printf(“商品的名称=%st 商品的编号=%dt 商品的数目=%dn“,imi.goods_name,imi.goods_number,imi.goods_count);/*end o
11、f for*/ /* Function:void menu()* Description:列出对商品所要执行的操作:录入、查询、删除、修改等。 * Called By:* int main(void) * Output:列出对商品所要执行的操作:录入、查询、删除、修改* */void menu()printf(“nttt 菜单栏nntt1.录入tt2.查看nntt3.删除tt4.修改nntt5.查询tt 退出请按:-1nn“);/* Function:void del_goodsinfor(information im,int goods_number)* Description:删除对应编号
12、的商品信息。 * Called By:* int main(void) * Output:输出提示信息 * */ void del_goodsinfor(information im,int goods_number)int i,j;/*找到给定的编号,并删除对应编号的信息*/for(i = 0; i size; i+)/*通过比较找到对应编号,然后删除*/ if(imi.goods_number = goods_number)/*通过移动数组元素来删除信息*/ for(j = i; j size - 1; j+)imj = imj+1; /*end of for*/ size-;printf
13、(“删除成功!n“);return ;/*end of if*/ /*end of for*/ printf(“没有该商品n“);/* Function:void check_oneGoods(information im, int goods_number)* Description:根据相应的编号,查询一个商品的信息并显示出来 * Called By:* int main(void) * Output:一个的商品的信息 * */void check_oneGoods(information im, int goods_number)int i;/*是实现一个商品的查询*/for(i = 0
14、; i size; i+)if(imi.goods_number = goods_number)printf(“商品的名称=%st 商品的编号=%dt 商品的数目=%dn“,imi.goods_name,imi.goods_number,imi.goods_count);return ;/*end of if*/*end of for*/ printf(“没有该商品n“);/* Function:void menu1()* Description:列出对商品的属性所要执行的操作:名称、编号、数目等。 * Called By:* void change_goodsinfor(informatio
15、n im,int goods_number) * Output:列出对商品所要执行的操作:名称、编号、数目* */void menu1()printf(“nttt 选择修改项nntt1.名称tt2.编号nntt3.数目t4.修改所有信息nn“);/* Function:void change_goodsinfor(information im,int goods_number)* Description:根据相应的编号,修改一个商品的信息 * Calls: void menu1()* Called By:* int main(void) * Output:对商品的修改信息进行提示 * */ v
16、oid change_goodsinfor(information im,int goods_number)int i, choose;/*找到对应的编号,然后根据对应编号的商品信息进行修改*/ for(i=0; isize; i+)/*通过比较找到修改的编号,进行修改*/ if(imi.goods_number = goods_number)menu1(); /*列出对商品所要执行的操作:名称、编号、数目*/ printf(“请选择要修改的信息项目:“);scanf(“%d“, /*根据用户选择进行相应的修改*/switch(choose)case 1:printf(“请录入修改的商品的名称
17、:n“); scanf(“%s“,imi.goods_name);printf(“修改成功!n“);break;case 2:printf(“请录入修改的商品的编号:n“); scanf(“%d“,printf(“修改成功!n“);break;case 3:printf(“请录入修改的商品的数目:n“); scanf(“%d“,printf(“修改成功!n“);break;case 4:printf(“请录入修改的商品的名称:n“); scanf(“%s“,imi.goods_name);printf(“请录入修改的商品的编号:n“); scanf(“%d“,printf(“请录入修改的商品的
18、数目:n“); scanf(“%d“,printf(“修改成功!n“);break;default:printf(“输入错误!“); /*end of switch*/return;/*end of if*/*end of for*/printf(“没有该商品n“);/* Function:int main(void) Description:主函数* Calls:* 1.void add_goods(information im, int geshu); * 2.check_goods(information im); * 3.menu(); * 4.void del_goodsinfor(
19、information im,int goods_number);* 5. void check_oneGoods(information im, int goods_number); * 6. void change_goodsinfor(information im,int goods_number) * Input:用户根据需要,输入要选择的功能的编号* Output:查询并显示所有的商品 * */int main(void) information goodsmax;int geshu;int value = 0; int goods_id;while(value != -1)/当用户
20、不想对商品进行操作时,按“-1“结束操作 menu();/列出操作:录入、查询、删除、修改等 printf(“请选择所要执行的操作:n“);scanf(“%d“, switch(value)/根据 value 的值来执行相应的操作 case 1:printf(“请输入你要录入商品种类的个数:“); scanf(“%d“, add_goods(goods, geshu);/商品的录入 break;case 2:check_goods(goods);/所有商品的查询 break;case 3:printf(“请输入要删除的商品的编号:“);scanf(“%d“, del_goodsinfor(go
21、ods,goods_id);/删除商品的信息 break;case 4:printf(“请输入要修改的商品的编号:“);scanf(“%d“,change_goodsinfor(goods,goods_id);/修改商品的信息 break;case 5:printf(“请输入要查询的商品的编号:“);scanf(“%d“,check_oneGoods(goods,goods_id);/商品信息的查询 break;case -1:printf(“退出!“);break;default:printf(“输入信息错误!“); /*end of switch*/*end of while*/ 第四章
22、平面设计及代码4.1 主界面进入后主界面后的界面如图 4.1 所示。图 4.1 主界面主界面所用到的代码:menu();/列出操作:录入、查询、删除、修改等 printf(“请选择所要执行的操作:n“);scanf(“%d“, switch(value)/根据 value 的值来执行相应的操作 case 1:printf(“请输入你要录入商品种类的个数:“); scanf(“%d“, add_goods(goods, geshu);/商品的录入 break;case 2:check_goods(goods);/所有商品的查询 break;case 3:printf(“请输入要删除的商品的编号:
23、“);scanf(“%d“, del_goodsinfor(goods,goods_id);/删除商品的信息 break;case 4:printf(“请输入要修改的商品的编号:“);scanf(“%d“,change_goodsinfor(goods,goods_id);/修改商品的信息 break;case 5:printf(“请输入要查询的商品的编号:“);scanf(“%d“,check_oneGoods(goods,goods_id);/商品信息的查询 break;case -1:printf(“退出!“);break;default:printf(“输入信息错误!“); 4.2 录
24、入商品信息录入商品信息时,首先提示录入商品的种类个数,选择过后,然后进行商品信息的名称、编号、数量的录入,最后提示添加成功。如图 4.2 所示。图 4.2 录入信息这个过程用到的代码:void add_goods(information im, int geshu)int i;int count = size + geshu;/*目的是实现商品的多次输入*/ for(i = size; i count; i+)printf(“请录入商品的名称:n“); scanf(“%s“,imi.goods_name);printf(“请录入商品的编号:n“);scanf(“%d“,printf(“请录入商
25、品的数目:n“); scanf(“%d“,size+;/*end of for*/ printf(“添加成功!nn“); 4.3 查看商品信息当查看商品信息时,显示的是库存里的所有商品。当没有商品时则什么都不显示,直接继续下一步操作(如图 4.3.1 所示);有商品的时候 ,则全部商品都显示出来。如图 4.3.2 所示。图 4.3.1 查看商品信息 1图 4.3.2 查看商品信息 2这个过程用到的代码:void check_goods(information im)int i;/*目的是实现输入多个商品*/for(i = 0; i size; i+)printf(“库存的商品有:“);prin
26、tf(“商品的名称=%st 商品的编号=%dt 商品的数目=%dn“,imi.goods_name,imi.goods_number,imi.goods_count);/*end of for*/ 4.4 删除商品信息删除商品信息时,提示删除该商品的编号是什么。当删除的商品在库存里没有时,提示没有该商品(如图 4.4.1 所示);当删除的商品在库存里有的时候,则显示删除成功。如图 4.4.2 所示。图 4.4.1 删除商品信息 1图 4.4.2 删除商品信息 2这个过程用到的代码:void del_goodsinfor(information im,int goods_number)int i
27、,j;/*找到给定的编号,并删除对应编号的信息*/for(i = 0; i size; i+)/*通过比较找到对应编号,然后删除*/ if(imi.goods_number = goods_number)/*通过移动数组元素来删除信息*/ for(j = i; j size - 1; j+)imj = imj+1; /*end of for*/ size-;printf(“删除成功!n“);return ;/*end of if*/ /*end of for*/ printf(“没有该商品n“);4.5 修改商品信息修改商品信息时,输入一个商品的编号,当库存里没有该商品时,则提示没有该商品(如图 4.5.1 所示);当库存里有该商品时,则提示修改商品的什么内容。修改内容分别为名称、编号、数目以及所有信息。如图 4.5.2 所示。图 4.5.1 修改商品信息 1