商场收银系统c语言设计.docx

上传人:b****7 文档编号:8959802 上传时间:2023-02-02 格式:DOCX 页数:20 大小:201.10KB
下载 相关 举报
商场收银系统c语言设计.docx_第1页
第1页 / 共20页
商场收银系统c语言设计.docx_第2页
第2页 / 共20页
商场收银系统c语言设计.docx_第3页
第3页 / 共20页
商场收银系统c语言设计.docx_第4页
第4页 / 共20页
商场收银系统c语言设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

商场收银系统c语言设计.docx

《商场收银系统c语言设计.docx》由会员分享,可在线阅读,更多相关《商场收银系统c语言设计.docx(20页珍藏版)》请在冰豆网上搜索。

商场收银系统c语言设计.docx

商场收银系统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

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

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

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模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1