商店存货管理系统.docx
- 文档编号:901414
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:50
- 大小:431.65KB
商店存货管理系统.docx
《商店存货管理系统.docx》由会员分享,可在线阅读,更多相关《商店存货管理系统.docx(50页珍藏版)》请在冰点文库上搜索。
商店存货管理系统
兰州商学院陇桥学院
工学系课程设计报告
设计题目:
商品存货管理系统
系别:
工学系
专业(方向):
计算机科学与技术(网络工程方向)
年级、班:
2012级本科班
学生姓名:
***
学生学号:
***********
指导教师:
***
2013年6月30日
目录
一、系统开发的背景1
二、系统分析与设计1
(一)系统功能要求1
(二)系统模块结构设计1
三、系统的设计与实现3
(一)查看商品全部信息:
xuanze1()3
(二)查看某个商品信息:
xuanze2()4
(三)添加商品信息:
xuanze3()5
(四)修改商品信息:
xuanze4()7
(五)删除商品信息:
xuanze5()11
(六)销售商品:
xuanze6()12
(七)返回主菜单:
xuanze7()14
四、系统测试15
(一)测试xuanze1()函数15
(二)测试xuanze2()函数15
(三)测试xuanze3()函数16
(四)测试xuanze4()函数17
(五)测试xuanze5()函数19
(六)测试xuanze6()函数20
(七)测试xuanze7()函数21
五、总结21
六、附件(代码、部分图表)21
商店存货管理系统
一、系统开发的背景
随着社会的发展,商品日新月异,品种繁多,以前的纸质记账方式已不能满足社会的需求,因此我们要用计算机设计一个商店存货管理系统来替代纸质记账方式,它可以为店主和消费者带来方便,提高商店的工作效率。
二、系统分析与设计
(一)系统功能要求
建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。
1、建立商品基本信息(名称,编号,数量,进货时间,保质时间);
2、入货操作;
3、出货操作;
4、查询库存;
(二)系统模块结构设计
通过对系统功能的分析,商店存货系统功能如图1所示。
商店存货管理系统
图1商店存货管理系统功能图
通过上图的功能分析,把整个系统划分为8个模块:
1、查看商品全部信息,该模块主要实现商品基本信息(名称,编号,数量,进货时间,保质时间)的输出,借助函数xuanze1(),调用结构体内已存入的商品来实现;
2、查看某个商品信息,该模块主要实现通过借助函数xuanze2(),调用结构体内已存入的数据,来实现对某一商品的查找;
3、添加商品信息,该模块中又实现两个功能,
(1)添加同一商品,
(2)添加新商品。
通过借助函数xuanze3()实现;
4、修改商品,该模块主要实现对全部信息中不正确的信息进行更改,通过借助函数xuanze4()实现;
5、删除商品,该模块主要实现对已过时的,该店不再销售的商品进行删除,通过借助函数xuanze5()实现;
6、销售商品,该模块主要实现销售商品,计算总价,统计库存余量,通过借助函数xuanze6()实现;
7、返回主菜单,该模块作用为方便对不同需求进行再次选择,通过借助函数xuanze7()实现;
8、安全退出,该模块主要作用为当不需操作时退出操作。
三、系统的设计与实现
(一)查看商品全部信息:
xuanze1()
分析:
首先输出表头,然后依次输出全部的基本信息。
流程图如图xuanze1()所示
图2:
xuanze1()流程图
该模块的具体代码如下所示。
voidxuanze1()
{
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("--------------------------------------------------------------------------\n");
for(i=0;i<10+k;i++)
{
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("\n");
}
printf("--------------------------------------------------------------------------\n");
}
(二)查看某个商品信息:
xuanze2()
分析:
先把需要查找的商品编号存放在一个变量中,让后在全部商品中寻找该商品,如果找到,在表中输出该商品信息。
流程图如图xuanze2()所示
。
图3:
xuanze1()流程图
该模块的具体代码如下所示。
voidxuanze2()
{
intp;
printf("请输入所要查找的商品编号(如100001):
");
scanf("%d",&p);
for(i=0;i<10+k;i++)
if(p==f[i].bianhao)
{
printf("您所要查询商品的详细信息为:
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("\n");
printf("--------------------------------------------------------------------------\n");
}
(三)添加商品信息:
xuanze3()
分析:
输入一个变量,如果为1,然后输入所要添加的商品编号进行库存添加;如果为2,然后对新商品进行添加。
流程图如图
xuanze3()所示。
图4:
xuanze3()流程图
该模块的具体代码如下所示。
voidxuanze3()
{
inti,j,a,b,c;
printf("添加某一商品数量请按1,添加新商品请按2:
");
scanf("%d",&a);
if(a==1)
{
printf("请输入所要添加商品编号(如100001)和所添数量(中间用空格空开):
");
scanf("%d%d",&b,&c);
for(i=0;i<10+k;i++)
{
if(b==f[i].bianhao)
{
f[i].count=f[i].count+c;
printf("经添加后%s库存为:
%d\n",f[i].name,f[i].count);
}
}
}
if(a==2)
{
printf("请输入所要添加的商品种类数量:
");
scanf("%d",&k);
printf("请分别输入所要添加的商品名,编号,单价,添加数量,进货时间,保质时间\n");
printf("(中间用空格隔开):
\n");
for(i=10;i<10+k;i++)
scanf("%s%d%f%d%d%d%d%d%d%d",&f[i].name,&f[i].bianhao,&f[i].danjia,&f[i].count,&f[i].y0,&f[i].m0,&f[i].d0,&f[i].y1,&f[i].m1,&f[i].d1);
if(j)
{
printf("添加后商品信息:
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
for(i=0;i<10+k;i++)
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("--------------------------------------------------------------------------\n");
}
}
}
(四)修改商品信息:
xuanze4()
分析:
先输入商品编号,再输入一个变量,然后对对应变量进行修改。
流程图如图
xuanze4()所示。
图5:
xuanze4()流程图
该模块的具体代码如下所示。
voidxuanze4()
{
intc,d,e,i,p,q,h;
floatg;
printf("请输入所要修改的商品编号:
\n");
scanf("%d",&p);
printf(".........................................\n");
printf("请选择所要修改的项目序号\n");
printf("1.商品名2.编号\n");
printf("3.单价4.库存\n");
printf("5.生产日期6.有效期\n");
printf(".........................................\n");
scanf("%d",&q);
for(i=0;i<10+k;i++)
{
if(p==f[i].bianhao)
{
if(q==1)
{
printf("请输入现在的商品名:
");
scanf("%s",&f[i].name);
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
if(q==2)
{
printf("请输入正确的编号:
");
scanf("%d",&h);
f[i].bianhao=h;
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
if(q==3)
{
printf("请输入正确的单价:
");
scanf("%f",&g);
f[i].danjia=g;
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
if(q==4)
{
printf("请输入正确的库存:
");
scanf("%d",&h);
f[i].count=h;
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
if(q==5)
{
printf("请输入正确的生产日期(年,月,日之间用空格空开):
");
scanf("%d%d%d",&c,&d,&e);
f[i].y0=c;
f[i].m0=d;
f[i].d0=e;
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
if(q==6)
{
printf("请输入正确的有效期(年,月,日之间用空格空开):
");
scanf("%d%d%d",&c,&d,&e);
f[i].y1=c;
f[i].m1=d;
f[i].d1=e;
printf("修改成功!
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[i].name,
f[i].bianhao,f[i].danjia,f[i].count,f[i].y0,f[i].m0,f[i].d0,f[i].y1,f[i].m1,f[i].d1);
printf("------------------------------------------------------------------------\n");
}
}
}
}
(五)删除商品信息:
xuanze5()
分析:
先输入商品编号,在全部商品信息中找到该商品进行删除,然后输出剩余商品信息。
流程图如图
xuanze5()所示。
图6:
xuanze5()流程图
该模块的具体代码如下所示。
voidxuanze5()
{
intq,b[1000];
printf("请填写您所要删除的商品编号(如100001):
");
scanf("%d",&b[20]);
printf("删除成功!
\n");
printf("经删除后,商品信息:
\n");
printf("--------------------------------------------------------------------------\n");
printf("商品名编号单价库存数量进货时间保质时间\n");
for(i=0;i<10+k;i++)
{
if(b[20]!
=f[i].bianhao)
{
q=i;
printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[q].name,
f[q].bianhao,f[q].danjia,f[q].count,f[q].y0,f[q].m0,f[q].d0,f[q].y1,f[q].m1,f[q].d1);
}
}
printf("--------------------------------------------------------------------------\n");
}
(六)销售商品:
xuanze6()
分析:
先输入商品编号,在全部商品信息中找到该商品进行删除,然后输出剩余商品信息。
流程图如图
xuanze6()所示。
图7:
xuanze6()流程图
该模块的具体代码如下所示。
voidxuanze6()
{
intj,p,b[100000],q;
floatsum=0.0,c[100000];
printf("请输入所有购买的商品种类数量:
");
scanf("%d",&q);
printf("请输入所选商品编号(如100001)和所购数量(中间用空格空开):
");
for(j=0;j scanf("%d%f",&b[j],&c[j]); printf("您所购商品详细信息: \n"); printf("--------------------------------------------------------------------------\n"); printf("商品名编号单价库存数量进货时间保质时间\n"); for(j=0;j { for(i=0;i<10+k;i++) {if(b[j]==f[i].bianhao) { p=i; printf("%s%d%.2f%d%d-%d-%d%d-%d-%d\n",f[p].name, f[p].bianhao,f[p].danjia,f[p].count,f[p].y0,f[p].m0,f[p].d0,f[p].y1,f[p].m1,f[p].d1); sum+=c[j]*f[p].danjia; } } } printf("--------------------------------------------------------------------------\n"); printf("您所购商品总额为: %.2f\n",sum); printf("购买后: \n"); for(j=0;j { for(i=0;i<10+k;i++) { if(b[j]==f[i].bianhao) { p=i; f[p].count-=c[j]; printf("%s库存为%d\n",f[p].name,f[p].count); } } } (七)返回主菜单: xuanze7() 分析: 先利用清屏命令system("cls")清屏,然后调用函数zhucaidan()输出主菜单。 达到返回主菜单目的。 该模块的具体代码如下所示。 voidxuanze7() { system("cls"); zhucaidan(); } 四、系统测试 (一)测试xuanze1()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图8 (二)测试xuanze2()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图9 (三)测试xuanze3()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图10 图11 (四)测试xuanze4()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图12 图13 图14 (五)测试xuanze5()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图15 (六)测试xuanze6()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图16 (七)测试xuanze7()函数 测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。 图17 五、总结 1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商店 存货 管理 系统