课程设计报告商场收银系统_第1页
课程设计报告商场收银系统_第2页
课程设计报告商场收银系统_第3页
课程设计报告商场收银系统_第4页
课程设计报告商场收银系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录1 系统分析11.1 课程设计内容11.2 系统功能需求分析11.3 数据结构设计22 系统设计32.1 总体设计32.2 详细设计32.2.1 界面设计32.2.2 各功能模块的设计43 系统编码设计73.1 main函数73.2 baocun函数73.3 welcome函数73.4 users函数83.5 menu函数93.6 print函数93.7 system函数103.8 sum函数113.9 pmenu函数114 系统运行135 总结151 系统分析1.1 课程设计内容课程设计题目:商场收银系统。功能包括:1. 系统登录:运行系统时,收银员应输入姓名(或编号)及密码,验证后方

2、可使用系统。2. 收银操作:收银员逐条输入商品编号及数量,系统自动计算金额,输入完毕后显示应付款,当输入实收额后,计算出找赎值。3. 交易完成后按一定格式显示回单(格式参照一般超市中的打印小票)。 4. 保存所显示的回单。5. 自动按销售情况更新商品信息文件中的数据。1.2 系统功能需求分析本系统应具有以下功能:1、系统登录功能: 运行系统进入欢迎界面,就会显示要输入姓名、编号和密码,如果输入验证错误不能进入系统,须再次输入。超过三次输入错误系统自动退出。2、菜单: 验证密码后进入主菜单。有三个选项:收银操作、库存商品信息、退出。3、收银操作能: 进入收银操作后,收银员只需逐条输入商品编号及数

3、量,如果输入的商品号与库存里的不同会提示错误,只需重输错误的这个商品编号。输入完后系统自动计算金额,当再次输入实收金额后,会自动计算出找回值。4、显示回单功能: 当结束收银操作,会提示打印回单,回单里包含每件商品名、单价和购买数量,及总金额。系统还会把每次的回单保存到相应的文件里。可以在文件中查询回单。5、库存商品信息: 库存的商品信息保存在相应的文件里,可以再主菜单中选择进入查看。 6、更新功能: 商品信息文件里有商品数量,每次卖出商品后,商品信息文件里的数量会随之减少。在主菜单中的库存商品信息中可以查询显示。1.3 数据结构设计struct commodity 库存商品结构体 char n

4、ame20; 商品名 int num; 商品编号 float price; 商品单价 int shuliang; 库存商品数量 com10struct goods 卖出的商品的结构体 char n20; 商品名 int number; 商品编号 float pri; 商品单价 int m; 卖出商品的数量 ;2 系统设计2.1 总体设计显示回单计算金额输入数据商场收银系统用户验证主菜单退出库存商品信息收银操作返回主菜单2.2 详细设计2.2.1 界面设计1、欢迎界面的设计 用一些字符组成和英文字母组成一个欢迎界面,可以显示当天日期和制作者名字。主要还有用户验证区,输入姓名、编号和密码,如果输入

5、验证错误不能进入系统,须再次输入。超过三次输入错误系统自动退出2、菜单界面的设计 用ascii码输出一些特殊字符组成一个菜单界面,菜单有三个选项:1、收银操作。2、库存商品信息.3、退出。如果输入数字不在3范围内会提示错误。须重新输入。3、收银操作界面的设计 提示输入商品的编号号及数量,如果输入的商品号与库存里的不同会提示错误,只需重输错误的这个商品编号。输入完后会自动显示总金额。但输入实收额时会显示出找回值。4、回单显示界面的设计 回单显示的内容如下:每件商品名、单价和购买数量,及总金额。系统还会提示按任意键把回单保存到相应的文件里。 5、库存商品信息界面的设计 库存商品信息内容有,商品名、

6、编号、单价和库存数量。2.2.2 各功能模块的设计根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)1、主函数main() 只包含保存、欢迎界面、用户验证和菜单四个函数。先运行保存函数将定以商品的全局变量的信息存入相应的文件,然后直接进入欢迎面,接着是用户验证区,验证成功进入菜单界面。2、函数void baocun(struct commodity *c)开始 打开一个文件将商品信息保存到文件关闭文件结束3、函数void welcome() 欢迎界面,用若干个printf()函数,将一些列字符组成一个好看的欢迎界面,并用getda

7、te()函数调用电脑系统的时间显示出来。4、函数void users()5、函数void menu() 菜单函数有三项:1、收银操作2、库存商品信息3、退出。用switch函数调用system(),print(),exit(0)三个个函数。6、函数void print()关闭 文件返回menu函数结束用循环将商品信息按一定格式输出开始打开一个文件 7、函数void system()开始 输入数据是否0为0 y=库存商?品? n n y调用sum函数调用pmenu函数结束8、函数sum(good) 先用for循环查找库存商品的编号,查到要卖出的商品,然后将单价一一调出,再用for循环计算总价并显

8、示出来,当输入实收时,在直接计算找回值并显示出来。9、函数pmenu(good) 先用for循环查找库存商品的编号,查到要卖出的商品并更新库存商品的数量,然后按一定格式将商品名,编号和价格总价输出,并调用baocun()函数将回单保存到相应的文件里。在调用getch(),clrscr(),menu()三个函数回到菜单。3 系统编码设计(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排)3.1 main函数void main()baocun(com); /*将商品信息保存到文件*/ welcome(); /*欢迎界面*/ users();/*用户验

9、证*/ menu(); /*主菜单*/3.2 baocun函数void baocun(struct commodity *c) /*将商品信息保存到文件*/ int i; file *fp; fp=fopen(shangpin.txt,r); /*为输入打开一个文本文件*/ if(fp=fopen(shangpin.txt,w)=null) printf(no filen); else for(i=0;i10;i+)fprintf(fp,n%20s%12d%12.2f%10d,,ci.num,ci.price,ci.shuliang); /*将事先定义的商品信息保存到文件*/ f

10、close(fp); 3.3 welcome函数void welcome() /*欢迎界面*/struct date d; /*定义时间结构体*/ printf(please press any key to enter the system.); getch(); clrscr();getdate(&d); /*读取系统日期并把它放到结构体d中*/printf( ( - ) ( - ) ( - ) );printf(*n);printf(tt welcome ton);printf(ntt the cash register systemn);printf(ttttttttdate:%d%d

11、%dn,d.da_year,d.da_mon,d.da_day); /*显示当前系统日期*/printf(*); printf( * * * * * * * );printf( * * * * * * * * * * * * * * * * * * * * * );printf(-* * * *-* * * *-* * * *-* * * *-* * * *-* * * *-* * * *-);printf( * * * * * * * * * * * * * * * * * * * * * );printf( * * * * * * * );printf(*n); printf(tttttt

12、t-made by luo hongkai.n); 3.4 users函数void users() /*用户验证*/ struct staff /*定义5个用户*/ char num10; char name20; char ps10;sta5=1001,lily,111111,1002,lusy,222222,1003,lucy,333333,1004,xiaoming,444444,1005,mike,555555;char a20;int i,success=0,n=0;char password10,num10;while(success!=1)printf(tttenter your

13、 number:);gets (num);printf(tttenter your name:); gets (a);printf(ntttenter your password:); gets (password);n=n+1;if(n=3) exit(0); /*三次输入错误自动退出*/for(i=0;i5;)if(strcmp(num,stai.num)=0)&(strcmp(a,)=0)&(strcmp(password,stai.ps)=0) success=1;break; /*验证成功,跳出循环*/else i+;printf(ntttopen fail!n);

14、clrscr();printf(nttttopen seccess!n); 3.5 menu函数void menu() /*验证后进入主菜单*/void print(); /*声明商品信息函数*/void system(); /*收银操作函数*/int n,i;int a=15; /*将一个字符的ascii码赋值给变量a*/for(i=0;i31;i+)printf(ttt%c,a); /*按一定格式将ascii码为15的字符输出*/printf(nttt1. enter the cash register systemn); /*进入收银系统*/printf(ttt2. stock info

15、rmationn); /*库存商品信息*/printf(ttt3. exitn); /*退出*/doprintf(ntttenter your choice(13):); scanf(%d,&n); while(n3); /*如果选择项不在13之间则重输*/switch(n) case 1: system();break; case 2: print();break; case 3: exit(0); 3.6 print函数void print() /*商品信息,将库存信息输出*/ void menu(); /*声明menu函数*/ int i; file *f; clrscr(); fope

16、n(shangpin.txt,r); f=fopen(shangpin.txt,r);printf(nn=n); printf( name number price shuliangnn); for(i=0;i10;i+) printf( %-18s%-14d%-14.2f%-dn,c,comi.num,comi.price,comi.shuliang); printf(=n); fclose(f); printf(nthe stock information has saved in file of shangpin.txt.n); printf(nnplease press

17、 any key back to the menu.); getch(); /*从键盘读取一个字符,但不显示于屏幕*/ clrscr(); /*清屏*/ menu(); /*返回menu函数*/ 3.7 system函数void system() /*收银操作*/void sum(struct goods x); /*声明计算总计的函数*/void pmenu(struct goods y); /*声明显示回单的函数*/ struct goods good10; int i,t; clrscr(); printf(enter the goods number and amount(0:list

18、 end):n); for(i=0,t=1;i10&t!=0;i+) /*用for循环将数据一一输入,当输入0时终止*/ do printf(goods%d number:,i+1); scanf(%d,&goodi.number); if(goodi.number=0)t=t-1; if(goodi.number=0)break; printf(goods%d amount:,i+1); scanf(%d,&goodi.m); if(goodi.number!=0&goodi.number10010) /*如果输入的商品号不是库存中的,显示错误*/ printf(ndata error,pl

19、ease enter again.n); while(goodi.number!=0&goodi.number10010); /*使输入的商品是库存中的*/ sum(good); /*调用计算总价函数*/ pmenu(good); /*调用显示回单函数*/ 3.8 sum函数void sum(struct goods x) /*计算总价函数*/ int i,j,k; float sum=0; float shishou,zhaohui; for(i=0;i10;i+) /*在库存商品中查找输入的商品*/ for(j=0;j10;j+) if(xi.number=comj.num) xi.pri

20、=comj.price; /*查到要卖出的商品,并赋值单价*/ for(k=0;k10&xk.number!=0;k+) sum=sum+xk.pri*xk.m; /*计算总价*/ printf(price is:%-8.2fn,sum); printf(shi shou:); scanf(%f,&shishou); /*输入实收*/ zhaohui=shishou-sum; /*计算找回值*/ printf(zhao hui:%-8.2fn,zhaohui); 3.9 pmenu函数void pmenu(struct goods y) /*显示回单*/ void menu(); /*声明菜单

21、函数*/ int i,j,k; float s=0; file *fp; printf(nntplease press any key to print the menu.); getch(); /*从键盘读取一个字符,但不显示于屏幕*/ clrscr(); /*清屏*/ for(i=0;i10;i+) /*在库存商品中查找输入的商品*/ for(j=0;j10;j+) if(yi.number=comj.num) yi.pri=comj.price; /*查到要卖出的商品,并赋值单价*/ strcpy(yi.n,c); /*查到要卖出的商品,并赋值商品名*/ comj.shu

22、liang=comj.shuliang-yi.m; /*查到要卖出的商品,并更新数量*/ printf( n);printf(=n);printf(name price nn);for(k=0;k10&yk.number!=0;k+)s=s+yk.pri*yk.m; /*计算总价*/printf(%-14s%d*%-6.2f=%-8.2fn,yk.n,yk.m,yk.pri,yk.pri*yk.m); /*输出商品编号,名,单价*数量,单价*数量的值*/printf(=n); printf(price is:%-8.2fn,s); /*输出总价*/printf(nnplease press a

23、ny key back to save the information.n);getch();baocun(com); /*将已更新的数据保存到文件*/ /*将回单的所用内容保存到文件*/ fp=fopen(xiaozhitiao.txt,a+); if(fp=fopen(xiaozhitiao.txt,a+)=null) printf(no filen); else fprintf(fp, n); fprintf(fp,=n); fprintf(fp,name price nn); for(i=0;i10&yi.number!=0;i+) fprintf(fp,%-14s%d*%-6.2f=

24、%-8.2fn,yi.n,yi.m,yi.pri,yi.pri*yi.m); fprintf(fp,=n); fprintf(fp,price is:%-8.2fn,s); fclose(fp);printf(nsuccess! the information has saved in file of xiaopiao.txt.);printf(nntplease press any key back to the menu.); getch(); clrscr(); menu();/*返回菜单*/ 4 系统运行(这部分介绍程序运行过程,系统操作使用的说明,使用测试数据运行的结果,可将运行结果

25、截图进行说明)一、系统登录:运行系统时,收银员应输入姓名、编号及密码,验证后方可使用系统。(我定义了五个用户,他们的编号名字和密码分别是:1001,lily,111111,1002,lusy,222222,1003,lucy,333333,1004,xiaoming,444444,1005,mike,555555)输入有误会提示重输(如图),超过三次自动退出。二、菜单界面包含三项:收银操作、库存商品信息、退出。当输入数据不在菜单选择范围会提示重输。如图所示三、收银操作:输入数据界面,当输入的商品在库存中没有会提示重输。还提示以0结束,结束后会自动算出总价,并提示输入实收。如图当输入实收额后,计算出找赎值并显示出来,如图四、显示回单:在上图中会提示按任意键显示回单,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论