课程设计说明书(论文)题目小型超市商品销售管理系统课程名称面向对象程序设计院(系、部、中心)专业班级学生姓名学号设计地点指导教师2目录课程设计任务书.....................................................21功能描述........................................................72概要设计........................................................72.1类的设计.......................................................72.2流程图.........................................................83详细设计........................................错误!未定义书签。4效果及存在问题..................................错误!未定义书签。4.1效果截屏.......................................错误!未定义书签。4.2存在问题......................................................275心得体会.......................................................286参考文献.......................................................283课程设计任务书课程名称面向对象程序设计院(系、部、中心)专业班级起止日期指导教师1.课程设计应达到的目的4通过课程设计加深理解课堂教学内容,熟练掌握C++语言的基本知识和技能;掌握面向对象程序设计的基本思路和方法;掌握指针、类的封装与继承、文件的打开和保存、链表应用;利用所学的基本知识和技能,解决面向对象程序设计问题。培养分析、解决问题的能力;提高学生的科技论文写作能力。2.课程设计题目及要求题目:小型超市商品销售管理系统要求:某小型超市销售的商品有四类:食品、化妆品、生活用品和饮料。每类商品都有商品名和商品利润。每类商品还有区别于其他类的特殊信息,例如食品有批发商,化妆品有品牌,饮料有生产厂家。本系统完成如下功能:(1)输入商品的基本信息。(2)根据商品名查询某个商品的情况。(3)计算并显示商品的利润。3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕5(1)分析系统中的各个实体之间的关系及其属性和行为。(2)根据问题描述,设计系统的类层次,完成类层次中各个类的描述(包括属性和方法),完成类中各个成员函数的定义。(3)完成系统的应用模块,进行功能调试。(4)系统设计要实用,编程简练,功能全面。程序中要有异常处理。(5)界面设计要以用户为中心,操作方便、美观大方。(要有选择性提示)(6)按照课程设计说明书的格式规范撰写课程设计说明书,其中正文包括:①功能描述:对系统要实现的功能进行简明扼要的描述。②概要设计:根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。③详细设计:详细说明各功能模块的实现过程,所用到的类的层次图(包括类成员列表)、算法、技巧等。④效果及存在问题:说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。⑤心得体会:谈谈自己在课程设计过程中的心得体会。(7)课程设计说明书用A4纸统一打印,装订按学校的统一要求完成。(8)课程设计的程序以软盘形式上交,文件夹名称为学生姓名及学号的组合。未经指导教师许可或无故不到者,缺勤率达50%的学生不能参加答辩。答辩时,设计者在5分钟内阐述自己的设计过程和最终结果,突出设计中遇到的主要问题和解决方法,然后回答教师提问。每位学生答辩总时间一般不超过15分钟。4.主要参考文献[1]谭浩强.C++程序设计[M].北京:清华大学出版社,2004.[2]吴乃陵.C++程序设计实践教程[M].北京:高等教育出版社,2003.[3]谭浩强.C++程序设计题解与上机指导[M].北京:清华大学出版社,1999.[4]廖雷,罗代忠.C语言程序设计基础实验教程.北京:高等教育出版社,2005.65.课程设计进度安排起止日期工作内容12月22日12月23日12月24日12月25日12月26日12月27日12月28日熟悉任务,算法设计软件设计软件设计软件调试软件调试软件联合调试考核6.成绩考核办法课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。原则上按以下公式计算:课程设计成绩=工作表现×30%+设计成果×40%+考核测评×30%工作表现:独立工作能力及设计过程的表现。占总成绩的30%。设计成果:设计说明书(计算书、论文)、图纸、程序、作品等的质量。占总成绩的40%。考核测评:课程设计结束前,指导教师应采用考试或答辩等形式对所指导的学生进行测评。测评成绩占总成绩的30%。有创新的同学根据具体情况适当加分。教研室审查意见:教研室主任签字:年月日院(系、部、中心)意见:主管领导签字:年月日7一.功能描述某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。要求:(1)其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。(2)程序对所有人员有提升级别的功能(3)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成,销售经理既拿固定月薪也领取销售提成。(4)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。二.概要设计2.1类的设计商品基类食品类化妆品类饮料类生活用品类继承82.2流程图(1)主函数流程图开始While(1)switch?choice1(添加)2(查询)3(删除)4(退出)switch?switch?choiceswitch?switch?化妆品饮料生活用品食品choicechoicechoicegoto选择错误重新选择化妆品饮料生活用品食品化妆品饮料生活用品食品化妆品饮料生活用品食品9(2)添加函数(左图)和删除函数(右图)的流程图开始t=0调Search()函数商品已删除开始打开文件输入getdate()写入文件filewrite()关闭文件(3)查询函数流程图10开始打开文件设标志Flag=’a’t=1读文件While=1Strcmp()&&t输出Showdata()flag=’z’?找到该商品无该商品指针后移YN若不同若相同关文件11三.详细设计1.主函数设计#includeiostream.h#includeconio.h#includestdio.h#includeprocess.h#includefstream.h#includestring.h#includedos.hvoidmain(){system(cls);cout\n\n\n\n\t\t********************************************\n\t\t**\n\t\t**\n\t\t*欢迎使用小型超市商品销售管理系统(HYY)*\n\t\t**\n\t\t*Desinedby韩永扬206050529*\n\t\t**\n\t\t*(按任意键进入)*\n\t\t**\n\t\t**\n\t\t********************************************\nendl;getch();foodf;makeupm;drinkd;livel;while(1){A:system(cls);intchoice;intx;cout\n\n\t\t\t\t主菜单\n\n\t\t\t\t(1)添加商品品种\n\n\t\t\t\t(2)查询商品\n\n\t\t\t\t(3)删除商品\n\n\t\t\t\t(4)退出\n\n\n请选择:;cinx;switch(x){case1:{system(cls);12cout\n\n\n\n\n\n\t\t请选择添加哪一类:\n\n\t\t\t\t(1)食品类\n\t\t\t\t(2)化妆品类\n\t\t\t\t(3)饮料类\n\t\t\t\t(4)生活用品类\n\t\t\t\t(5)返回endl;cinchoice;switch(choice){case1:system(cls);f.addf();break;case2:system(cls);m.addm();break;case3:system(cls);d.addd();break;case4:system(cls);l.addl();break;case5:system(cls);break;}break;}case2:{system(cls);cout\n\n\n\n\n\n\t\t请选择查询哪一类:\n\n\t\t\t\t(1)食品类\n\t\t\t\t(2)化妆品类\n\t\t\t\t(3)饮料类\n\t\t\t\t(4)生活用品类\n\t\t\t\t(5)返回endl;cinchoice;switch(choice){case1:system(cls);f.searchf();13break;case2:system(cls);m.searchm();break;case3:system(cls);d.searchd();break;case4:system(cls);l.searchl();break;case5:system(cls);break;}break;}case3:{system(cls);cout\n\n\n\n\n\n\t\t请选择删除哪一类:\n\n\t\t\t\t(1)食品类\n\t\t\t\t(2)化妆品类\n\t\t\t\t(3)饮料类\n\t\t\t\t(4)生活用品类\n\t\t\t\t(5)返回endl;cinchoice;switch(choice){case1:system(cls);f.removef();break;case2:system(cls);m.removem();break;case3:system(cls);d.removed();14break;case4:system(cls);l.removel();break;case5:system(cls);break;}break;}case4:{system(cls);cout\n\n\n\n\n\n\t\t\t\t谢谢使用!\n\n\t\t\t\t再见!\n;exit(1);}break;default:{cout输入有误,请重选!;gotoA;}}}}上面即为主函数,通过switch语句来选择操作:添加,查询,删除,退出。在每项操作中又用switch语句来选择对哪一类商品进行操作,分别有食品,化妆品,饮料,生活用品四类。该函数没有把“显示商品利润”作为一项单独操作,而是把该功能加进了“查询”操作中,查询的同时直接显示商品利润。2.商品基类设计classspbase{public:intt;floatoprice;floatiprice;floatprof;intquantity;15charname[10];voidgetdate();voidshowdate();voidadd();voidsearch();voidremove();intgett()