




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、某 公司的库存管理系统1 设计内容:对课程 算法与程序设计 中的相关内容进行综合设计或应用 (具体课题题目见后面的供选题目) 。、课程设计题目:某公司的库存管理系统、目的与要求:1、目的:(1)要求学生达到熟练掌握C+斑言的基本知识和技能;( 2)基本掌握面向对象程序设计的基本思路和方法;( 3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;( 2 )要求在设计的过程中,建立清晰的类层次;( 3 )在系统中至少要定义四个类,每个类中要有各自的属性和方法;( 4 )在系统的设计中,至少要用到面向对象的一
2、种机制。3、 创新要求: 基本要求达到后, 可进行创新设计, 如根据查找结果进行修改的功能。4、写出设计说明书(三) 、设计方法和基本原理:1、问题描述(功能要求) :某公司现有以下设备:普通电视机、 DVD带DVD勺电视机,带 DVD的电视机的 售价为普通电视机和DVD单价之和的80%要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。( 、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:( 1 )分析系统中的各个实体之间的关系及其属性和行为;( 2 )根据问题描述,设计系统的类层次;( 3 )完成类层次中各个类的描述(包括属性和方法);( 4 )完成类中各
3、个成员函数的定义;( 5 )完成系统的应用模块;( 6 )功能调试;( 7 )完成系统总结报告以及系统使用说明书。2 设计要求:课程设计报告正文内容(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表) ,调试过程,关键程序代码,总结,参考书目等) 。(一)需求分析系统设计目的与意义;系统功能需求(系统流程图) ;输入输出的要求;(二)总体设计系统功能分析;系统功能模块划分与设计(系统功能模块图) 。(三)详细设计数据库需求分析;数据库概念结构设计(E R 图) ;数据库逻辑结构设计;类层次图。(四)界面设计与各功能模块实现(五)系统调试调试问题出现的主要问题:
4、 编译语法错误及修改, 重点是运行逻辑问题修改和调整。(六)使用说明及编程体会说明如何使用你编写的程序,详细列出每一步的操作步骤。(七)关键源程序(带注释)精选范本一、系统设计分析 6二、程序设计明 61 .四个类完成实体类的定义 82 .公司库存管理系统中各模块功能的实现 83 .添加物品信息模块 94 .显示物品信息模块 105 .查找物品信息模块 106 .删除物品信息模块 117 .保存物品信息模块 12三、系统调试 12四、总结 12五、附件 12一、系统设计分析公司库存管理系统程序中,系统要求我们设计四个类:由家电类派生出来的普通电视机类和DV酸;再由普通电视机类和DVD类共同派生
5、出来的带DVD的普通电视机类。在这个系统中我们需要实现六个功能: 1 、 显示物品功能; 2、 添加物品功能; 3、 查找物品功能; 4、 删除物品功能; 5 、保存物品功能。公司库存管理系统主要是为了让用户根据自己的需要自己想输入的一些物品,然后将其保存, 当用户想查看所有物品时可以查看, 想添加物品时可以添加自己想添加的相关物品信息, 当用户想删除自己认为应当删除的物品时, 用户可以根据自己的需要输入用户想删除的物品名称, 然后将物品的相关信息删除; 当用户想查找某一物品时, 用户可以输入这一物品的名称然后查看这一物品的所有信息。在这个系统中,用户可以根据系统的提示分别执行用户自己想实现的
6、功能,比如:在添加物品信息功能中, 用户可以输入自己想输入的物品信息; 在显示物品功能中用户可以查看用户所保存的所有物品信息; 在查找物品功能中用户可以根据自己的需要输入自己想查找的物品名称, 然后查找用户想查找的物品的所有相关信息; 在删除物品功能中用户可以根据自己的需要输入自己想删除的物品名称, 然后进行删除; 在物品保存功能中, 当用户需要实现物品的保存时,系统会自动打开文件然后将用户输入的数据保存在用户给定的文件中。二、程序设计说明在公司库存管理系统中, 物品信息主要为:物品名称,物品生产日期, 物品的单价和数量。公司库存管理系统中系统需要我们实现六个功能: 2 、添加物品功能; 3
7、、显示物品功能; 4、查找物品功能;5、删除物品功能;6、保存物品功能。在物品添加功能中用户可以根据自己的需要输入自己想输入的物品信息(名称、生产日期、数量) ,然后将其保存。程序开始时,系统会提示用户先进行哪个功能,然后用户可根据需要输入相关型号的物品信息, 输入完之后会再次提示用户是否继续输入, 然后再根据提示进行相关操作。一般情况下,我们先进行添加物品这一功能中,当用户选择此功能时系统会将录入这些信息并保存,以便下次查找。在显示物品功能中,用户可以根据系统的提示输入想查找的相关物品的信息,之后系统便会弹出物品信息。在删除物品功能中, 用户根据系统的提示输入自己想删除的物品名称, 然后将其
8、删除。在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存中的相关物品中查找,如果有此物品则会显示此物品的所有信息,如果没有则会显示无此物品信息。在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。详情:1 .四个类完成实体类的定义Wiring 类数据成员:物品名称,年.月.日.物品数量成员函数:设置价格函数class wiringpublic:char name10;/ 物品名称int year,month,day;/出厂 日期int number;/ 物品数量TV类class TV:virtual public wiring public: TV()
9、 void set1(char *n,int y,int m,int d,int nn) strcpy(name,n);year=y; month=m;day=d; number=nn; voidpay()price1=3000; /普通电视机售价 float price1;DVD类 class DVD:virtual public wiring public:DVD() void set2(char *n,int y,int m,int d,int nn) strcpy(name,n);year=y; month=m;day=d; number=nn; void pay() price2=2
10、000;/DVD售价float price2;TV_DVD类class TV_DVD:publicTV,public DVDpublic:TV_DVD() void set3(char *n,int y,int m,int d,int nn)strcpy(name,n);year=y;month=m;day=d;number=nn;void pay()price=(2000+3000)*80/100;带DVD的普通电视机售价float price;2 .公司库存管理系统中各功能模块的实现:1、添加物品信息2、显示物品信息3、删除物品信息3、查找物品信息5、保存物品信息6、保存物品信息 12 3
11、 4 5 6自心自3自心息息 一一信像信信信 一品品品品品出一 一一物物物物物退一 一 一加示我 一 -添显查删保睛输入1或2或3或4或5或6进行你所要执行地下一步动作=3、添加物品信息模块添 加 物 品 信 息添加普通电视机的相关信息添加DVD勺相关信息添加带DVD的普通电视机的*相关信息2、生产日期1、物品名称3、产品数量请输入1或2或3或4或5或6进行你所要执行地下一步动作工1请输入数字健添加对应的物品信息S-普通电视机2-DUD 3-带DUD的普通电视机):1请领茸通电视机的相关信息,物I品名,你:qq物品出厂日期:如11101物品数量门崎想老赵卖添加普通电视机的相关信息吗? U-是2
12、-否想添加其他物品的相关信息吗? 1-是2-否想惊存你所输入得薮据吗陞1-是2-否物晶信息己脩存,氏键1返回菜单4、显示物品信息模块:在输入完第一次的添加产品后显示产品时,即显示出产品信息。(输入1或2或3或4或S或6进行你所要执行地下一步动作二从文件中读取物品信息、了督里名出单数机矶矶机电电电电曲感逋通-1 lAi ta- Ta-5 1a宜星昱日5、查找物品信息:查找物品信息查找类型查找名称返回后根据菜单选择 3,即查找物品信息。依照提示输入所查找的类型和名称,则弹出 所需物品信息。输入你想查找的物品类型S-普通电视机2-DUD 3-带DUD的普通电视机栋厂售M名出单数?iT Jtt JVt
13、电电电电逋通南一通篁S寄输入数字键i返回菜单或数字键2退出程序,6、删除物品信息:删除物品*删除物品信息物品名称根据菜单选择4,即删除物品信息。依照提示输入要删除的类型和名称。请输入1或2或3或4或5或6进行你所要执行地下一步动作:请输入你要删除的物品信息普通电视机2-DUD 3-带DUD的普通电视机);工入存1露键请想按你删的信名2机是: 视序 电?程 通吗上 音息退7、最后根据提小将保存物品信息。三、系统调试在调试程序中,出现很多问题,比如有的字符未定义,少花括号,分号,等等一些细 节问题。后来一个一个慢慢改,感觉很是麻烦。还有显示有一个函数非法定义,后来经过 同学帮忙才知道原来是花括号缺
14、少的问题。在调试中,我在添加物品信息中,当我输入完一类物品信息后,想输入另一物品信息时,无法继续输入,总是输入同一物品信息,后来当我在循环中想退出for语句循环时,在需要退出日加一个 break语句就可以退出当前循环进行其他步骤。在调试中,我深刻体会到循环语句的重要性,一个不留神就会把数据弄错, 同时也尝到用while语句的妙用,感觉比dowhile语句好用多了,所以在程序 中就多次用到了 while语句,用do - while语句的话,程序就要先执行一次,在 判断那个语句是否正确,如果正确就会继续执行该程序段,否则就会退出程序。而用 while 语句的话则是先判断那个语句是否正确,如果正确就
15、会执行该程序段,否则不执行。四、总结程序设计是一个很复杂的问题,有的时候自己感觉没有出现任何错误,但是一运行,错误一大堆。 小问题也随处可见。 所以感觉编程这份工作的确是需要付出很大的努力, 要游刃有余的使用每个函数, 而不用老是翻书查看,像我在建立类,需要创建派生类时,还需要翻书查看具体内容,这是对书本知识不熟练的表现。在完善程序时,感觉添加物品信息时类型太少了,只要输入物品类型、名称、生产日期和产品数目。本来还打算多加几个,但又觉得太麻烦,所以就放弃了。做完这次课程设计,深深的感到自己还有很大不足之处。所以下定决心这个寒假回家好好补补课。附件 :#include#include#inclu
16、de#includeusing namespace std;class wiringpublic:char name10;/ 物品名称int year,month,day;/ 出厂日期int number;/物品数量wiring() /构造函数wiring() / 析构函数virtual void pay() / 设置价格函数;class TV:virtual public wiring public:TV() void set1(char *n,int y,int m,int d,int nn) strcpy(name,n);year=y;month=m;day=d;number=nn;vo
17、id pay() price1=3000; / 普通电视机售价float price1;class DVD:virtual public wiringpublic:DVD() void set2(char *n,int y,int m,int d,int nn) strcpy(name,n);year=y;month=m;day=d;number=nn;void pay() price2=2000;/DVDfloat price2;class TV_DVD:public TV,public DVDpublic:TV_DVD() void set3(char *n,int y,int m,int
18、 d,int nn) strcpy(name,n);year=y;month=m;day=d;number=nn;售价void pay() price=(2000+3000)*80/100;/ float price;TV t120;DVD d120;TV_DVD td120;static int k(0),k1(0),k2(0);void main()/ 主函数void caidan();caidan();带DVD的普通电视机售价void caidan() void addw();/ void shown();/ void selectw();/ void searchw();/ void
19、savew();/ int a1;system(color 0D);添加物品信息显示物品信息删除物品信息查找物品信息保存物品信息coutn;couttt*n;coutt(1)*添加物品信息* ncoutt(2)*显示物品信息* ncoutt(3)*查找物品信息* ncoutt(4)*删除物品信息* ncoutt(5)*保存物品信息* ncoutt(6)*退出* n;couttt*n;couta1;while(a1!=1&a1!=2&a1!=3&a1!=4&a1!=5&a1!=6) couta1;if(a1=1) addw();if(a1=2) shown();if(a1=3) searchw(
20、);if(a1=4) selectw();if(a1=5) savew();if(a1=6) coutn 退出程序 !n;void addw()/ 添加物品信息函数void caidan();/ 菜单函数char a10;int m,n,h,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn 请输入普通电视机的相关信息 !n;for(v=k;v20;v+)couta;coutmnh;coutn1;t1v.set1(a,m,n,h,n1);t1v.pay();k+;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) coutn 请继续输入普通
21、电视机的相关信息!n;else break;if(i=2)coutn 请输入 DVD勺相关信息!n”;for(v=k1;v20;v+)couta;coutmnh;coutn1;d1v.set2(a,m,n,h,n1);d1v.pay();k1+;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) coutn请继续输入 DVD勺相关信息!n;else break;if(i=3)coutn请输入带DVD的普通电视机的相关信息!n;for(v=k2;v20;v+)couta;coutmnh;coutn1;td1v.set3(a,m,n,h,n1);td1v.pay()
22、;k2+;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) coutn请继续输入带DVD的普通电视机的相关信息!n;if(i1=2) break;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) coutn请输入数字输入相对应的物品信息 (1- 普通电视机2-DVD 3- 带DVD勺普通电视机):;if(i1=2) break;coutrr;while(rr!=1&rr!=2) coutrr;if(rr=1)ofstream ofile(wiring.txt,ios_base:out);for(v=0;vk;v+)ofilen
23、 普 通 电 视 机 的 名 称 :n 普 通 电 视 机 的 出 厂 日期:t1v.year/t1v.month/t1v.dayn 普 通 电 视 机 的 单 价 :t1v.price1n 普 通 电 视 机 的 数 量:t1v.numberendl;for(v=0;vk1;v+)ofilenDVD 的 名 称 :nDVD 的 出 厂 日 期:d1v.year/d1v.month/d1v.daynDVD 的 单 价 :d1v.price2nDVD的 数量:d1v.numberendl;for(v=0;vk2;v+)ofilen 带DVD勺普通电视机的名称:td
24、1n 带DVD勺普通电视机的出厂日期 :td1v.year/td1v.month/td1v.dayn 带 DVD勺普通电视机的单价 :td1v.pricen带 DVD勺普通电视机的数量:td1v.numberendl;ofile.close();coutn 物品信息已储存!;coutr1;while(r1!=1) coutr1;if(r1=1) system(cls);caidan();if(r1=2) coutn退出程序 !;if(rr=2)coutr1;while(r1!=1&r1!=2) coutr1;if(r1=1) system(cls);caidan();if(r1=2
25、) coutn退出程序 !;void shown()/ 显示物品信息coutn 从文件中读取物品信息n;char ch;int nn;ifstream ofile(wiring.txt);while(ofile.get(ch)coutch;ofile.close();coutnn;while(nn!=1&nn!=2) coutnn; if(nn=1) system(cls); caidan();if(nn=2) coutrr;coutrr;while(rr!=1&rr!=2&rr!=3) coutn if(rr=1).n.coutnamestr;for(i=0;ik;i+) if(strcmp
26、(namestr,)=0) coutn 普通电视机的名称:n 普通电视机的出厂日 期:t1i.year/t1i.month普通电视机的数!n;/t1i.dayn 普通 电视机 的单价:t1i.price1n 量:t1i.numberendl;break;if(i=k) coutn 对不起,没有你所要的普通电视机的相关信息 if(rr=2)coutnamestr;for(i=0;ik1;i+)if(strcmp(namestr,)=0)coutnDVD 的 名 称:nDVD期:d1i.year/d1i.month/d1i.daynD
27、VD的 单 价:d1i.price2nDVD的量:d1i.numberendl;break;if(i=k1) coutn 对不起,没有你所要的DVD的相关信息!n; if(rr=3)coutnamestr;for(i=0;ik2;i+)if(strcmp(namestr,)=0)coutn 带DVD的普通电视机的名称:n带DVD的普通电视机的出厂日期:td1i.year/td1i.month/td1i.dayn带 DVD勺普通电视机的单价 :td1i.pricen带 DVD勺普通电视机的数量:td1i.numberendl;break;if(i=k2) co
28、utn 对不起,没有彳所要的带DVD的普通电视机的相关信息!n;coutj;while(j!=1&j!=2)coutj;if(j=1) system(cls);caidan();if(j=2) coutn退出程序!;void selectw()/ 删除物品信息void caidan();char namestr20;int rr,i,r1,i1(-1),i2(-1),i3(-1);coutrr;while(rr!=1&rr!=2&rr!=3) coutrr;if(rr=1)coutn 请输入你想删除的普通电视机名称:;cinnamestr;for(i=0;ik;i+) if(strcmp(na
29、mestr,)=0) i1=i;if(rr=2)coutn 请输入你想删除的DVD名称:;cinnamestr;for(i=0;ik1 ;i+) if(strcmp(namestr,)=0) i2=i;if(rr=3)coutn 请输入你想删除的带DVD的普通电视机的名称:”;cinnamestr;for(i=0;ik2;i+) if(strcmp(namestr,)=0) i3=i;cout想保存删除后的信息吗?(1-是2-否):;cinr1;while(r1 !=1&r1 !=2) cout请重新输入数字 1 或 2:;cinrl;if(r1=1)ofstream ofile(wiring.txt,ios_base:out);for(i=0;ik;i+)if(i=i1) continue; elseofilen 普通电视机的名称:n 普通电视机的出厂日 期:t1 i.year/t1 i.month/t1 i.dayn 普通电视机 的单价:t1 i.price1 n 普通电视机的数 量:t1 i.numberendl; for(i=0;ik1 ;i+) if(i=i2) continue;elseofilenDVD 的 名 称 :nDVD 的 出 厂 日 期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小猪佩奇的奇妙冒险童话作文5篇
- 特色养殖合作与技术支持协议
- 委托开发新赛项协议
- 义务教育合作协议
- 公交公司关爱员工活动方案
- 黄鹤楼送友人:古诗中的友情主题教学教案
- 关于学习经验的初一作文700字9篇
- 畅想未来童话作文10篇范文
- 公共关系公司策划方案
- 公关公司开业策划方案
- 四年级下册综合实践活动教案-我的时间我做主 全国通用
- 304不锈钢管材质证明书
- 预拌混凝土及原材料检测理论考试题库(含答案)
- 3~6岁儿童早期运动游戏干预课程设计研究-基于SKIP的研究证据
- 《植物生理学》课件第三章+植物的光合作用
- 游泳馆网架翻新施工组织方案设计
- 3.1 定格青春——向艺术家学创作 课件-2021-2022学年高中美术人美版(2019)选修绘画
- 有机化学所有的命名--超全.
- 引水罐的设计计算
- 三年级译林版英语下学期按要求写句子专项强化练习题
- 电缆接线工艺设计规范流程
评论
0/150
提交评论