ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:72.36KB ,
资源ID:3563975      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3563975.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(商品销售统计系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

商品销售统计系统.docx

1、商品销售统计系统课程设计报告课程程序设计语言课程设计课程设计名称商品销售统计程序学生 项正武学号11041111专业班级110411指导教师2014年2月一、课程设计题目:商品销售统计主要内容和要求:编写商品销售统计程序,商品的信息有:商品的名称,计量单位重量或件,单价。所有商品的信息事先已存入电脑,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间

2、切换。第二部分运行时,首先显示所有商品名称及代码商品数目较多时,应考虑分屏显示,用户输入商品代码及商品重量或件数,用户一次操作可输入假设干商品的购买信息,然后输入一个特殊的代码如-1表示本次购物结束。此时。程序计算出应付钱款数并显示。测试数据程序应输入不少于10种商品的信息,并进行模拟运行。实现提示本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例对象存储在链表节点中。选做内容程序在营业结束时统计每种商品的销售量,销售金额及总营业额。因此第二部分应有营业结束的选择,当用户选择此项时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。注意,

3、商品类的数据成员应增加有商品的销售量和销售金额。总营业额是所有商品的营业额之和,可用静态数据成员实现。或可由原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。二、问题分析:由设计题目的要求,我们需要对设计一个能够统计所销售商品的代码、名称、价格、数量等信息,并且能够通过输入选择键调出仓库中所有商品的所有信息;实现通过代码来查询某个商品,并且输出该商品的所有信息;能够在用户购买商品时,根据情况给予用户反馈信息,其中包括购买商品名称、代码、单价、所买数量,并对该商品进行一次小结,告知用户消费情况;购买结束后,统计用户所消费的总金额,记录其所付金额以及找零金额。实现这些功能,需要声明构

4、造函数Sale,包含数据成员商品代码、名字、价格、数量。另外,创建链表,用于储存商品录入信息,购买情况,以及所有商品的信息。利用switch语句来实现根据需要选择不同的功能。创建链表,对头结点进行初始化,对数据域分配内存大小,通过指针域访问结点,来实现元素的储存调用等。定义子函数,来实现商品的录入、查询、显示、购买等功能。录入功能需要包含商品的一些信息,如:代码、名称、价格等;查询功能则是为了方便用户获得所需购买物品的一些信息;显示功能可以使用户对仓库的储存情况一目了然;购买功能主要是进行商品的结算。编写过程中,代码和名字需应用字符串,数量以整型输出,考虑到上平的数量可能会很多,故定义为uns

5、igned int quality,价格以浮点型输出。三、算法设计:1、需要定义一个构造函数Sale.包含数据成员:代码、名称、价格、数量。2、定义主函数,编写菜单程序,通过判断输入的格式是否正确,选择是否在屏幕上显示菜单,利用switch语句来选择不同的功能。4、创建链表,它包括数据域和指针域,数据域用于群体中元素的内容,通过指针来访问结点。并对头结点进行初始化。对结点动态分配内存,存储录入商品的全部信息,并可以在需需要的时候将相应的信息调出来。5、定义子函数,通过调用来实现所选功能。6、运用switch语句选择键入0、1、2、3或4 ,选择所需进入功能。选择1,调用1号子函数,进行商品录入

6、,录入商品的代码、名字、价格和数量;选择2,调用2号子函数,进入商品查询系统,输入所要查询商品的代码,如果存在此商品,便会输出该商品的一切信息。选择3,可以检录到所有库存商品的信息,方便用户选择;选择4,根据录入信息键入所要购买商品的代码和数量,并在购买一件商品结束后,输出用户的购买信息;选择0,表示运行结束,退出系统。6、应用一个功能完成后,都会有提示供用户选择,方便用户,也能使程序运行通畅。四、用户手册:程序运行时,首先根据系统提示来选择需要进入的功能1、由于该程序编辑过程中并没有储存上平信息,因此需要录入商品信息,输入1即可。系统会提示输入代码、名称、价格和数量。录入一个后提示是否继续输

7、入,选择Y/N。2、商品查询功能选择三,根据所输入的商品代码,判断是否存在所查商品,仓库中有,输出该商品的全部信息,供消费者参考;如果没有则提示:“无此商品”。3、输入3,则会显示当时情况下所有商品的库存信息。4、输入4,2表示购买商品,输入2后会提示是否继续购买,如果我们要继续,只需输入任意键空格、Enter键除外。必须注意的是,如果输入数字,则只能是一位数,两位或多位,则会导致程序无法正常运行。购买时会提示输入所买商品的代码以及数量。每一次购买结束屏幕上都会显示所买商品的信息:代码=名称=价格=数量=小计(元)。如果所买商品代码未曾录入,会提示没有该商品。5、键入0,退出系统。五、调试过程

8、:错误之处;1、代码和名字分别定义为整型和字符型。2、未对链表头结点进行初始化。3、数据域中没有分配内存。 4、在do-while语句结束时没有返回头结点。 5、显示程序不能实现,卖出商品后没有方法在原有的数据上减去卖出的部分,显示的仍旧是录入商品的全部数量。导致的后果:第一个错误导致在访问结点无法进行;与后面的不匹配。第二个错误,在运行程序时,无论时录入商品信息还是购买商品均不能进行第二步操作;第三个错误引发的后果与错误2一样;错误4则导致函数creat没有返回值。最后的一个错误不符合任务书上的要求改正方法: 1、定义代码和名字改用string;2、对头结点进行初始化并动态分配一个内存大小:

9、 Head=(Link)new Node;/每次动态分配一个Node内存大小。 Head-num=; Head-name=; Head-jiage=0.0; Head-shuliang=0; Head-next=NULL;3、返回头结点:return Head;。收获:在编写次程序时,由于对来链表不是相当了解,以至于定义变量num、name时没有注意其类型,无法与后面Head-num=;Head-name=;if(p-num=num)相匹配,程序出现错误。而后通过问同学才有了一定的了解。同时还了解到应用量表的时候需哎哟注意对头结点进行初始化以及分配空间,用以储存更多的元素内容,否则的话在运行的

10、过程中,录入一钟商品的信息完成后,程序会自动结束。最后一个错误是由于自己大一造成的。其次,第一次调试发现,程序无法进行商品查询功能,这表示,该程序尚不完整,经过思考以及同学的帮助,对其进行了完善:首先定义一个子函数:Link Search(Link Head,string& num)Link p;p=Head; while(p!=NULL)if(p-num=num)return p;elsep=p-next;cout无此商品!endl;return p;。通过输入商品代码,来查询仓库中是否有该商品。另外在运行程序是发现,当选择查看所有商品信息时输出结果太乱信息无法与提示对齐,我们可以在头文件中

11、加入#include ,后面的输出程序可以改成:coutsetw(15)leftm_codesetw(15)leftm_namesetw(15)leftm_pricesetw(15)leftm_quantityendl;但是由于本人对齐不太了解,故选择输出空格,尽量使其对齐。 改良设想:本程序最大的缺点就是没有在程序中预先储存商品信息,因此在运行程序过程中需要首先录入一部分商品。为了方便方便,我们可以针对此问题来进行修改,在容器中储存一些比较常用的商品不少于二十种。 运行程序过程中,如果我们选择了2,购买商品,首先会显示:结束买入请按N,其他任意键表示继续买入!这里的任意键不为空格和输入键,并

12、且输入数字的情况下只能为一位,否则无法输入代码,程序无法继续进行。六、测试结果: 运行程序后,屏幕显示内容为: -欢送光临,选择进入系统- * 1.录入信息 2.查询商品 3.显示数据 4、购买商品 0.退出系统 *首先录入商品,键入1:商品入库信息代码:001名称:a价格:8数量:100信息录入成功!继续?Y/N如果继续录入则键入Y,重复上面的操作。如果键入N,再次进行功能选择:键入2,进行商品查询: 键入3,显示所有的商品信息,屏幕显示:根据提示继续进行选择,键入4,进行商品购买,每次购买结束后均有提示,如图:选择Y则继续进行上述操作,反之则为:选择0,屏幕显示“已退出系统!”通过对该程序

13、的简单测试,可以知道它的总工作流程可概括为下列图所示:菜单选项录入成功输出所查商品信息所买商品信息以及需要付的金额。1录入商品代码:名称:价格:数量:2、商品查询代码:3、显示数据所有商品信息4、购买商品代码:数量:0、退出系统七、课后总结:通过此次课程设计,我学到了好多东西。由于之前对C+的知识积累不够,使得本次课程设计遇到了不少的困难。通过咨询老师同学和查看参考资料,困难逐个儿解决了,随着困难的解决,我学到了不少的知识,使我明确了以后的努力方向。本次课程设计让我有时机能把之前学的C+知识系统的串联起来。尤其使对链表方面的知识,有了更深入的了解。在此过程中,通过不断的调试修改调试循环,对程序

14、进行一步步的完善,最后进行测试,对一些功能进行应用,检查是否能够实现任务书上的要求到的所有功能,能否完美的实现这些功能,这不仅仅使对我们知识方面的考验,也是在考验我们的细心程度以及检查问题并改正问题的能力,更是对我们耐心的考验。通过这次课程设计,培养了我分析实际应用系统和设计设计实际应用系统的能力,提高了应用面向对象程序设计工具进行实际系统的设计的能力。八、参考文献1 郑莉,董渊,张瑞丰. C+语言程序设计.北京:清华大学出版社,2004年1月第三版。九、附录:/商品销售统计程序#include #include using namespace std;struct Sale string n

15、um; string name; float jiage; unsigned int shuliang; struct Sale* next;typedef struct Sale Node;typedef Node* Link;/创建链表。Link Create(Link Head) Head=(Link)new Node; Head-num=; Head-name=; Head-jiage=0.0; Head-shuliang=0; Head-next=NULL; /- Link p;/定义一个用来运算的指针 ptr。 p=Head; Link DNode; char GoOn; do c

16、out商品入库信息! endl; string num,name; float jiage; unsigned int shuliang; cout代码:num; cout名称:name; cout价格:jiage; while(cin.fail() cout出现错误,请重新输入:jiage; cout数量:shuliang; while(cin.fail() cout出现错误,请重新输入:shuliang; DNode=(Link)new Node; DNode-num=num; DNode-name=name; DNode-jiage=jiage; DNode-shuliang=shuli

17、ang; DNode-next=NULL; p-next=DNode; p=DNode; coutGoOn; while(GoOn=Y|GoOn=y); return Head;/释放链表。void Release(Link Head) Link p; while(Head!=NULL) p=Head; Head=Head-next; delete p; /查询。Link Search(Link Head,string& num) Link p; p=Head; while(p!=NULL) if(p-num=num) return p; else p=p-next; cout无此商品!nex

18、t; cout所有商品信息endl; cout代码=名称=价格=数量endl; while(p!=NULL) coutnum name jiage shuliangnext; void Display_One(Link Head,string& num,unsigned shuliang) Link p; p=Search(Head,num); cout代码=名称=价格=数量=小计(元)endl; coutnum name jiage shuliang jiagejiage*shuliang); return sum;void xg(Link Head,string& num,unsigned

19、 shuliang) Link p; p= Search(Head,num); p-shuliang=p-shuliang-shuliang; /总结帐。void Total(Link Head) Link p; p=Head; float sum(0); float fukuan; char GoOn; while(1) cout结束买入请按N,其它任意键表示继续买入! GoOn; if(GoOn=N|GoOn=n) break; else string num; unsigned int shuliang; cout代码:num; cout数量:shuliang; sum+=CheckOu

20、t(p,num,shuliang); cout你购买的商品为:endl; Display_One(p,num,shuliang); xg(Head,num,shuliang); cout该付 sum元!endl; coutfukuan; cout找零 fukuan-sum元!endl;int main() /-菜单项选择项- Link Head=NULL; Link p;string num; int loop=1; while(loop) cout-欢送光临,选择进入系统-endl; cout* 1.录入信息 2.查询商品 3.显示数据 4.买入商品 0.退出系统 *menu; if(cin

21、.fail() cout出现错误,请重新输入!menu; switch(menu) case 0: cout已退出系统!endl; loop=0; break; case 1: Head=Create(Head); break; case 2: cout输入商品代码:num; p=Search(Head,num); cout代码=名称=价格=数量endl; coutnum name jiage shuliangendl; break; case 3: Display(Head); break; case 4: Total(Head); break; Release(Head); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1