C++商品销售统计课程设计.doc

上传人:仙人指路1688 文档编号:2384405 上传时间:2023-02-17 格式:DOC 页数:16 大小:187KB
返回 下载 相关 举报
C++商品销售统计课程设计.doc_第1页
第1页 / 共16页
C++商品销售统计课程设计.doc_第2页
第2页 / 共16页
C++商品销售统计课程设计.doc_第3页
第3页 / 共16页
C++商品销售统计课程设计.doc_第4页
第4页 / 共16页
C++商品销售统计课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C++商品销售统计课程设计.doc》由会员分享,可在线阅读,更多相关《C++商品销售统计课程设计.doc(16页珍藏版)》请在三一办公上搜索。

1、目录1.问题描述31.1目的1.2要求1.3商品销售统计.问题分析33.算法设计44.UML图55.测试结果与分析66.总结107.代码附录10一、问题描述1.1目的在面向对象程序设计课程教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。同时,作为整个实践教学体系一部分,系统培养采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。1.2要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。2) 为

2、每个对象类设计正确的域和方法,为每个方法设计合理的方法体。同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。3)编程简练,程序功能齐全,能正确运行。1.3商品销售统计问题描述编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。基本要求程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之

3、间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。实现提示本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。二、问题分析:按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于

4、操作。在修改数据的函数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据,所以就必须要有一个switch语句;在商品信息显示函数的实现时,由于中间要有一个购买函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个变量。关于switch语句的运用在这个程序这可能要多次使用,主要在一个函数拥有多个变量或变量函数。三、算法的设计这个程序我是采用类以及函数的调用来写的。先写一个tong类,在tong类中声明所需要的函数,class tongtong();tong(char co20,char n20,char dw20,double pr,int qu)

5、;tong();void Set(); /商品信息录入 void Alter(); /商品信息修改 void delete(); /商品信息删除 void list(); /商品信息显示 void Display(); float Checkout(int quantity); /单个商品小结void Total(); /总计 void buy(); /商品买入 在写了两个操作函数。在主函数中分别调用所需要的函数。在存储数据方面,我声明了一个指针数组*Si,将输入的商品信息数据按照一一对应方式存储的。在tong类中一共包括十一个函数,分别为构造函数、析构函数以及各种功能函数。1、在Set函数中

6、通过输出语句的提示输入各种数据,并将输入的数据储存到定义的指针数组中,等一种商品数据信息输入完毕后,会弹出一个提示语句询问是否继续输入商品信息,可根据个人意愿输入Y(或y表示继续输入)N(或n表示中断输入),若输入Y(或y)则调用本函数,进行数据输入;若输入N(或n)弹出一个提示语句询问是否进行其他操作,在根据个人意愿输入正确的字符来进行相应的操作。2、Delete函数是进行对原始数据(即商品信息)进行删除。先根据输出语句的提示输入您要删除的商品名称,商品名称输入后通过if语句判断是否存在这种商品:若不存在则会出现这种商品不存在的提示语句,并同时出现一个提示是否进行其他操作提示语句;若存在则会

7、进行对该商品删除的操作并提示删除成功。3、Alter函数是对输入的商品信息进行修改的。函数运行时,会首先出现一个提示语句,提示管理者输入所要修改的商品名称,再通过一个for语句将该商品的所有信息调出,同时出现另一个提示语句,供管理者选择所要修改商品项,再通过switch语句供管理者输入所要修改的具体的商品信息,并将管理者修改的信息存入相应的商品信息库中(即该商品在原始输入数据时分配的储存空间中),一个商品信息修改完成后同样会出现一个询问是否继续修改的语句。4、List函数是将输入的所有商品信息显示在屏幕上,根据提示语句将所有的输入或是修改的商品信息显示在操作屏幕上。5、buy函数是消费者对屏幕

8、上显示的商品进行购买的函数。该函数在运行时,会首先出现一个提示语句,提示消费者输入需要购买的商品名称和购买数量,输入完毕后会调用Checkout、Display、Total,进行相应的操作。6、Checkout函数是一个小记函数,主要将消费者购买的每一种商品进行一个初步计费并显示在屏幕上,这个函数主要是为total函数服务的。7、 Total函数则是总计函数,是将消费者购买的所有商品进行计费,并将消费者需要支付的费计算出来显示在屏幕上。8、Display函数是将Checkout函数中各种商品费用进行累加,在将累加的结果返回给Total函数。9、在主函数的运行过程中会出现一个提示语句将整个程序分

9、成两个部分,分别为商品信息管理和商品销售管理。在商品信息管理部分,主要运行Set、Alter三个函数(这三个函数是通过switchy语句封装在caozuoa这个子函数中的),而在商品销售统计部分,则运行list、buy两个函数(这两个函数是通过switch语句封装在caozuob这个子函数中的)。 tong-code20:char-namer20:char-danwei20:char-price:double-quantity:double+set():void+alter():void+delete():void+list():void+display():void+total():void

10、+buy():void+tong():void+tong(code20:char,name20:char,danwei20:char,price:int,quantity:int)+tong():void+checkout(quantity:int):float四、UML图五、测试结果及其分析测试用的输入输出数据以及运行结果的截屏图如下:请选择您的操作:商品信息管理系统(M)商品销售系统(S)m商品信息录入(请输入0) 删除信息(请输入1) 修改信息(请输入2):0请输入商品代码及名称:q qw请输入计量单位:jin请输入商品单价:1.2请输入商品数量:100信息录入成功!是否继续录入?(y

11、or n)请输入商品代码及名称:a as请输入计量单位:jin请输入商品单价:12请输入商品数量:120信息录入成功!是否继续录入?(y or n)您想继续进行其他操作吗?(y/n)y请选择您的操作:商品信息管理系统(M)商品销售系统(S)m*-菜单选项-商品信息录入(请输入0) 修改信息(请输入1) 删除信息(请输入2)1请输入您所修改的商品名称:as你想要修改:代码及名称(请按1)、计量单位(请按2)、单价(请按3)、数量(请按4)3请输入单价:2.2 (将输入的原始数据:单价为12修改为2.2)数据修改成功!是否继续修改?(y/n)您想继续进行其他操作吗?(y/n)y请选择您的操作:商品

12、信息管理系统(M)商品销售系统(S)s*-菜单选项-*-*显示商品信息(请输入0) 商品买入(请输入1)0=所有商品信息清单=货品代码=货品名称=货品价格=货品数量=计量单位q qw 1.2 100 jina as 2.2 120 jin您想继续进行其他操作吗?(y/n)y请选择您的操作:商品信息管理系统(M)商品销售系统(S)s*-菜单选项-*显示商品信息(请输入0) 商品买入(请输入1)1请输入你想购买的商品的代码及名称:q qw请输入您想购买的商品的数量:12货品代码=货品名称=货品价格=购买数量=计量单位=小计(元)=q qw 1.2 12 jin 14.4要结束商品买入请按N/n,其

13、继续买入请按Y/y:n你应该付 14.4元!你实际付(元): 20应该找回你 5.6元!您想继续进行其他操作吗?(y/n)n其截屏图如下:调试分析:在起始阶段,出现提示语句,询问进入哪部分操作,输入字符m,进入商品信息管理部分,再根据提示,输入字符0,进入商品信息输入部分,按照提示输入的数据被储存在指针数组中,一个完整的商品信息录入后,就会出现一个询问是否继续输入的语句,按此方法输入几种商品信息后,终止商品信息的输入,在按照提示语句进入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示语句的提示下输入字符s进入商品销售管理部分,在此部分,输入字符0 进入商品信息显示部分,将显示在第一

14、部分输入以及修改后的所有商品信息,以供消费者选择,退出后再进入商品买入部分,根据提示输入正确的字符或字符串,购买您所需的商品,结束购买后会出现商品消费总计,输出消费者所需付的费用并根据实际付的费用计算出找零。在测试与调试过程中,我是按照屏幕提示进行操作,输入符合程序编排的数据,一步一步进行调试的。六、总结经过了这次商品销售统计的课程设计我从中学到了很多,同时明白了做一个小型软件的步骤和流程.如何让自己设计的软件运用到具体的实际工作中,这是一个关键的环节.还有就是程序设计和运行测试中遇到的问题该如何解决,从解决问题中我也学到了许多平时课本上所没有的知识.当然,能够完成这个商品销售统计我自己也感觉

15、很有成就感.运用到的开发工具和软件技术:此系统结合商品销售统计的要求,对C+、C语言的学习和应用,主要完成商品销售统计的分析,设计和实现,系统的设计,主控程序设计,并由此设计了类结构和应用程序。系统运行结果证明,设计的商品销售统计可以满足商品管理者完成管理的日常工作,包括商品销售以及商品信息的管理等软件还需要哪些改进:在编写源程序代码的过程中对语言的运用还需要提高,应使写出来的程序更加简洁,易读懂,更加满足实际工作的需要.要想使做出来的程序更好的利用还需根据实际需要在今后的运用中不断的改进和完善.七、代码附录#include #include #include #define null 0 #

16、include#include #include /控制字符串的头文件using namespace std;class tongpublic:tong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set(); /商品信息录入 void Alter(); /商品信息修改void delete1(); /商品信息删除 void list(); /商品信息显示 void Display(); float Checkout(int quantity); /单个商品小结void Total(); /总计 void

17、buy(); /商品买入 private :char code20;char name20;char danwei20;double price;int quantity;tong:tong()tong:tong(char co20,char n20,char dw20,double pr,int qu)strcpy(code,co);strcpy(name,n);strcpy(danwei,dw);price=pr;quantity=qu;tong:tong()tong *s50;int i=0;int j=0;char code20;char name20;char danwei20;do

18、uble price; int quantity;void tong:Set() /商品信息录入cout请输入商品代码及名称:codename; cout请输入计量单位:danwei; cout请输入商品单价:price; cout请输入商品数量:quantity; j+; si=new tong(code,name,danwei,price,quantity); i+; cout信息录入成功!endl; cout是否继续录入?(y or n)endl; if(getch()=y) Set(); else return;void tong:Alter() /商品信息修改 cout请输入您所修改

19、的商品名称:name; for(int h=0;hname)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; cout你想要修改:代码及名称(请按1)、计量单位(请按2)、单价(请按3)、数量(请按4)n; switch(n) case 1: cout请输入商品代码及名称:newcodenewname; sh-code20=newcode; sh-name20=newname; cout数据修改成功!; break; case 2: cout请输入计量单位:newdanwei; sh-dan

20、wei20=newdanwei; cout数据修改成功!; break; case 3: cout请输入单价:newprice; sh-price=newprice; cout数据修改成功!; break; case 4: cout请输入数量:newquantity; sh-quantity=newquantity; cout数据修改成功!; break; else cout你所要修改的商品的信息不存在,请修正后再更改!endl; cout是否继续修改?(y/n)endl; if(getch()=y)Alter(); else return ; void tong:delete1() /商品信

21、息删除 cout请输入您所删除的商品名称:name; for(int h=0;hname)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; cout你想要删除:代码及名称(请按1)、计量单位(请按2)、单价(请按3)、数量(请按4)n; switch(n) case 1: cout请输入商品代码及名称:newcodenewname; sh-code20=newcode; sh-name20=newname; cout数据删除成功!; break; case 2: cout请输入计量单位:ne

22、wdanwei; sh-danwei20=newdanwei; cout数据删除成功!; break; case 3: cout请输入单价:newprice; sh-price=newprice; cout数据删除成功!; break; case 4: cout请输入数量:newquantity; sh-quantity=newquantity; cout数据删除成功!; break; else cout你所要删除的商品的信息不存在,请修正后再更改!endl; cout是否继续删除?(y/n)endl; if(getch()=y)delete1(); else return ; void to

23、ng:list() /商品信息显示cout=endl; cout=所有商品信息=endl; cout=endl; cout货品代码=货品名称=货品价格=货品数量=计量单位endl; if(i=0) cout系统中没有录入商品信息或该商品信息已被删除!endl;for(int k=0;ki;k+) coutsetw(15)leftcodesetw(15)leftnamesetw(15)leftpricesetw(15)leftquantitysetw(15)leftdanweiendl; void tong:buy() /商品买入cout请输入你想购买的商品的代码及名称:codename;cou

24、t请输入您想购买的商品的数量:quantity;Checkout(quantity);Display();待添加的隐藏文字内容2Total();void tong:Display() cout货品代码=货品名称=货品价格=购买数量=计量单位=小计(元)=endl; coutsetw(15)codesetw(15)quantitysetw(15)name setw(15)price setw(15)quantity setw(15)danwei price * quantity; return sum; void tong:Total() /总结帐 float sum = 0; float re

25、al; char GoOn; while(1)cout要结束商品买入请按N/n,其继续买入请按Y/y: GoOn; if(GoOn=Y|GoOn=y) int quantity; cout请输入商品代码:codename; cout请输入商品数量:quantity;sum+=Checkout(quantity); cout你购买的商品为:endl; Display(); else if(GoOn=N|GoOn=n)break; cout-endl; sum+=Checkout(quantity); cout你应该付 sum元!endl; coutreal; cout应该找回你 real-sum

26、元!endl; /找零。 void caozuo1(int p) tong t;switch(p) case 0:t.Set();break; case 1:t. Alter ();break;case 2:t.delete1();break; case 8:exit(0);break;void caozuo2(int p) tong t;switch(p) case 0:t.list();break; case 1:t.buy();break; case 8:exit(0);break;void main()int a; char w; cout*endl; cout*endl; coutn

27、endl; cout*-欢迎进入商品销售统计系统-*endl; coutnendl;cout*endl; cout*endl;do cout请选择您的操作:商品信息管理系统(M)商品销售系统(S)w; cout*-菜单选项-*endl; cout*-*endl; coutnendl; if(w=M|w=m)cout商品信息录入(请输入0) 修改信息(请输入1) 删除信息(请输入2) :a; caozuo1(a); else if(w=S|w=s) cout显示商品信息(请输入0) 商品买入(请输入1)a; caozuo2(a); else cout请输入M、m或S、sendl; cout您想继

28、续进行其他操作吗?(y/n)w;while(w=y);课程设计评分表学生姓名 班级: 学号:课程设计题目:项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号