商场收银系统(c语言设计)16345.pdf
课 程 设 计 课程名称 C 语言程序设计课程设计 A 题目名称 商场收银系统 目 录 1 系统分析.1 1.1 课程设计容.1 1.2 系统功能需求分析.1 1.3 数据结构设计.错误!未定义书签。2 系统设计.3 2.1 总体设计.3 2.2 详细设计.3 2.2.1 界面设计.3 2.2.2 各功能模块的设计.5 3 系统编码设计.7 3.1 main 函数.8 4 系统运行.24 5 总结.28 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.1 main 函数 void main()/*主函数:密码登陆与主页面显示使用*/int key,j;int x,i;void openf();void newf();loop1:最新消费信息建立保存 显示信息库内容 clrscr();gotoxy(10,4);for(i=0;i20;i+)printf(#);gotoxy(10,16);for(i=0;i20;i+)printf(#);gotoxy(16,5);printf(this is the salesperson systemn);gotoxy(16,7);printf(1.please iput your number:n);gotoxy(16,8);scanf(%s,salesperson_num);gotoxy(16,9);printf(2.please input your key;n);gotoxy(16,10);scanf(%d,&key);for(j=0;j3;j+)if(strcmp(salesperson_num,salespersonj.num)=0&key=salespersonj.key)break;clrscr();printf(tyour number or key is wrongn);printf(tplease land againn);getch();goto loop1;3.2 clrscr 函数/*主页面显示代码,子函数选择界面*/gotoxy(16,8);printf(welcome to use the systemn);gotoxy(16,10);printf(press enter to continue);getch();do clrscr();gotoxy(10,5);for(i=0;i20;i+)printf(*);gotoxy(16,8);printf(1.build the goods warehouse);gotoxy(16,9);printf(2.charge system);gotoxy(16,10);printf(3.receipt message);gotoxy(16,11);printf(4.add to goods message);gotoxy(16,12);printf(5.sell message);gotoxy(16,13);printf(6.display goods stock);gotoxy(16,14);printf(7.exit);gotoxy(10,16);for(i=0;i20;i+)printf(*);gotoxy(16,18);printf(please select the menu:);scanf(%d,&x);while(x8);switch(x)case 1:newf();break;case 2:charge();break;case 3:receipt_m();break;case 4:input_s();break;case 5:sell_m();break;case 6:disp();break;case 7:exit();while(1);3.3 newf 函数/*新建库信息函数,建立新文档存储更新商品信息*/void newf()void openf();int i,x;clrscr();do clrscr();gotoxy(10,5);for(i=0;i20;i+)printf(*);gotoxy(16,8);printf(1.the new warehouse filename n);gotoxy(16,9);printf(2.add the goods message);gotoxy(16,10);printf(3.exit);gotoxy(10,16);for(i=0;i20;i+)printf(*);gotoxy(16,18);printf(please select the menu:);scanf(%d,&x);switch(x)case 1:openf();break;case 2:input_s();break;case 3:exit();while(1);void openf()int i;char f;clrscr();/*system(cls);*/printf(tinput the warehouse filename pleasen);scanf(%s,xname);fp=fopen(xname,a);fp1=fopen(b.txt,w);fprintf(fp1,%dt%d,n,n1);fclose(fp1);fp2=fopen(c.txt,w);fp3=fopen(d.txt,w);printf(tYou were built the warehouse n);printf(ntcontinue to add goods message?(y/n);f=getch();if(f=y)input_s();3.4 charge 函数/*销售信息管理系统*/charge()int i,j,f;int No;float sum=0;float change,receive;clrscr();gotoxy(10,5);for(i=0;i20;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;in;i+)fscanf(fp,%d%s%d%d,&goodsi.num,goodsi.name,&goodsi.price,&goodsi.amount);do printf(ntNo.:t);scanf(%d,&No);printf(ntamount:t);scanf(%d,&j);No-;n1+;goodsNo.amount-;sum+=j*goodsNo.price;fp2=fopen(c.txt,a);fprintf(fp2,%st%dt%st%dt%dn,salesperson_num,goodsNo.num,goodsNo.name,goodsNo.price,j);fclose(fp2);fp3=fopen(d.txt,a);fprintf(fp3,%dnt%d,goodsNo.num,j);fclose(fp3);f=getch();if(f=0)getch();break;while(1);printf(ntsum:t%5.2f,sum);printf(nntreceive:t);scanf(%f,&receive);change=receive-sum;printf(ntchange:t%5.2f,change);fp3=fopen(d.txt,a);fprintf(fp3,nt%5.2fnt%5.2fnt%5.2f,sum,receive,change);fclose(fp3);fp=fopen(a.txt,w);for(i=0;in;i+)fprintf(fp,%dt%st%dt%dn,goodsi.num,goodsi.name,goodsi.price,goodsi.amount);fclose(fp);fp1=fopen(b.txt,w);fprintf(fp1,%dt%d,n,n1);fclose(fp1);gotoxy(10,20);for(i=0;i20;i+)printf(*);gotoxy(16,22);printf(Press any key to exit);getch();3.5 receipt 函数/*客户回单信息*/receipt_m()int i,No,j;float change,receive,sum;clrscr();gotoxy(10,5);for(i=0;i20;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;in1;i+)fscanf(fp3,%dt%dt%ft%ft%f,&goodsNo.num,&j,&sum,&receive,&change);for(i=0;in1;i+)printf(ntNo:t%dntamount:t%dntsum:t%5.2fntreceive:%5.2fntchange:t%5.2fn,goodsNo.num,j,sum,receive,change);fclose(fp3);else printf(errorn);gotoxy(10,20);for(i=0;i20;i+)printf(*);gotoxy(16,22);printf(Press any key to exit);getch();3.6 input 函数/*库存信息更新*/input_s()int i,f,j=0;clrscr();printf(tthis is the goods stock,please add the goods messagen);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,&goodsi.num,goodsi.name,&goodsi.price,&goodsi.amount);n+;fp1=fopen(b.txt,w);fprintf(fp1,%dt%d,n,n1);fclose(fp1);printf(ncontinue?(y/n);f=getch();if(f=n)break;for(i=0;i=j;i+)fprintf(fp,%dt%st%dt%dn,goodsi.num,goodsi.name,goodsi.price,goodsi.amount);fclose(fp);gotoxy(16,20);printf(press any key to break);getch();3.7 sell 函数/*显示最近销售信息*/sell_m()int i,j,No;clrscr();gotoxy(10,5);for(i=0;i20;i+)printf(*);printf(ntsalesperson_numtnumtnametpricetsell_numn);fp1=fopen(b.txt,r);fscanf(fp1,%d%d,&n,&n1);fclose(fp1);if(fp2=fopen(c.txt,r)!=NULL)for(i=0;in1;i+)fscanf(fp2,%st%dt%st%dt%dn,salesperson_num,&goodsNo.num,goodsNo.name,&goodsNo.price,&j);for(i=0;in1;i+)printf(t%stt%dt%st%dt%dn,salesperson_num,goodsNo.num,goodsNo.name,goodsNo.price,j);fclose(fp2);else printf(errorn);gotoxy(10,20);for(i=0;i20;i+)printf(*);gotoxy(16,22);printf(Press any key to exit);getch();3.8 display 函数/*显示最近销售的库存信息*/disp()int i;clrscr();gotoxy(10,5);for(i=0;i20;i+)printf(*);printf(ntinput the warehouse filenamen);gotoxy(10,7);scanf(%s,xname);printf(tNo.tnametpricetamountn);fp1=fopen(b.txt,r);fscanf(fp1,%d,&n);if(fp=fopen(xname,r)!=NULL)for(i=0;in;i+)fscanf(fp,%d%s%d%d,&goodsi.num,goodsi.name,&goodsi.price,&goodsi.amount);for(i=0;in;i+)printf(t%dt%st%dt%dn,goodsi.num,goodsi.name,goodsi.price,goodsi.amount);fclose(fp);else printf(errorn);gotoxy(10,20);for(i=0;i20;i+)printf(*);gotoxy(16,22);printf(Press any key to exit);getch();4 系统运行(这部分介绍程序运行过程,系统操作使用的说明,使用测试数据运行的结果,可将运行结果截图进行说明)密码登陆界面 菜单页面 销售系统显示界面 销售记录 商品信息添加 销售信息记录 信息库信息 5 总结 本程序在刚开始调试时有很错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。在刚开始的几次调试中曾经出现过不能运行、不能产生函数的循环操作,如 infor 函数的循环,sell 函数的循环等。服,并且使程序的功能也得到了一定的完善。现在它能对出错的商品号显示重新输入,给出正确销售额。在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。除此之外,我还得到了一些有用的教训:写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。