C语言超市收银管理系统实现.docx
- 文档编号:9158414
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:254.47KB
C语言超市收银管理系统实现.docx
《C语言超市收银管理系统实现.docx》由会员分享,可在线阅读,更多相关《C语言超市收银管理系统实现.docx(21页珍藏版)》请在冰豆网上搜索。
C语言超市收银管理系统实现
超市收银管理程序的设计与实现
1摘要和关键字
1.1摘要
该系统主要用于超市商品管理人员对于商品的信息(包括商品号、商品名、单价)进行输入、删除、修改和查询。
除此之外,当销售人员输入商品号及销售数量时,系统应计算应收钱数,并根据实际收银计算找零数量。
最后,系统能对销售情况进行查询。
Abstract
Thesystemismainlyusedinthesupermarketgoodsmanagementpersonneloftheproductinformation(includingcommoditynumber,nameofgoods,unitprice)input,delete,modify,andquery.Inaddition,whensalesstaffinputarticlenumberandsalesvolume,thesystemshouldbecalculatedaccordingtotheactualamountreceivable,andcashiercalculationquantitychange.Finally,thesystemcaninquirethesalessituation.
1.2关键字
登陆系统操作菜单建立信息库查询付款
Keywords
LoginsystemOperationmenuSetupinformationdatabaseInquirePay
2正文
2.1引言
随着经济的发展,人们每天接触并且需要处理的信息越来越多,人们就需要寻求一个工具来实现信息的管理和处理。
尤其是超市里,需要管理各种商品的数目及销售情况,而超市收银管理程序则是针对这种问题而产生的,系统能够实现对商品信息的录入、修改、查询、删除操作,并且在销售时能计算出应收钱数,并能根据实际收钱而计算找零,最后能对销售情况进行查询。
2.2需求分析
(1)销售人员能对商品信息(商品号、商品名、单价)进行输入,建立商品信息库。
(2)输出商品信息库中全部商品的信息(商品号、商品名、售价、数量),并且输出所购商品清单。
(3)销售人员根据顾客需求录入所购商品的商品号及数量,并能实现所购商品的数量修改以及商品删除。
(4)根据所购商品的数量及单价计算出应付钱数,并根据实际收钱数目计算找零数目,并输出。
(5)销售人员通过此程序能查询销售情况,输出商品的信息(商品号、商品名、单价、剩余数量),并计算卖出商品的获利情况。
2.3数据结构设计
structgoodgoods[N]:
总体商品信息数组,全局变量
structgoodbuy_g[j]:
所购商品信息数组,全局变量
Intj:
累计所购商品种类
Intselect:
操作选项
build():
建立商品信息库函数
display():
输出商品信息库中信息函数
buy():
购买商品函数
money():
计算应付钱数和找零函数
add():
添加所购商品函数(add()函数子函数)
check():
查看销售情况函数
fp:
指向文件的指针
total():
应付钱数
pay():
实收钱数
2.4算法设计
该系统主要包括登陆系统、商品信息库建立系统、商品信息库输出系统、购物系统、结账系统以及销售情况查询系统。
其中购物系统包括商品添加及显示系统、修改购买商品系统以及删除购买商品系统,逻辑结构清晰,使用方便。
2.4.1登陆系统
登陆系统由销售人员操作,是系统选择门户,其中选择1则执行商品信息库建立的操作,选择2执行商品信息库输出操作,选择3执行购物操作,选择4执行结账操作,选择5执行销售情况查询操作。
voidmain()
{
voidbuild(),display(),buy(),money();
voidadd(),check();
intselect;
printf("***************************\n");
printf("1.建立商品信息库\n");
printf("2.输出商品信息\n");
printf("3.购买商品\n");
printf("4.结账\n");
printf("5.查看销售情况\n");
printf("6.退出\n");
printf("***************************\n");
while
(1)
{
printf("请输入选择序号\n");
scanf("%d",&select);
if(select<1||select>6)
{
printf("输入有误,请重新输入\n");
}
else
switch(select)
{
case1:
build();continue;
case2:
display();continue;
case3:
buy();continue;
case4:
money(j);continue;
case5:
check();continue;
case6:
printf("谢谢使用。
\n");exit(0);
}
}
}
2.4.2商品信息库建立系统
由工作人员操作,用于录入超市商品的信息(商品序号、商品名、进价、售价、数量),并建立商品信息库。
voidbuild()
{
FILE*fp;
inti;
printf("请依次输入商品信息\n");
for(i=0;i { printf("商品序号: "); scanf("%s",goods[i].num); printf("商品名: "); scanf("%s",goods[i].name); printf("进价: "); scanf("%f",&goods[i].in_price); printf("售价: "); scanf("%f",&goods[i].out_price); printf("数量: "); scanf("%d",&goods[i].amount); } if((fp=fopen("goods","w"))==NULL) { printf("can'topenthefile\n"); return; } fwrite(goods,sizeof(structgood),N,fp); fclose(fp); printf("***************************\n"); } 2.4.3商品信息库输出系统 商品信息库输出系统用于输出超市所有商品信息,用于检查商品信息录入是否有误。 voiddisplay() { inti; FILE*fp; if((fp=fopen("goods","r"))==NULL) { printf("can'topenthefile\n"); return; } for(i=0;fread(goods+i,sizeof(structgood),1,fp)! =0;i++) { printf("商品序号商品名售价数量\n"); printf("%5s\t%7s\t%8.2f\t%d\n",goods[i].num,goods[i].name,goods[i].out_price,goods[i].amount); printf("***************************\n"); } fclose(fp); } 2.4.4购物系统 用于顾客购买商品时操作,通过录入商品序号实现查找,其中包括购买商品及显示系统、修改系统及删除系统三个子函数。 选择1执行购买商品及显示操作,选择2执行修改商品数量操作,选择3执行删除操作,选择4退出,返回上一层。 voidbuy() { intmenu(); voidadd(); voidrevise(); voidshow(); voiddel(); while (1) { switch(menu()) { case1: add();show();break; case2: revise();break; case3: del();break; case4: printf("***************************\n"); printf("1.建立商品信息库\n"); printf("2.输出商品信息\n"); printf("3.购买商品\n"); printf("4.结账\n"); printf("5.查看销售情况\n"); printf("6.退出\n"); printf("***************************\n");return; } } } intmenu() { intchoose; printf("***************************\n"); printf("1.购买商品\n"); printf("2.修改数量\n"); printf("3.删除商品\n"); printf("4.退出\n"); printf("***************************\n"); printf("请选择操作序号\n"); while(scanf("%d",&choose)) { if(choose<1||choose>5) { printf("输入错误,请重新输入! \n"); continue; } elsebreak; } returnchoose; } 2.4.4.1商品添加及显示系统 通过输入商品序号并且与商品信息库中数据比较实现查找,并输出所选商品的信息(商品号、商品名、售价、数量),在输入所购数量后,存入buy_g[]数组中存储,并且显示出所购商品的信息以及购买数量。 voidadd() { inti,m=0; charnumb[50]; charchoice; do { printf("请输入要选购商品的序号: \n"); scanf("%s",numb); for(i=0;i { if(strcmp(goods[i].num,numb)==0) { strcpy(buy_g[j].num,goods[i].num); strcpy(buy_g[j].name,goods[i].name); buy_g[j].in_price=goods[i].in_price; buy_g[j].out_price=goods[i].out_price; printf("商品序号商品名售价剩余数量\n"); printf("%5s\t%7s\t%8.2f\t%d\n",goods[i].num,goods[i].name,goods[i].out_price,goods[i].amount);break; } } { if(strcmp(goods[i].num,numb)==0) { printf("输入购买数量: "); scanf("%d",&m); while(m>goods[i].amount) { printf("输入错误,请重新输入\n"); printf("输入购买数量"); scanf("%d",&m); } buy_g[j].amount=m; j++; } else printf("无此商品\n"); } printf("是否继续购买? 请输入Y或者N\n"); getchar(); scanf("%c",&choice); }while(choice=='Y'); } voidshow() { inti; printf("购买的商品\n"); printf("商品序号商品名售价数量\n"); for(i=0;i { printf("%5s\t%7s\t%8.2f\t%d\n",buy_g[i].num,buy_g[i].name,buy_g[i].out_price,buy_g[i].amount); } } 2.4.4.2修改购买商品系统 通过输入商品序号实现在所购商品数组buy_g[]中查找,并重新输入所要购买数量。 voidrevise() { charnumbe[50]; inti; printf("请输入要修改商品的序号\n"); scanf("%s",numbe); for(i=0;i { if(strcmp(buy_g[i].num,numbe)==0)break; } printf("购买的商品\n"); printf("商品序号商品名售价数量\n"); printf("%5s\t%7s\t%8.2f\t%d\n",buy_g[i].num,buy_g[i].name,buy_g[i].out_price,buy_g[i].amount); printf("请重新输入数量\n"); scanf("%d",&buy_g[i].amount); } 2.4.4.3删除购买商品系统 通过输入商品序号实现在所购商品数组buy_g[]中查找所要删除的商品,并将其所购买数量重置为0,输出时跳过购买数量为0的商品实现删除功能。 voiddel() { inti; charnumb[50]; printf("请输入要删除的商品序号\n"); scanf("%s",numb); for(i=0;i { if(strcmp(buy_g[i].num,numb)==0) { buy_g[i].amount=0; break; } } printf("所购买的商品\n"); for(i=0;i { if(buy_g[i].amount! =0) { printf("商品序号商品名售价数量\n");printf("%5s\t%7s\t%8.2f\t%d\n",buy_g[i].num,buy_g[i].name,buy_g[i].out_price,buy_g[i].amount); } elsecontinue; } } 2.4.5结账系统 通过所购买商品数组buy_g[]中售价与购买数量的乘积的累加求出应付钱数,在输入实际付钱数目后输出找零数目。 voidmoney() { floatn=0,total=0,pay; inti=0; for(i=0;i { n=buy_g[i].out_price*buy_g[i].amount; total+=n; } printf("总费用: %8.3f\n",total); do { printf("实际付款: "); printf("\n"); scanf("%f",&pay); if(pay { printf("金额错误,请重新输入! \n"); } }while(pay printf("找零: "); printf("%8.3f\n",pay-total); printf("***************************\n"); printf("1.建立商品信息库\n"); printf("2.输出商品信息\n"); printf("3.购买商品\n"); printf("4.结账\n"); printf("5.查看销售情况\n"); printf("6.退出\n"); printf("***************************\n"); } 2.4.6销售情况查询系统 通过所买商品与商品信息库中商品信息的比较,求出商品的剩余数量并随商品信息输出,并且根据进价、售价及销售数目粗略求出获利数目。 voidcheck() { inti; intm; floatq,n=0; printf("商品销售情况\n"); printf("商品序号商品名售价剩余数量\n"); for(i=0;i { for(m=0;m { if(strcmp(goods[i].num,buy_g[m].num)==0) { printf("%5s\t%7s\t%8.2f\t%d\n",goods[i].num,goods[i].name,goods[i].out_price,goods[i].amount-buy_g[m].amount); break; } } } printf("总盈利: \n"); for(i=0;i { q=(buy_g[i].out_price-buy_g[i].in_price)*buy_g[i].amount; n+=q; } printf("¥"); printf("%8.2f\n",n); printf("***************************\n"); printf("1.建立商品信息库\n"); printf("2.输出商品信息\n"); printf("3.购买商品\n"); printf("4.结账\n"); printf("5.查看销售情况\n"); printf("6.退出\n"); printf("***************************\n"); } 2.5程序实现及测试 2.5.1进入系统登录页面及显示的相关信息 2.5.2建立商品信息库 2.5.3输出商品信息库信息 2.5.4购买商品菜单 2.5.4.1添加购买商品 2.5.4.2修改购买商品数量 2.5.4.3删除所购商品 2.5.5计算应收钱数及找零 2.5.7查询销售情况 3不足之处 程序虽然运行无误,但仍有很多不足之处,一是代码用C语音写,较为繁琐,代码冗长,占用空间大,并且所用符号多,不易保证书写正确性;二、代码有需完善之处,主要是建立商品信息系统时数组个数N需要提前已知,并在代码开头处予以说明,否则单凭建立个数多数组则无法正常使用;三: 界面设计有待优化,没有实现清屏功能,在数据较多时不易查看;四、只是实现了根据商品序号查找功能,没有完善其他功能,且输入较为繁琐。 4设计体会 通过本次的课程设计,除了让我对以前学过的C语言重新进行了系统的复习,巩固了所学的知识,而且让我理解到编程的乐趣与艰辛,在编写程序时,最重要的是有系统的构想,能够把所要写的程序的各种功能及逻辑顺序形成思路,再根据实际情况选择语言及所用到的方法。 在第一次编写完时看到密密麻麻的错误提示,但无从下手的感觉十分无奈,只能一点一点的找到错误并且改正,当看到程序的大体功能都实现时感觉十分有成就感,而后就是进一步的完善和修改一些忽略的漏洞,等到全部都改正并且顺利运行的时候才长舒一口气。 虽然本次内容简单,所用语言也很简单,但确实在不断的发现与改正错误中体会到了其中的乐趣与困难。 同时,我也理解到我所学的知识还远远不扎实,不充分,让我有了继续学习的动力,只有掌握更多的知识,才能写出质量更高的程序。 5结束语 通过本次课程设计让我感触很多,而且更加认识到本专业的意义,首先感谢老师能安排这样一次课程设计,让我们对所学东西能有回顾及应用的机会;还要感谢各位同学对我的指导,才使我顺利完成本次实验。 6参考文献 1.谭浩强《C程序设计(第四版)》清华大学出版社2010年6月第四版 2.严蔚敏、吴伟民《数据结构》清华大学出版社2007年 本科生课程设计成绩评定表 班级: 姓名: 学号: 序号 评分项目 满分 实得分 1 学习态度认真、遵守纪律 10 2 设计分析合理性 10 3 设计方案正确性、可行性、创造性 20 4 设计结果正确性 40 5 设计报告的规范性 10 6 设计验收 10 总得分/等级 评语: 注: 最终成绩以五级分制记。 优(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下为不及格 指导教师签名: 2013年元月25日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 超市 收银 管理 系统 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)