超市商品销售管理系统C.doc
《超市商品销售管理系统C.doc》由会员分享,可在线阅读,更多相关《超市商品销售管理系统C.doc(29页珍藏版)》请在咨信网上搜索。
课程设计说明书(论文) 题 目 小型超市商品销售管理系统 课 程 名 称 面向对象程序设计 院(系、部、中心) 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 目 录 课程设计任务书 2 1 功能描述 7 2 概要设计 7 2.1 类的设计 7 2.2 流程图 8 3 详细设计 11 4 效果及存在问题 23 4.1 效果截屏 23 4.2 存在问题 27 5 心得体会 28 6 参考文献 28 课程设计任务书 课 程 名 称 面向对象程序设计 院(系、部、中心) 专 业 班 级 起 止 日 期 指 导 教 师 1.课程设计应达到的目的 通过课程设计加深理解课堂教学内容,熟练掌握C++语言的基本知识和技能;掌握面向对象程序设计的基本思路和方法;掌握指针、类的封装与继承、文件的打开和保存、链表应用;利用所学的基本知识和技能,解决面向对象程序设计问题。培养分析、解决问题的能力;提高学生的科技论文写作能力。 2.课程设计题目及要求 题目:小型超市商品销售管理系统 要求: 某小型超市销售的商品有四类:食品、化妆品、生活用品和饮料。每类商品都有商品名和商品利润。每类商品还有区别于其他类的特殊信息,例如食品有批发商,化妆品有品牌,饮料有生产厂家。本系统完成如下功能: (1) 输入商品的基本信息。 (2) 根据商品名查询某个商品的情况。 (3) 计算并显示商品的利润。 3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕 (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. 5.课程设计进度安排 起 止 日 期 工 作 内 容 12 月22日 12月23 日 12月24 日 12月25 日 12月26 日 12月27 日 12月28 日 熟悉任务,算法设计 软件设计 软件设计 软件调试 软件调试 软件联合调试 考核 6.成绩考核办法 课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。原则上按以下公式计算: 课程设计成绩=工作表现×30%+设计成果×40%+考核测评×30% 工作表现:独立工作能力及设计过程的表现。占总成绩的30%。 设计成果:设计说明书(计算书、论文)、图纸、程序、作品等的质量。占总成绩的40%。 考核测评:课程设计结束前,指导教师应采用考试或答辩等形式对所指导的学生进行测评。测评成绩占总成绩的30%。有创新的同学根据具体情况适当加分。 教研室审查意见: 教研室主任签字: 年 月 日 院(系、部、中心)意见: 主管领导签字: 年 月 日 一. 功能描述 某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 要求: (1)其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 (2)程序对所有人员有提升级别的功能 (3)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。 (4)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息 。 二. 概要设计 2.1 类的设计 2.2 流程图 (1)主函数流程图 (2)添加函数(左图)和删除函数(右图)的流程图 (3)查询函数流程图 三. 详细设计 1. 主函数设计 #include<iostream.h> #include<conio.h> #include<stdio.h> #include<process.h> #include<fstream.h> #include<string.h> #include<dos.h> void main() { 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* Desined by 韩永扬 206050529 *\n" <<"\t\t* *\n" <<"\t\t* (按任意键进入) *\n" <<"\t\t* *\n" <<"\t\t* *\n" <<"\t\t********************************************\n"<<endl; getch(); food f; makeup m; drink d; live l; while(1) {A: system("cls"); int choice; int x; 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请选择:"; cin>>x; switch(x) { case 1: {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; cin>>choice; switch(choice) {case 1: system("cls"); f.addf(); break; case 2: system("cls"); m.addm(); break; case 3: system("cls"); d.addd(); break; case 4: system("cls"); l.addl(); break; case 5: system("cls"); break; } break; } case 2: {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; cin>>choice; switch(choice) {case 1: system("cls"); f.searchf(); break; case 2: system("cls"); m.searchm(); break; case 3: system("cls"); d.searchd(); break; case 4: system("cls"); l.searchl(); break; case 5: system("cls"); break; } break; } case 3: {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; cin>>choice; switch(choice) { case 1: system("cls"); f.removef(); break; case 2: system("cls"); m.removem(); break; case 3: system("cls"); d.removed(); break; case 4: system("cls"); l.removel(); break; case 5: system("cls"); break; } break; } case 4: {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<<"输入有误,请重选!"; goto A; } } } } 上面即为主函数,通过switch语句来选择操作:添加,查询,删除,退出。在每项操作中又用switch语句来选择对哪一类商品进行操作,分别有食品,化妆品,饮料,生活用品四类。该函数没有把“显示商品利润”作为一项单独操作,而是把该功能加进了“查询”操作中,查询的同时直接显示商品利润。 2. 商品基类设计 class spbase {public: int t; float oprice; float iprice; float prof; int quantity; char name[10]; void getdate(); void showdate(); void add(); void search(); void remove(); int gett(){return t;}; }; void spbase::getdate() //输入函数的设计 { cout<<"\n\t\t请输入商品名称:"; cin>>name; cout<<"\n\t\t请输入商品售价:"; cin>>oprice; cout<<"\n\t\t请输入商品进价:"; cin>>iprice; cout<<"\n\t\t请输入商品库存量:"; cin>>quantity; } void spbase::showdate() //输出函数的设计 { cout<<"\n\n商品基本信息如下:"; cout<<"\n\n\t\t商品名称:"; cout<<name; cout<<"\n\n\t\t商品售价:"; cout<<oprice; cout<<"\n\n\t\t商品进价:"; cout<<iprice; cout<<"\n\n\t\t商品库存量:"; cout<<quantity; prof=(oprice-iprice)*quantity; cout<<"\n\n\t\t商品利润为 :"; cout<<prof; } void spbase::add() //添加函数的设计 { t=1; ofstream file("HYY.txt",ios::out|ios::ate); if(!file) {cout<<"文件打开失败!"; getch(); exit(1); } spbase p1; p1.getdate(); file.write(reinterpret_cast<char*>(&p1),sizeof(spbase)); // reinterpret_cast强制转换 file.close(); } void spbase::search() //查询函数的设计 { char name4[10]; cout<<"\n请输入生活用品名称:"; cin>>name4; fstream file("HYY.txt",ios::in); if (!file) {cout<<"文件打开失败!"; getch(); exit(1); } char flag='a'; //设标志位 spbase p1; file.read(reinterpret_cast<char*>(&p1),sizeof(spbase)); while(!file.eof()) //正确显示,指针还没到末尾继续 { if((strcmp(p1.name,name4)==0)&&gett()) {p1.showdate(); getch(); flag='z'; break; } file.read(reinterpret_cast<char*>(&p1),sizeof(spbase)); } if(flag!='z') { cout<<("该商品已被删除!"); getch(); } file.close(); } void spbase::remove() //删除函数的设计 { t=0;search();} 3. 食品类设计(food) class food:public spbase { private: char pfs[10]; public: void getdatef() { spbase::getdate(); cout<<"\n\t\t请输入商品批发商:"; cin>>pfs; } void showdatef() { spbase::showdate(); cout<<"\n\n\t\t商品批发商:"; cout<<pfs; } void addf() { t=1; ofstream file("HYY1.txt",ios::out|ios::ate); if(!file) {cout<<"文件打开失败!"; getch(); exit(1); } food f; f.getdatef(); file.write(reinterpret_cast<char*>(&f),sizeof(food)); file.close(); } void searchf() { char name1[10]; cout<<"\n请输入食品名称:"; cin>>name1; fstream file("HYY1.txt",ios::in); if (!file) {cout<<"文件打开失败!"; getch(); exit(1); } char flag='a'; food f; file.read(reinterpret_cast<char*>(&f),sizeof(food)); while(!file.eof()) { if((strcmp(f.name,name1)==0)&&gett()) {f.showdatef(); getch(); flag='z'; break; } file.read(reinterpret_cast<char*>(&f),sizeof(food)); } if(flag!='z') { cout<<("该商品已被删除!"); getch(); } file.close(); } void removef() { t=0;searchf();} }; 4. 化妆品类设计(makeup) class makeup:public spbase { private: char pp[10]; public: void getdatem() { spbase::getdate(); cout<<"\n\t\t请输入商品品牌:"; cin>>pp; } void showdatem() { spbase::showdate(); cout<<"\n\n\t\t商品品牌:"; cout<<pp; } void addm() { t=1; ofstream file("HYY2.txt",ios::out|ios::ate); if(!file) {cout<<"文件打开失败!"; getch(); exit(1); } makeup m; m.getdatem(); file.write(reinterpret_cast<char*>(&m),sizeof(makeup)); file.close(); } void searchm() { char name2[10]; cout<<"\n请输入化妆品名称:"; cin>>name2; fstream file("HYY2.txt",ios::in); if (!file) {cout<<"文件打开失败!"; getch(); exit(1); } char flag='a'; makeup m; file.read(reinterpret_cast<char*>(&m),sizeof(makeup)); while(!file.eof()) { if((strcmp(m.name,name2)==0)) {m.showdatem(); getch(); flag='z'; break; } file.read(reinterpret_cast<char*>(&m),sizeof(makeup)); } if(flag!='z') { cout<<("该商品已被删除!"); getch(); } file.close(); } void removem() { t=0;searchm();} }; 5. 饮料类设计(drink) class drink:public spbase { private: char factory[10]; public: void getdated() { spbase::getdate(); cout<<"\n\t\t请输入商品生产厂家:"; cin>>factory; } void showdated() { spbase::showdate(); cout<<"\n\n\t\t商品生产厂家:"; cout<<factory; } void addd() { t=1; ofstream file("HYY3.txt",ios::out|ios::ate); if(!file) {cout<<"文件打开失败!"; getch(); exit(1); } drink d; d.getdated(); file.write(reinterpret_cast<char*>(&d),sizeof(drink)); file.close(); } void searchd() { char name3[10]; cout<<"\n请输入饮料名称:"; cin>>name3; fstream file("HYY3.txt",ios::in); if (!file) {cout<<"文件打开失败!"; getch(); exit(1); } char flag='a'; drink d; file.read(reinterpret_cast<char*>(&d),sizeof(drink)); while(!file.eof()) { if((strcmp(d.name,name3)==0)) {d.showdated(); getch(); flag='z'; break; } file.read(reinterpret_cast<char*>(&d),sizeof(drink)); } if(flag!='z') { cout<<("该商品已被删除!"); getch(); } file.close(); } void removed() { t=0;searchd();} }; 6. 生活用品类设计(live) class live:public spbase { public: void getdatel() { spbase::getdate(); } void showdatel() { spbase::showdate(); } void addl() { spbase::add(); } void searchl() { spbase::search();} void removel() {spbase::remove();} }; 四.效果及存在问题 4.1 效果截屏 进入主界面 按任意键进入主菜单后,选择“1”,添加商品 进入”添加商品品种”的自菜单,选择“3“,添加”饮料类“ 写入添加的商品基本信息 返回上一层主菜单后,选“2”,查询商品 选择“3”,查询“饮料类” 输入查询的饮料名称 查询到该商品,基本信息如下: 返回主菜单,选“3”,删除商品 选“3”,删除“饮料类” 写入删除的商品名称 删除后查询显示: 选“4”后,退出 4.2存在问题 “添加商品品种”的操作还存在不完善之处,进入主菜单选了“添加商品品种”的操作,当添加完一种商品后,不能继续添加商品;必须选择“返回”操作返回到主菜单重新选择“添加商品品种”后,才能添加第二种商品,也就是说不能够连续添加。 五.心得体会 经过一周课程设计,熟练的掌握了C++语言的基本知识和技能,可以利用面向对象程序设计的基本思路和方法,利用所学的基本知识和技能,解决面向对象程序设计问题。 通过一个学期的Visual C++程序设计的学习,自己感觉吸收了不少新知识。从计算机基础到Visual C++,我感觉充实了很多。经过自己的努力,把程序作完,作好,自己感受到了收获的喜悦,告诉我:一分耕耘一分收获。 一个程序作完不难,关键是调试,修改的过程很难,不过按动F4键可以提示你哪里出错,有时少个分号都不能调试过去。还有一点,一个细心的人作程序可能少走弯路。再次,一般作程序不是从头到尾作完再调试,这样很难调好,因为每编一句都可能出错,这样错误越积越多,最好的方法是每作完一个小段调试一次,按动F4找出其错误,一步一步循序渐进地作完,到最后不至于出了很多错误,不知如何寻找,同样少了很多的麻烦。编程多了,自然地经验多了,调程序就不觉得那么难了。 还有一点,要想编好、快速完成任务,就必须有严谨的科学态度,比如说一个字母,甚至一个标点符号的错误都会导致错误,这种错误在编程中我们经常出现,有时系统能让你很快找出,你能顺利往下进行,但有时它提示的错误信息和标点一点关系都没有,而后你把编的程序从头到尾看了一遍,结果花了大量的时间,大大降低了效率。其它的粗心大意错误更是五花八门,调试起来就更加困难了,所以在编程时一定要心细。 还有就是要有耐心,因为编程是件很繁琐的工作,如果没有耐心恐怕是编不下去的,比如有的人,有好几处错误,就放弃了,结果一事无成。 最后一点,就是编程时思路一定要清楚。因为编程本身就是一个严密的逻辑过程,实现每一步的操作需要那些命令,哪些条件都是清清楚楚,明明了了的,来不得半点遗漏。 总的来说,编程是件复杂的脑力劳动,要有科学严谨的科学态度,细心的习惯和耐心才能作好,要做到以上的要求我们还要做许多许多。 也就是从现在我更深刻体会到学海无涯,我要用正确的态度面对学习的挑战,理论联系实际,进一步熟练掌握科学知识,武装自己的头脑,为将来走向社会打下坚实的基础。” 六.参考文献 [1] 谭浩强. C++程序设计[M] . 北京:清华大学出版社,2004. [2] 吴乃陵.C++程序设计实践教程[M].北京: 高等教育出版社,2003. [3] 谭浩强. C++程序设计题解与上机指导[M]. 北京:清华大学出版社,1999. [4] 廖雷,罗代忠. C语言程序设计基础实验教程. 北京:高等教育出版社,2005. 29- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 商品 销售 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文