c语言商场收款程序,商场收银系统(C语言).doc

253b171540df25e1b84436cbe50dfc72.gif商场收银系统(C语言).doc

1课 程 设 计课程名称 C 语言程序设计课程设计 A题目名称 商场收银系统学生学院 物理与光电工程学院 专业班级 电子科学与技术 5 班学 号 学生姓名 指导教师 2011 年 9 月 9 日2目 录1 系统分析 11.1 课程设计内容 11.2 系统功能需求分析 11.3 数据结构设计 22 系统设计 42.1 总体设计 42.2 详细设计 42.2.1 界面设计 42.2.2 各功能模块的设计 73 系统编码设计 103.1 main 函数 103.2 huidan_printf函数 133.3 huidan_save函数 163.4 sale1 函数 183.5 sale2 函数 213.6 sale3 函数 224 系统运行 255 总结 2801 系统分析1.1 课程设计内容建立一商场收银系统,功能包括1. 系统登录运行系统时,收银员应输入姓名(或编号)及密码,验证后方可使用系统。2. 收银操作收银员逐条输入商品编号及数量,系统自动计算金额,输入完毕后显示应付款,当输入实收额后,计算出找赎值。3. 交易完成后按一定格式显示回单(格式参照一般超市中的打印小票) 。 4. 保存所显示的回单。5. 自动按销售情况更新商品信息文件中的数据。6. 查询收银员销售信息。7. 浏览库存商品信息。1.2 系统功能需求分析本系统应具有以下功能1、 系统登录运行系统时,收银员先输入自己的编号(0-9) ,然后再输入用户名及密码,验证后方可使用系统。系统默认用户名为 ying,密码为5555,收银员选择自己的编号进入系统后,首先应进入第 3 菜单选项修改自己的用户名和秘密。本系统可提供设置 10 个收银员的用户名和密码。2、 收银操作收银员首先输入商品编号,系统会自动检测所输入的商品编号是否存在,如果存在,则提示输入所购买商品的数量。系统自动计算出购买该商品所需的金额(数量*单价) 。接着,系统会询问是否继续购买。如果选择否,系统自动计算出应付款,输入付款后,计算出找零钱。最后显示出本次购买的回单。3、 交易完成后按一定格式显示回单。回单内容回单上部显示出收银员的编号、姓名;中部显示所购买的商品,以及每种商品的数量及价钱;尾部是商店的一些信息(电话及地址)。4、保存所显示的回单。所有的回单都会保存在“huidan.txt”文件中,格式和屏幕显示的是一致的。只需要打开“huidan.txt”文件,就可以查看所有历史回单。5、自动按销售情况更新商品信息文件中的数据。本系统更新的是每种商品1的库存剩余数量。存放商品信息的文件为“shangpin.txt” 。6、查询收银员销售信息。本系统中,所有收银员的销售信息都会保存在各自的文件里,相应的文件名为“ssy0、ssy1、ssy2、” 。即编号为0 的收银员的销售信息将保存在“ssy0”文件中,编号为 1 的收银员的销售信息将保存在“ssy1”文件中,依此类推,当需要查询某个收银员的销售信息时,只需打开相应的文件,即可查看所有的历史记录。7、浏览库存商品信息。进入菜单选项 3,即可浏览所有的库存商品信息。8、修改收银员用户名和密码。收银员第一次使用系统时,应先进入该菜单修改自己的用户名和密码。修改密码时,先输入需要修改的收银员的编号,然后输入该编号对应的旧的用户名和密码,通过验证后再输入新的用户名和密码。注意,只有输入正确的旧的用户名和密码,才允许修改相关信息。1.3 数据结构设计本系统所使用的结构体struct name_ination 收银员相关信息(编号、姓名、密码)char num5;char name10;char code10;name_i10; 共十个收银员编号struct goods 商品信息char num5; 编号char name10;名称char shuliang10;库存数量char danjia11; 单价2gods6;struct huidan 回单信息struct goods good_sale100; 销售信息char totals10; 总价钱char pays10; 实付款char leavings10; 找零huidans;32 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下三个主要功能模块1、收银操作。2、商品库存信息查询。3、更改收银员用户名及密码。2.2 详细设计2.2.1 界面设计1、菜单设计主菜单界面设计商场收银系统收银操作库存信息查询更改用户名及密码42、输入界面的设计菜单选择界面验证收银员信息界面5收银操作输入界面更改收银员信息界面4、 信息显示界面的设计显示全部商品信息界面62.2.2 各功能模块的设计根据划分的功能模块,定义以下函数实现各功能 1、 主函数 main主函数流程图、菜单,收银操作菜单 sale1开始是否通过验证选择菜单结束输入验证信息7输入商品编号计算出总金额编号是否存在编号是否为“0”计算出找零输入购买数量输入实付款显示回单结束8、菜单,显示所有商品信息 sale该部分函数直接读取出商品信息文件中的数据,然后显示出来。、菜单,更改收银员用户名和密码 sale流程先输入所需更改的收银员的编号,接着输入旧的用户名和密码,只有通过了验证才允许修改相关信息。如果通过了验证,就输入新用户名,再输入新密码,修改成功。93 系统编码设计3.1 main 函数这是主函数,功能是读取系统运行所需的文件信息、验证收银员身份信息、mainint i,j;clrscr;gotoxy1,2;printf“ n“;printf“ n“;printf“ Check ination n“;printf“ n“;printf“ n“;gotoxy1,8;读取收银员相关信息fp“shouyy.txt“,“r“; 打开商品文件iffpNULLprintf“File shouyinyuan.txt is not exist“;getch;elsefori0;i9printf“Worng number,please choose again“;whilename_num9name_num“,j1;fori0;i“,j1;fori0;i6 检测所输入商品编号是否存在printf“Worng number,please choose again“;whilenum6;ifnum0 如果输入的编号为“0” ,则结束本循环break;printf“It is“;fori0;ileave_sprintf“nSorry,the shuliang is not enoughn“;whileshuliangleave_s; TotalTotaldanjia_c*shuliang; 总价钱leave_sleave_s-shuliang; 剩余商品数量显示商品单价、总价钱(均是一位小数)printf“These money isd*d.dd.dn“,shuliang,danjia_c/10,danjia_c10,danjia_c*shuliang/10,danjia_c*shuliang10;格式转换更改商品信息中的商品剩余数量godsnum-1.shuliang2leave_s100 x30;godsnum-1.shuliang1leave_s/10100 x30;godsnum-1.shuliang0leave_s/1000 x30;购买数量写进回单huidans.good_saleshangpin_c.shuliang0shuliang/1000 x30;huidans.good_saleshangpin_c.shuliang1shuliang/10100 x30;huidans.good_saleshangpin_c.shuliang2shuliang100 x30;fori0;ipaidprintf“nSorry,the money is not enough,please pay moren“;whileTotalpaid; 判断所付金额是否足够leavingspaid-Total; 应找零的钱数(带一位小数)sale_ination_save;huidan_printf; 显示回单update; 更新商品信息到文件huidan_save; 保存回单getch;3.5 sale2 函数函数功能该函数为第二菜单函数,用于显示所有的库存商品信息。信息内容包括商品编号、商品名称、商品库存量以及商品单价。void sale2 浏览商品信息unsigned char i,k;clrscr;printf“ n“;printf“ n“;printf“ All goods n“;printf“ n“;printf“shouyinyuan number is “; 显示当前系统收银员编号printf“d“,name_num;printf“ n“;printf“shouyinyuan name is “; 显示当前系统收银员名字printfsys_name;printf“ n“;printf“ n“;all_shangpin;getch;213.6 sale3 函数函数功能该函数为第三菜单函数,用于更改收银员的用户名和密码。更改收银员用户名和密码,用户名和密码均为 10 位字符void sale3int i;clrscr;printf“ n“;printf“ n“;printf“ Update ination n“;printf“ n“;printf“shouyinyuan number is “; 显示当前系统收银员编号printf“d“,name_num;printf“ n“;printf“shouyinyuan name is “; 显示当前系统收银员名字printfsys_name;printf“ n“;printf“ nn“;doprintf“Please the name_number 0-9 “; 输入收银员编号scanf“d“,ifname_num9printf“Sorry,it is a worng numbern“;whilename_num9name_num0;fori0;i10;i 读取所输入编号对应收银员的相关信息,用户名和密码长度均为10 个字符22sys_nameiname_iname_num.namei;sys_codeiname_iname_num.codei;do 输入旧的用户名和密码,只用通过验证才允许更改信息printf“n the old name please“; 输入旧的用户名scanf“s“,ifstrcmpin_name,“0“0当输入“0” ,则退出main;ifstrcmpin_name,sys_name0doprintf“n the old code please“; 输入旧的密码scanf“s“,ifstrcmpin_code,“0“0当输入“0” ,则退出main;ifstrcmpin_code,sys_code0printf“nSorry,it is a wrong code“;whilestrcmpin_code,sys_code0;else printf“nSorry,it is a worng user name“;whilestrcmpin_name,sys_name0;验证成功,下面输入新的信息printf“OK“;printf“ the new name“; 输入新用户名scanf“s“,name_iname_num.name;printf“ the new code“;输入新密码scanf“s“,name_iname_num.code;fp“shouyy.txt“,“w“; 打开收银员相关验证信息文件iffpNULL 23printf“File shouyy.txt is not exist“;getch;elsefori0;i10;i 保存全部 10 个收银员的相关信息fwritefclosefp;main; 更改完成,返回到主界面244 系统运行1、系统运行,先输入收银员的编号(0-9) 、用户名和密码(用户名和密码的最长长度为10 位字符) 。2、通过验证后,系统进入菜单选择界面。3、进入第一个收银操作菜单。先输入商品编号,再输入购买数量,系统会自动计算出购买所需金额。254、输入“0”则结束输入商品编号,然后系统显示出购买总金额,接着提示输入实付款。5、输入付款金额后,系统显示出回单。266、进入第二个查看库存商品信息菜单。7、进入第三个修改收银员信息菜单。先输入需要修改收银员的编号,接着输入旧的用户名和密码,通过验证后屏幕显示“OK” 。然后输入新的用户名和密码。275 总结做这次课程设计,自己花了很多时间和精力。这两个星期,自己基本上都是在忙这个课程设计。不过现在做出来了,感到非常的开心,这是自己的汗水换来的。通过这次设计,让自己又温习了一次 C语言,让自己对其中一些细节性的东西有了一个更加深入的了解。做课程设计之前,自己没有用过文件读取操作。因为这次设计必须要用到文件,然后自己才开始去学习文件读取操作。现在已经基本学会了。我想如果不是因为这次课程设计的话,我可能以后都不会去学习文件读取操作的。还有结构体部分,之前很少用,不是很熟悉。经过这次课程设计后,自己已经会熟练的使用结构体了。因为时间问题,该设计有些地方还不是很完善,这是不足的地方。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值