C语言超市收银管理系统实现详解docWord下载.docx
- 文档编号:16431608
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:19
- 大小:254.57KB
C语言超市收银管理系统实现详解docWord下载.docx
《C语言超市收银管理系统实现详解docWord下载.docx》由会员分享,可在线阅读,更多相关《C语言超市收银管理系统实现详解docWord下载.docx(19页珍藏版)》请在冰豆网上搜索。
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"
);
1.建立商品信息库\n"
2.输出商品信息\n"
3.购买商品\n"
4.结账\n"
5.查看销售情况\n"
6.退出\n"
while
(1)
{
printf("
请输入选择序号\n"
scanf("
%d"
&
select);
if(select<
1||select>
6)
输入有误,请重新输入\n"
}
else
switch(select)
case1:
build();
continue;
case2:
display();
case3:
buy();
case4:
money(j);
case5:
check();
case6:
printf("
谢谢使用。
\n"
exit(0);
}
2.4.2商品信息库建立系统
由工作人员操作,用于录入超市商品的信息(商品序号、商品名、进价、售价、数量),并建立商品信息库。
voidbuild()
FILE*fp;
inti;
请依次输入商品信息\n"
for(i=0;
i<
N;
i++)
商品序号:
"
scanf("
%s"
goods[i].num);
商品名:
goods[i].name);
进价:
%f"
goods[i].in_price);
售价:
goods[i].out_price);
数量:
goods[i].amount);
if((fp=fopen("
goods"
"
w"
))==NULL)
can'
topenthefile\n"
return;
fwrite(goods,sizeof(structgood),N,fp);
fclose(fp);
2.4.3商品信息库输出系统
商品信息库输出系统用于输出超市所有商品信息,用于检查商品信息录入是否有误。
voiddisplay()
r"
for(i=0;
fread(goods+i,sizeof(structgood),1,fp)!
=0;
商品序号商品名售价数量\n"
%5s\t%7s\t%8.2f\t%d\n"
goods[i].num,goods[i].name,goods[i].out_price,goods[i].amount);
2.4.4购物系统
用于顾客购买商品时操作,通过录入商品序号实现查找,其中包括购买商品及显示系统、修改系统及删除系统三个子函数。
选择1执行购买商品及显示操作,选择2执行修改商品数量操作,选择3执行删除操作,选择4退出,返回上一层。
voidbuy()
intmenu();
voidadd();
voidrevise();
voidshow();
voiddel();
switch(menu())
{
case1:
add();
show();
break;
case2:
revise();
case3:
del();
case4:
printf("
return;
}
intmenu()
intchoose;
1.购买商品\n"
2.修改数量\n"
3.删除商品\n"
4.退出\n"
请选择操作序号\n"
while(scanf("
choose))
if(choose<
1||choose>
5)
输入错误,请重新输入!
continue;
elsebreak;
returnchoose;
2.4.4.1商品添加及显示系统
通过输入商品序号并且与商品信息库中数据比较实现查找,并输出所选商品的信息(商品号、商品名、售价、数量),在输入所购数量后,存入buy_g[]数组中存储,并且显示出所购商品的信息以及购买数量。
voidadd()
inti,m=0;
charnumb[50];
charchoice;
do
请输入要选购商品的序号:
numb);
for(i=0;
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"
}
输入购买数量:
m);
while(m>
goods[i].amount)
{
printf("
输入错误,请重新输入\n"
输入购买数量"
scanf("
}
buy_g[j].amount=m;
j++;
else
无此商品\n"
是否继续购买?
请输入Y或者N\n"
getchar();
%c"
choice);
}while(choice=='
Y'
voidshow()
购买的商品\n"
j;
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];
请输入要修改商品的序号\n"
numbe);
if(strcmp(buy_g[i].num,numbe)==0)break;
请重新输入数量\n"
buy_g[i].amount);
2.4.4.3删除购买商品系统
通过输入商品序号实现在所购商品数组buy_g[]中查找所要删除的商品,并将其所购买数量重置为0,输出时跳过购买数量为0的商品实现删除功能。
voiddel()
请输入要删除的商品序号\n"
if(strcmp(buy_g[i].num,numb)==0)
buy_g[i].amount=0;
break;
所购买的商品\n"
if(buy_g[i].amount!
=0)
elsecontinue;
2.4.5结账系统
通过所购买商品数组buy_g[]中售价与购买数量的乘积的累加求出应付钱数,在输入实际付钱数目后输出找零数目。
voidmoney()
floatn=0,total=0,pay;
inti=0;
n=buy_g[i].out_price*buy_g[i].amount;
total+=n;
总费用:
%8.3f\n"
total);
实际付款:
pay);
if(pay<
total)
金额错误,请重新输入!
}while(pay<
total);
找零:
pay-total);
2.4.6销售情况查询系统
通过所买商品与商品信息库中商品信息的比较,求出商品的剩余数量并随商品信息输出,并且根据进价、售价及销售数目粗略求出获利数目。
voidcheck()
intm;
floatq,n=0;
商品销售情况\n"
for(m=0;
m<
m++)
if(strcmp(goods[i].num,buy_g[m].num)==0)
goods[i].num,goods[i].name,goods[i].out_price,goods[i].amount-buy_g[m].amount);
break;
总盈利:
q=(buy_g[i].out_price-buy_g[i].in_price)*buy_g[i].amount;
n+=q;
¥"
%8.2f\n"
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
设计分析合理性
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
6
设计验收
总得分/等级
评语:
注:
最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
2013年元月25日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 超市 收银 管理 系统 实现 详解 doc