商场收银系统c语言设计.docx
- 文档编号:16569358
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:24
- 大小:257.57KB
商场收银系统c语言设计.docx
《商场收银系统c语言设计.docx》由会员分享,可在线阅读,更多相关《商场收银系统c语言设计.docx(24页珍藏版)》请在冰点文库上搜索。
商场收银系统c语言设计
课程设计
课程名称C语言程序设计课程设计A
题目名称商场收银系统
1系统分析
1。
1课程设计内容
建立一商品信息文件,商品信息包括商品编号、商品名、商品类别、商品数量、商品价格等。
建立一商场收银系统,功能包括:
1.系统登录:
运行系统时,收银员应输入姓名(或编号)及密码,验证后方可使用系统。
2.收银操作:
收银员逐条输入商品编号及数量,系统自动计算金额,输入完毕后显示应付款,当输入实收额后,计算出找赎值。
3.交易完成后按一定格式显示回单(格式参照一般超市中的打印小票).
4.保存所显示的回单。
5.自动按销售情况更新商品信息文件中的数据。
6.查询收银员销售信息。
7.浏览库存商品信息。
1.2系统功能需求分析
本系统应具有以下功能:
1、文件操作功能
进行商品信息管理,以文本的形式保存商品最新信息
2、数据输入功能
个人登录,消费商品基本资料的输入,销售信息输入等
3、数据添加、修改、删除功能
商品数据更新,个人入库信息修改更新
4、计算功能
基本计算功能,销售额处理
5、查询功能
资料库信息查询
7、数据显示功能
保障客户知情权,对系统输入输出信息的显示
2系统设计
2。
1总体设计
按系统分析的功能要求将系统划分为以下几个主要功能模块:
1、建立新文本库信息模块
2、销售系统模块
3、商品销售信息回单模块
4、商品库更新模块
5、销售回单保存模块
2。
2详细设计
2.2.1界面设计
1、菜单设计
主菜单:
子菜单:
2、输入界面的设计
3、信息显示界面的设计
2。
2.2各功能模块的设计
根据划分的功能模块,定义以下函数实现各功能:
(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)
1、主函数main()
2、charge函数、receipt_m函数
商品信息录入
3、input_s函数
4、disp函数
3系统编码设计
(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排)
3.1main函数
voidmain()
/*主函数:
密码登陆与主页面显示使用*/
{
intkey,j;
intx,i;
voidopenf();
voidnewf();
loop1:
{clrscr();
gotoxy(10,4);
for(i=0;i<20;i++)
printf("#”);
gotoxy(10,16);
for(i=0;i〈20;i++)
printf(”#”);
gotoxy(16,5);
printf(”thisisthesalespersonsystem\n");
gotoxy(16,7);
printf(”1。
pleaseiputyournumber:
\n");
gotoxy(16,8);
scanf("%s",salesperson_num);
gotoxy(16,9);
printf(”2.pleaseinputyourkey;\n”);
gotoxy(16,10);
scanf(”%d",&key);
for(j=0;j<3;j++)
{if(strcmp(salesperson_num,salesperson[j].num)==0&&key==salesperson[j].key)
break;
clrscr();
printf("\tyournumberorkeyiswrong\n");
printf("\tpleaselandagain\n");
getch();
gotoloop1;
}
}
3。
2clrscr函数
/*主页面显示代码,子函数选择界面*/
gotoxy(16,8);
printf("welcometousethesystem\n");
gotoxy(16,10);
printf(”pressentertocontinue");
getch();
do
{
clrscr();
gotoxy(10,5);
for(i=0;i<20;i++)
printf("*”);
gotoxy(16,8);
printf("1.buildthegoodswarehouse");
gotoxy(16,9);
printf(”2。
chargesystem”);
gotoxy(16,10);
printf("3.receiptmessage");
gotoxy(16,11);
printf("4。
addtogoodsmessage”);
gotoxy(16,12);
printf("5.sellmessage");
gotoxy(16,13);
printf("6。
displaygoodsstock");
gotoxy(16,14);
printf("7。
exit");
gotoxy(10,16);
for(i=0;i<20;i++)
printf("*”);
gotoxy(16,18);
printf("pleaseselectthemenu:
");
scanf("%d",&x);
while(x〈1||x>8);
switch(x)
{case1:
newf();break;
case2:
charge();break;
case3:
receipt_m();break;
case4:
input_s();break;
case5:
sell_m();break;
case6:
disp();break;
case7:
exit();
}
}while
(1);
}
3.3newf函数
/*新建库信息函数,建立新文档存储更新商品信息*/
voidnewf()
{voidopenf();
inti,x;
clrscr();
do
{
clrscr();
gotoxy(10,5);
for(i=0;i〈20;i++)
printf("*”);
gotoxy(16,8);
printf("1。
thenewwarehousefilename\n");
gotoxy(16,9);
printf(”2。
addthegoodsmessage");
gotoxy(16,10);
printf(”3.exit");
gotoxy(10,16);
for(i=0;i〈20;i++)
printf("*”);
gotoxy(16,18);
printf("pleaseselectthemenu:
”);
scanf("%d”,&x);
switch(x)
{case1:
openf();break;
case2:
input_s();break;
case3:
exit();
}
}while
(1);
}
voidopenf()
{
inti;charf;
clrscr();
/*system("cls”);*/
printf("\tinputthewarehousefilenameplease\n”);
scanf(”%s",xname);
fp=fopen("xname”,"a”);
fp1=fopen("b。
txt","w");
fprintf(fp1,”%d\t%d”,n,n1);
fclose(fp1);
fp2=fopen(”c。
txt","w");
fp3=fopen(”d.txt",”w”);
printf(”\tYouwerebuiltthewarehouse\n”);
printf(”\n\tcontinuetoaddgoodsmessage?
(y/n)");
f=getch();
if(f==’y’)input_s();
}
3.4charge函数
/*销售信息管理系统*/
charge()
{inti,j,f;
intNo;
floatsum=0;
floatchange,receive;
clrscr();
gotoxy(10,5);
for(i=0;i〈20;i++)
printf("*");
fp1=fopen("b。
txt",”r");
fscanf(fp1,"%d%d”,&n,&n1);
fclose(fp1);
if((fp=fopen("a.txt”,"r”))!
=NULL)
for(i=0;i fscanf(fp,”%d%s%d%d",&goods[i]。 num,goods[i].name,&goods[i].price,&goods[i]。 amount); do{ printf("\n\tNo。 : \t”); scanf(”%d”,&No); printf("\n\tamount: \t"); scanf(”%d",&j); No-—; n1++; goods[No]。 amount—-; sum+=j*goods[No].price; fp2=fopen(”c。 txt",”a”); fprintf(fp2,"%s\t%d\t%s\t%d\t%d\n",salesperson_num,goods[No]。 num,goods[No].name,goods[No].price,j); fclose(fp2); fp3=fopen("d。 txt","a”); fprintf(fp3,”%d\n\t%d”,goods[No]。 num,j); fclose(fp3); f=getch(); if(f==0) getch(); break;}while (1); printf(”\n\tsum: \t%5.2f”,sum); printf(”\n\n\treceive: \t”); scanf(”%f”,&receive); change=receive—sum; printf(”\n\tchange: \t%5。 2f”,change); fp3=fopen("d。 txt”,"a”); fprintf(fp3,"\n\t%5。 2f\n\t%5.2f\n\t%5.2f",sum,receive,change); fclose(fp3); fp=fopen(”a。 txt",”w”); for(i=0;i fprintf(fp,”%d\t%s\t%d\t%d\n",goods[i]。 num,goods[i].name,goods[i]。 price,goods[i].amount); fclose(fp); fp1=fopen("b。 txt”,"w"); fprintf(fp1,"%d\t%d”,n,n1); fclose(fp1); gotoxy(10,20); for(i=0;i<20;i++) printf("*”); gotoxy(16,22); printf(”Pressanykeytoexit”); getch(); } 3.5receipt函数 /*客户回单信息*/ receipt_m() {inti,No,j; floatchange,receive,sum; clrscr(); gotoxy(10,5); for(i=0;i<20;i++) printf(”*"); fp1=fopen("b。 txt”,”r"); fscanf(fp1,"%d%d",&n,&n1); fclose(fp1); if((fp3=fopen(”d.txt",”r"))! =NULL) {for(i=0;i〈n1;i++) fscanf(fp3,"%d\t%d\t%f\t%f\t%f",&goods[No].num,&j,&sum,&receive,&change); for(i=0;i printf("\n\tNo: \t%d\n\tamount: \t%d\n\tsum: \t%5.2f\n\treceive: %5。 2f\n\tchange: \t%5。 2f\n”,goods[No].num,j,sum,receive,change); fclose(fp3);} else printf(”error\n”); gotoxy(10,20); for(i=0;i〈20;i++) printf("*”); gotoxy(16,22); printf("Pressanykeytoexit”); getch(); } 3.6input函数 /*库存信息更新*/ input_s() {inti,f,j=0; clrscr(); printf("\tthisisthegoodsstock,pleaseaddthegoodsmessage\n”); printf(”num: name: price: amount: \n”); fp1=fopen("b.txt”,"r"); fscanf(fp1,"%d%d”,&n,&n1); fp=fopen(”a.txt",”a”); for(i=0;;i++,j++) {scanf(”%d%s%d%d",&goods[i]。 num,goods[i].name,&goods[i]。 price,&goods[i].amount); n++; fp1=fopen("b.txt",”w"); fprintf(fp1,"%d\t%d",n,n1); fclose(fp1); printf("\ncontinue? (y/n)");f=getch(); if(f=='n') { break; } } for(i=0;i〈=j;i++) fprintf(fp,”%d\t%s\t%d\t%d\n”,goods[i].num,goods[i].name,goods[i].price,goods[i]。 amount); fclose(fp); gotoxy(16,20); printf(”pressanykeytobreak”); getch(); } 3。 7sell函数 /*显示最近销售信息*/ sell_m() {inti,j,No; clrscr(); gotoxy(10,5); for(i=0;i〈20;i++) printf("*"); printf("\n\tsalesperson_num\tnum\tname\tprice\tsell_num\n”); fp1=fopen(”b.txt”,”r"); fscanf(fp1,”%d%d”,&n,&n1); fclose(fp1); if((fp2=fopen("c。 txt”,”r”))! =NULL) {for(i=0;i〈n1;i++) fscanf(fp2,”%s\t%d\t%s\t%d\t%d\n”,salesperson_num,&goods[No]。 num,goods[No].name,&goods[No].price,&j); for(i=0;i printf(”\t%s\t\t%d\t%s\t%d\t%d\n",salesperson_num,goods[No]。 num,goods[No].name,goods[No].price,j); fclose(fp2);} else printf(”error\n"); gotoxy(10,20); for(i=0;i〈20;i++) printf("*"); gotoxy(16,22); printf("Pressanykeytoexit"); getch(); } 3。 8display函数 /*显示最近销售的库存信息*/ disp() {inti; clrscr(); gotoxy(10,5); for(i=0;i<20;i++) printf(”*”); printf(”\n\tinputthewarehousefilename\n"); gotoxy(10,7); scanf("%s",xname); printf("\tNo。 \tname\tprice\tamount\n"); fp1=fopen(”b。 txt”,"r"); fscanf(fp1,"%d”,&n); if((fp=fopen(xname,”r”))! =NULL) {for(i=0;i fscanf(fp,”%d%s%d%d",&goods[i]。 num,goods[i]。 name,&goods[i].price,&goods[i].amount); for(i=0;i〈n;i++) printf("\t%d\t%s\t%d\t%d\n”,goods[i].num,goods[i].name,goods[i].price,goods[i].amount); fclose(fp);} else printf("error\n"); gotoxy(10,20); for(i=0;i<20;i++) printf(”*"); gotoxy(16,22); printf(”Pressanykeytoexit"); getch(); } 4系统运行 (这部分介绍程序运行过程,系统操作使用的说明,使用测试数据运行的结果,可将运行结果截图进行说明) 密码登陆界面 菜单页面 销售系统显示界面 销售记录 商品信息添加 销售信息记录 信息库信息 5总结 本程序在刚开始调试时有很错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果.在刚开始的几次调试中曾经出现过不能运行、不能产生函数的循环操作,如infor函数的循环,sell函数的循环等。 服,并且使程序的功能也得到了一定的完善。 现在它能对出错的商品号显示重新输入,给出正确销售额。 在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识.从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。 除此之外,我还得到了一些有用的教训: 写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意.在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商场 收银 系统 语言 设计