版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
09面向对象课程设计模板(新)lyxLtDPAGE1长沙学院课程设计说明书题目系(部)电子与通信工程系专业(班级)09电子2班姓名刘育雄学号2009第1章选题1.1题目背景随着二十一世纪的到来,计算机已成为一块极其活跃的、崇尚发展与创新的领地,并成为我们这一时代决定性的先驱技术。计算机是现代文化不可或缺的级成部分,是现代科学技术发展的先导,并成为世界经济巨量增长的根本引擎。
C++语言是在C语言的基础上扩展而成的,它保留了C语言原有的所有优点,增加了面向对象的机制。所以C++与C完全兼容。C++是对C的扩充,是C的超集。它既可用于结构化程序设计,又可用于面向对象的程序设计,功能强大。C++中加入了面向对象程序设计。C++的多继承机制能更好地描述对象的属性和行为,它的特点是面向对象程序设计。C++实现了类的封装、数据隐藏、继承及多态,它还支持模板、操作符重载、内联函数定义、预处理、宏、全局静态类变量、嵌套类定义等等,使得其代码容易维护及高度可重用。1.2系统实现的具体分工功能设计:1.建立文件(1)存储文件可以使用默认文件名或指定文件名。(2)可以不保存输出记录,但需要确认是否保存输入记录。(3)如果已经有文件,只能在其后追加。(4)新增的记录继续存入原文件中。2.文件的存取和显示(1)可以单独存取文件。(2)可以随时显示内存中记录的全部内容。(3)可以直接存取指定文件3.删除记录(1)可以按“商品名称”方式删除并且将记录修改更新。(2)能给出被删除记录的信息。(3)如果库存已经是空的,删除时应给出提示信息并返回主菜单。(4)如果没有要删除的这个商品信息,输出没有找到的提示信息(5)删除操作仅限于内存,只有执行存记录操作时,才能覆盖原记录。4.查询记录(1)可以按“商品名称”、“商品价格”或“商品种类”三种方式查询记录。(2)能给出查询记录的信息。(3)如果查询的信息不存在,输出“没有找到”的信息。5、使用菜单实现功能的正确选择6、测试程序(1)应列出测试大纲对程序进行测试(2)应保证测试用例能测试到程序的各种边缘情况。1.2.1标题商品销售管理系统1.2.2题目要求1、编写一个商品销售管理系统。商品信息包含:商品编号、商品名称、商品单价、生产商、库存量等;2、功能要求:商品上架、商品浏览、商品销售、商品查询、统计等。1.3开发环境VisualC++6.0第2章设计内容2.1实现功能系统主要是要求实现添加商品编号、商品名称、商品单价、生产商、库存量等并对其进行浏览,统计等功能操作。2.2概要设计第3章系统实现3.1涉及知识点类封装、面向对象程序设计、字符串的应用、条件语句、循环语句的使用、库函数的应用、过程化设计的思想等。3.2系统运行(主要运行界面抓图)1.运行程序后,出现起始界面.2.任意键后,出现商品管理系统主界面:图2.系统主界面3.在系统主界面选择2,出现商品管理系统界面:图3.商品管理系统界面、4.重复添加商品信息后,按任意键,出现主界面后,选择1:,进入商品浏览界面:图4.商品浏览界面5.按任意键,出现主界面后,选择3,进入商品销售界面,并选择需要出售的商品:图5.商品销售界面6.按非“0”键,出现主界面后,选择1,进入商品浏览界面,已销售的产品库存减少:图6.再次商品浏览界面7.按任意键,出现主界面后,选择5,进入商品统计界面,显示销售额:图7.商品统计界面8.按任意键,出现主界面后,选择2,购买数量超过库存,提示报错:图8.超量购买提示报错界面9.对已添加的商品进行补货:图9.补货界面10.按非“0”键,出现主界面后,选择0,安全退出:图10.安全退出界面3.3程序清单#include<iostream>//输入输出头文件#include<string>//字符串处理头文件#include<iomanip>#include<ctime>#include<conio.h>//用getch()函数的头文件#include<fstream>//文件处理头文件usingnamespacestd;#defineMAX100//最大商品容量intsnum=0;//商品数目doubleprice;intinve;doublesum=0;classGood//定义一个商品类{private: charnum[20]; charname[20]; charpro[20]; doubleprice; intinve; intinve1; intflag;//标记变量public: voidchushi();//初始化商品信息(从文件读入) voidshangjia(); voidoput(intx); voidliulan();//显示所有商品信息 voidtongji(); voidchaxun();//查询一种商品信息 voidxiaoshou();//卖出一件商品 voidsave();}good[MAX];voidGood::chushi()//录入原始商品信息(从文件读入){ ifstreamcin1("csc.txt",ios::out);//打开文本 while(cin1>>good[snum].num) { cin1>>good[snum].name; cin1>>good[snum].pro; cin1>>good[snum].price; cin1>>good[snum].inve; good[snum].flag=1;//改标记为1表示录入 snum++; }cout<<"\t\t******欢迎使用*****"<<endl;cout<<"\t\t*****************************"<<endl; cout<<"\t\t*******商品销售管理系统******"<<endl; cout<<"\t\t***电子与通信工程系***"<<endl; cout<<"\t\t***09电子1班杨安***"<<endl; cout<<"\t\t***学号2009044108***"<<endl; cout<<"\t\t*****************************"<<endl; cout<<endl; cout<<"\t\t"<<"按任意键继续..."<<endl; getch();}voidGood::shangjia()//添加一种商品信息{ if(snum>=MAX)//判断商品数量是否为满 { cout<<"商品已满!"<<endl; return; } ifstreamcin1("csc.txt",ios::out); cout<<"输入商品编号:"; cin>>good[snum].num; for(inti=0;i<snum;i++) if(strcmp(good[i].num,good[snum].num)==0&&good[i].flag==1) { cout<<"请输入上架量"; cin>>good[i].inve1; good[i].inve+=good[i].inve1; cout<<endl;break; }if(i>=snum) { cout<<"输入商品名称:";cin>>good[snum].name; cout<<"输入商品生产商:";cin>>good[snum].pro; cout<<"输入商品单价:";cin>>good[snum].price; cout<<"输入商品上架量:";cin>>good[snum].inve1; good[snum].inve+=good[snum].inve1; good[snum].flag=1;//该标记为1表示录入 snum++;} cout<<"添加完成!"<<endl; cout<<"按任意键继续..."<<endl;save(); getch(); }voidGood::oput(intx)//显示一种商品的信息{ cout<<"\n商品编号商品名称\t生产商\t商品单价\t库存量"; cout<<endl; cout<<good[x].num;cout<<setw(10)<<good[x].name<<"\t"; cout<<setw(10)<<good[x].pro<<"\t"; cout<<setw(10)<<good[x].price<<"\t"; cout<<setw(10)<<good[x].inve<<"\t"; cout<<endl;}voidGood::liulan()//显示所有商品信息{ if(snum==0) { cout<<"无商品信息!"<<endl; return; } inti; cout<<"\t\t所有商品信息:"<<endl; cout<<"\n编号\t名称\t生产商单价\t库存量"; cout<<endl; for(i=0;i<snum;i++) if(good[i].flag==1) { cout<<good[i].num<<"\t"; cout<<setw(10)<<good[i].name<<"\t";cout<<setw(10)<<good[i].pro<<"\t"; cout<<setw(10)<<good[i].price<<"\t"; cout<<setw(10)<<good[i].inve<<"\t"; cout<<endl; cout<<"按任意键继续..."<<endl; getch();}voidGood::tongji()//统计{ if(snum==0) { cout<<"没有记录,请先输入记录!"<<endl; return; } cout<<"今日总营业额"<<sum<<"元"; cout<<"按任意键继续..."<<endl; getch();}voidGood::chaxun()//查询一种商品信息{ while(snum==0) { cout<<"没有记录,请先输入记录!"<<endl; break; } inttemp=0; intn; chardaan; charnum1[20]; cout<<"请输入您要查询的商品编号:"; cin>>num1; for(inti=0;i<snum;i++) if(strcmp(good[i].num,num1)==0&&good[i].flag==1)oput(i); cout<<good[i].name<<"\t\t\t"; cout<<good[i].pro<<"\t\t"; cout<<good[i].price<<"\t\t"; cout<<good[i].inve<<"\t\t"; good[i].flag=1;//改标记为1表示录入 cout<<"按任意键继续..."<<endl; getch();}voidGood::xiaoshou()//买卖板块{ while(snum==0) { cout<<"没有记录,请先输入记录!"<<endl; break; } ifstreamcin1("csc.txt",ios::out); inttemp=0; chardaan; intn; inty=0; charnum1[20];o: cout<<"请输入您要售卖商品的编号:"; cin>>num1; for(inti=0;i<snum;i++) if(strcmp(good[i].num,num1)==0&&good[i].flag==1) { oput(i); cout<<"请输入您要售卖商品的数量:"; cin>>n; temp=1; if(good[i].inve<=0)cout<<"缺货!!赶快补货。"; if(good[i].inve>0&&good[i].inve>n){ cout<<"价值"<<good[i].price*n<<"元"; good[i].inve-=n; sum+=n*good[i].price;y+=n*good[i].price;}; if(good[i].inve>0&&good[i].inve<n){ cout<<"存货不够,只剩"<<good[i].inve<<"件"<<""; cout<<"价值"<<good[i].price*good[i].inve<<"元"<<""; sum+=good[i].price*good[i].inve;y+=good[i].price*good[i].inve; good[i].inve=0;}; } cout<<"还要购买别的商品吗?按“0”表示还要买。"; cin>>daan; if(daan=='0')gotoo; cout<<"您此次一共需付"<<y<<"元钱"; save(); if(temp==0) cout<<"无该商品记录!\n"; cout<<"按任意键继续..."<<endl; getch();}voidGood::save(){ ofstreamoutData("csc.txt"); intj; for(j=0;j<snum;j++) { outData<<setiosflags(ios::left)<<setw(10)<<good[j].num<<setw(13)<<good[j].name<<setw(8)<<good[j].pro<<setw(10)<<good[j].price<<""<<good[j].inve<<endl; } outData.close(); getch();}voidmenu(){ cout<<"\t**********商品销售管理系统**********"<<endl; cout<<endl; cout<<endl; cout<<"\t***1.商品浏览***"<<endl; cout<<"\t***2.商品上架***"<<endl; cout<<"\t***3.商品销售***"<<endl; cout<<"\t***4.商品查询***"<<endl;cout<<"\t***5.商品统计***"<<endl; cout<<"\t***0.安全退出***"<<endl; cout<<endl; cout<<"\t"<<"请选择操作(0-5):";} intmain()//主函数{ Goods; chara; s.chushi(); while(1) {l: system("cls");//调用DOS下的清屏命令 menu(); cin>>a; if(a=='0') break; else { switch(a) { case'1':s.liulan();break; case'2':s.shangjia();break; case'3':s.xiaoshou();break; case'4':s.chaxun();break; case'5':s.tongji();break; default:{cout<<"输入错误,请重新输入...\n";gotol;}break; } } } return0;}第4章心得体会本次C++课程设计,收获还是很多的,从刚刚拿到课程设计题目后,我就先分析这个程序的一些基本的功能,从这些基本功能出发来定下一个程序的大致框架结构,这里面主要包括程序中所设计的类,类与类之间的继承关系以及一些主要的函数的设计思想。比如:删除记录函数、增加记录函数等等。从一开始我就从图书馆借阅了不少的其他相关的C++资料,这些都是很宝贵的参看资料,可以说给我最后顺利的完成程序的编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年永州市中心医院医护人员招聘考试备考试题及答案详解
- 2026年江西省中医院医护人员招聘考试备考题库及答案详解
- 2026年华北煤炭医学院附属医院医护人员招聘考试参考试题及答案详解
- 2026年南华大学附属第三医院医护人员招聘笔试备考试题及答案详解
- 2026年空军第986医院医护人员招聘笔试备考试题及答案详解
- 2026年潍坊银行人员招聘考试备考题库及答案详解
- (2026年)院内多学科综合诊疗会诊制度
- 2026年中国银行(北京市分行)人员招聘笔试备考题库及答案详解
- 2026年南通市精神卫生中心医护人员招聘笔试参考题库及答案详解
- 2026年首都医科大学附属北京口腔医院医护人员招聘考试参考试题及答案详解
- 2023年江西新余中考历史真题及答案
- “星火计划”人才培养项目
- 【人教版】八年级数学下册《一次函数与方程、不等式》基础测试卷及答案
- 保险规划综合案例分析-
- 苏教版八年级数学下册期末试卷(必考题)
- 卫生部手术分级目录(2023年1月份修订)
- GB/T 5486.2-2001无机硬质绝热制品试验方法力学性能
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 308.1-2013滚动轴承球第1部分:钢球
- GB/T 193-2003普通螺纹直径与螺距系列
- 小学六年级数学总复习讲座-课件
评论
0/150
提交评论