您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 超市收银系统C++课程设计
1《面向对象程序设计》课程设计报告专业:计算机科学与技术姓名:叶超学号:19100211指导教师:胡勇二O一一年九月五日2超市收银系统一、课程设计问题描述模拟超市购物过程,根据货物清单,选定所购货物种类和数量,实现收银结账。设计内容:(1)显示超市库存商品信息。(2)显示购物流程提示信息。(3)实现购物过程,反复输入所购各种商品的索引和购买数量,直到商品索引号输入“-1”结束购物流程。(4)实现收银,根据顾客所交现金,自动找零,并显示和存储购物清单。(5)要求超市库存商品信息存储在文件goods.txt中,购物清单存储在文件buy.txt中,系统应具有友好的用户界面。二、课程设计目的和要求经过一年C语言以及C++语言的学习,已经有了一定地程序设计基础,但是要学好C及C++语言程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。三、系统环境硬件环境:计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)软件环境:windows98/windowsXP/windows2000/windows7,VisualC++四、设计思想描述要想模拟超市收银系统,首先得弄明白整个超市收银的过程。我们能看到货物清单,知道货架上有哪些商品是可供选择的。货架上的商品信息包括索引号、名称、单价、数量。工作人员帮助消费者输入商品索引号来帮助其进行购买,首先为了防止有人恶意进行商品买卖,本机应当在一开始设计密码,只让工作人员有权限进入。顾客可以进行反复购买,3最后可以得到一张已购物的商品清单,包括索引号、名称、单价、数量。接着算出消费金额,再输入所付金额,算出差额,实现找零。五、程序代码1、流程图工作人员输入商品索引号及购买商品数量。非法索引号及数量计算消费金额找零结束YN开始请输入密码:密码错误:窗口显示超市商品菜单,并友情提醒购买方法。YN42、类的设计,各函数,及其他功能(1)商品类CGoodsclassCGoods{public:CGoods(int,string,double,int);virtual~CGoods();intGetIndex();//获取索引stringGetName();//获取商品名字doubleGetPrice();//获取单价intGetNum();//获取数量friendostream&operator(ostream&,CGoods&);//重载输出商品的信息private:intIndex;stringName;doublePrice;intNum;};(2)重载输出ostream&operator(ostream&out,CGoods&g)//使对象输出能之间间隔等距{outsetw(18)g.GetIndex()setw(18)g.GetName()setw(18)g.GetPrice()setw(18)g.GetNum()endl;returnout;}(3)货架的抬头voidprint()//打印商品的抬头{stringtitle[4];title[0]=索引号;title[1]=商品名;title[2]=单价;title[3]=数量;for(inti=0;i4;i++){cout.width(18);coutlefttitle[i];}coutendl;}5(4)设置密码intcode=123,incode;cout————超市收银系统————endl;cout请输入密码:;cinincode;while(incode!=code){cout\n\n;cout密码错误!!!endl;cout请输入密码:;cinincode;}(5)导出超市库存商品以及货物清单ofstreamp,q;p.open(goods.txt,ios::out|ios::trunc);//打印货架上的.txtfor(i=0;isize;i++){pgoods[i].GetIndex()setw(18)goods[i].GetName()setw(18)goods[i].GetPrice()setw(18)goods[i].GetNum()endl;;}p.close();q.open(buy.txt,ios::out|ios::app);//打印购物的txtfor(m=0;mn;m++){qgoods[d[m]-1].GetIndex()setw(18)goods[d[m]-1].GetName()setw(18)goods[d[m]-1].GetPrice()setw(18)c[m]endl;}q.close();(6)收银台算账cout你本次消费pay元endl;cout请交钱;cingive;cout-----------------------------------------------------endl;change=give-pay;cout应付金额:payendl;cout实付金额:giveendl;if(change=0){cout找零:changeendl;6}else{cout钱不够啊!!!endl;cout补交:0-changeendl;}cout\n\n;六、设计中遇到的问题及解决方案1、问题:(1)收银系统的流程不明了(2)对程序编译的细节不清楚,导致错误改正不了(3)不会导出.txt格式文档2、解决方案:(1)查阅C++书籍(2)与同学讨论(3)上网寻找解决方案七、程序测试案例1、进入系统,输入密码2、密码错误,再次输入73、密码正确,可以开始购买4、输入索引号及数量购买5、输出已购买商品的清单86、付款及找零七、参考文献1、谭浩强《C++程序设计》清华大学出版社2004年
本文标题:超市收银系统C++课程设计
链接地址:https://www.777doc.com/doc-2250474 .html