公司的库存管理系统

上传人:春*** 文档编号:83903045 上传时间:2022-05-02 格式:DOC 页数:15 大小:109.50KB
收藏 版权申诉 举报 下载
公司的库存管理系统_第1页
第1页 / 共15页
公司的库存管理系统_第2页
第2页 / 共15页
公司的库存管理系统_第3页
第3页 / 共15页
资源描述:

《公司的库存管理系统》由会员分享,可在线阅读,更多相关《公司的库存管理系统(15页珍藏版)》请在装配图网上搜索。

1、某公司的库存管理系统1设计内容:对课程算法与程序设计中的相关内容进行综合设计或应用(具体课题题目见后面的供选题目)。(一)、课程设计题目:某公司的库存管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的

2、一种机制。 3、创新要求:基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 4、写出设计说明书 (三)、设计方法和基本原理: 1、问题描述(功能要求): 某公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函

3、数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。2设计要求:l 课程设计报告正文内容(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。(一)需求分析系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求;(二)总体设计系统功能分析;系统功能模块划分与设计(系统功能模块图)。(三)详细设计数据库需求分析;数据库概念结构设计(ER图);数据库逻辑结构设计; 类层次图。(四)界面设计与各功能模块实现(五)系统调试调试问题出现的主要问题:编译语法错误及修改,重点

4、是运行逻辑问题修改和调整。(六)使用说明及编程体会说明如何使用你编写的程序,详细列出每一步的操作步骤。(七)关键源程序(带注释)3 目 录一、系统设计分析.6二、程序设计明.61.四个类完成实体类的定义.82.公司库存管理系统中各模块功能的实现.83.添加物品信息模块.94.显示物品信息模块.10 5.查找物品信息模块.106.删除物品信息模块.117.保存物品信息模块.12三、系统调试. 12四、总结.12五、附件.12一、系统设计分析公司库存管理系统程序中,系统要求我们设计四个类:由家电类派生出来的普通电视机类和DVD类;再由普通电视机类和DVD类共同派生出来的带DVD的普通电视机类。在这

5、个系统中我们需要实现六个功能:1、显示物品功能;2、添加物品功能;3、查找物品功能;4、删除物品功能;5、保存物品功能。公司库存管理系统主要是为了让用户根据自己的需要自己想输入的一些物品,然后将其保存,当用户想查看所有物品时可以查看,想添加物品时可以添加自己想添加的相关物品信息,当用户想删除自己认为应当删除的物品时,用户可以根据自己的需要输入用户想删除的物品名称,然后将物品的相关信息删除;当用户想查找某一物品时,用户可以输入这一物品的名称然后查看这一物品的所有信息。在这个系统中,用户可以根据系统的提示分别执行用户自己想实现的功能,比如:在添加物品信息功能中,用户可以输入自己想输入的物品信息;在

6、显示物品功能中用户可以查看用户所保存的所有物品信息;在查找物品功能中用户可以根据自己的需要输入自己想查找的物品名称,然后查找用户想查找的物品的所有相关信息;在删除物品功能中用户可以根据自己的需要输入自己想删除的物品名称,然后进行删除;在物品保存功能中,当用户需要实现物品的保存时,系统会自动打开文件然后将用户输入的数据保存在用户给定的文件中。二、程序设计说明在公司库存管理系统中,物品信息主要为:物品名称,物品生产日期,物品的单价和数量。 公司库存管理系统中系统需要我们实现六个功能: 2、添加物品功能;3、显示物品功能;4、查找物品功能;5、删除物品功能;6、保存物品功能。在物品添加功能中用户可以

7、根据自己的需要输入自己想输入的物品信息(名称、生产日期、数量),然后将其保存。程序开始时,系统会提示用户先进行哪个功能,然后用户可根据需要输入相关型号的物品信息,输入完之后会再次提示用户是否继续输入,然后再根据提示进行相关操作。一般情况下,我们先进行添加物品这一功能中,当用户选择此功能时系统会将录入这些信息并保存,以便下次查找。在显示物品功能中,用户可以根据系统的提示输入想查找的相关物品的信息,之后系统便会弹出物品信息。在删除物品功能中,用户根据系统的提示输入自己想删除的物品名称,然后将其删除。在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存中的相关物品中查找,如果有

8、此物品则会显示此物品的所有信息,如果没有则会显示无此物品信息。在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。详情: 1.四个类完成实体类的定义Wiring类数据成员:物品名称,年月日物品数量成员函数:设置价格函数class wiringpublic:char name10;/物品名称int year,month,day;/出厂日期int number;/物品数量TV类class TV:virtual public wiring public:TV() void set1(char *n,int y,int m,int d,int nn)strcpy(name,n);ye

9、ar=y;month=m;day=d;number=nn;void pay() price1=3000; /普通电视机售价float price1;DVD类 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;/DVD售价float price2;_类class TV_DVD:public TV,public DVDpublic:TV_D

10、VD() 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、保存物品信息菜单 3、添加物品信息模块:添加物品信息添加普通电视机的相关信息添加DVD的相关信息添加带DVD的普通电视机的相关信息1、物品名称2、生产日期3、产品数量

11、4、显示物品信息模块: 在输入完第一次的添加产品后显示产品时,即显示出产品信息。5、查找物品信息:查找物品信息查找类型查找名称 返回后根据菜单选择3,即查找物品信息。依照提示输入所查找的类型和名称,则弹出所需物品信息。6、删除物品信息:删除物品删除物品信息物品名称 根据菜单选择4,即删除物品信息。依照提示输入要删除的类型和名称。7、最后根据提示将保存物品信息。三、系统调试 在调试程序中,出现很多问题,比如有的字符未定义,少花括号,分号,等等一些细节问题。后来一个一个慢慢改,感觉很是麻烦。还有显示有一个函数非法定义,后来经过同学帮忙才知道原来是花括号缺少的问题。 在调试中,我在添加物品信息中,当

12、我输入完一类物品信息后,想输入另一物品信息时,无法继续输入,总是输入同一物品信息,后来当我在循环中想退出for语句循环时,在需要退出时加一个break语句就可以退出当前循环进行其他步骤。在调试中,我深刻体会到循环语句的重要性,一个不留神就会把数据弄错,同时也尝到用while语句的妙用,感觉比dowhile语句好用多了,所以在程序中就多次用到了while语句,用dowhile语句的话,程序就要先执行一次,在判断那个语句是否正确,如果正确就会继续执行该程序段,否则就会退出程序。而用while语句的话则是先判断那个语句是否正确,如果正确就会执行该程序段,否则不执行。四、总结程序设计是一个很复杂的问题

13、,有的时候自己感觉没有出现任何错误,但是一运行,错误一大堆。小问题也随处可见。所以感觉编程这份工作的确是需要付出很大的努力,要游刃有余的使用每个函数,而不用老是翻书查看,像我在建立类,需要创建派生类时,还需要翻书查看具体内容,这是对书本知识不熟练的表现。在完善程序时,感觉添加物品信息时类型太少了,只要输入物品类型、名称、生产日期和产品数目。本来还打算多加几个,但又觉得太麻烦,所以就放弃了。做完这次课程设计,深深的感到自己还有很大不足之处。所以下定决心这个寒假回家好好补补课。附件:#include#include#include#includeusing namespace std;class

14、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;void pay() price1=3000; /普通电视机售价float price

15、1;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;/DVD售价float price2;class TV_DVD:public TV,public DVDpublic:TV_DVD() void set3(char *n,int y,int m,int d,int nn)strcpy(name,n);year=y;month=m;d

16、ay=d;number=nn;void pay() price=(2000+3000)*80/100;/带DVD的普通电视机售价float price;TV t120;DVD d120;TV_DVD td120;static int k(0),k1(0),k2(0);void main()/主函数void caidan();caidan();void caidan()void addw();/添加物品信息void shown();/显示物品信息void selectw();/删除物品信息void searchw();/查找物品信息void savew();/保存物品信息int a1;syste

17、m(color 0D);coutn;couttt*n;coutt(1) * 添加物品信息 * n;coutt(2) * 显示物品信息 * n;coutt(3) * 查找物品信息 * n;coutt(4) * 删除物品信息 * n;coutt(5) * 保存物品信息 * n;coutt(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();if(a1=4) selectw();if(a1=5)

18、 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请继续输入普通电视机的相关信息!n; else break;if(i=2)coutn

19、请输入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();k2+;couti1;while(i1!=1&i1!=2) couti

20、1; 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普通电视机的名称:t1v.namen普通电视机的出厂日期:t1v.year

21、/t1v.month/t1v.dayn普通电视机的单价:t1v.price1n普通电视机的数量:t1v.numberendl;for(v=0;vk1;v+)ofilenDVD的名称:d1v.namenDVD的出厂日期:d1v.year/d1v.month/d1v.daynDVD的单价:d1v.price2nDVD的数量:d1v.numberendl;for(v=0;vk2;v+)ofilen带DVD的普通电视机的名称:td1v.namen带DVD的普通电视机的出厂日期:td1v.year/td1v.month/td1v.dayn带DVD的普通电视机的单价:td1v.pricen带DVD的普通电

22、视机的数量: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) coutn退出程序!;void shown()/显示物品信息coutn从文件中读取物品信息n;char ch;int nn;ifstream ofile(wiring.txt);whil

23、e(ofile.get(ch)coutch;ofile.close();coutnn;while(nn!=1&nn!=2) coutnn;if(nn=1) system(cls); caidan();if(nn=2) cout退出程序!n;void searchw()/查找物品信息void caidan();char namestr20;int rr;int i,j;coutrr;while(rr!=1&rr!=2&rr!=3) coutrr;if(rr=1)coutnamestr;for(i=0;ik;i+)if(strcmp(namestr,t1i.name)=0)coutn普通电视机的名

24、称:t1i.namen普通电视机的出厂日期:t1i.year/t1i.month/t1i.dayn普通电视机的单价:t1i.price1n普通电视机的数量:t1i.numberendl;break;if(i=k) coutn对不起,没有你所要的普通电视机的相关信息!n;if(rr=2) coutnamestr;for(i=0;ik1;i+)if(strcmp(namestr,d1i.name)=0)coutnDVD的名称:d1i.namenDVD的出厂日期:d1i.year/d1i.month/d1i.daynDVD的单价:d1i.price2nDVD的数量:d1i.numberendl;br

25、eak;if(i=k1) coutn对不起,没有你所要的DVD的相关信息!n;if(rr=3)coutnamestr;for(i=0;ik2;i+)if(strcmp(namestr,td1i.name)=0)coutn带DVD的普通电视机的名称:td1i.namen带DVD的普通电视机的出厂日期:td1i.year/td1i.month/td1i.dayn带DVD的普通电视机的单价:td1i.pricen带DVD的普通电视机的数量:td1i.numberendl;break;if(i=k2) coutn对不起,没有你所要的带DVD的普通电视机的相关信息!n;coutj;while(j!=1&

26、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)coutnamestr;for(i=0;ik;i+) if(strcmp(namestr,t1i.name)=0) i1=i;if(rr=2)coutnamestr;for(i=0;ik1;i+) if(strcmp(na

27、mestr,d1i.name)=0) i2=i;if(rr=3)coutnamestr;for(i=0;ik2;i+) if(strcmp(namestr,td1i.name)=0) i3=i;coutr1;while(r1!=1&r1!=2) coutr1;if(r1=1)ofstream ofile(wiring.txt,ios_base:out);for(i=0;ik;i+)if(i=i1) continue;elseofilen普通电视机的名称:t1i.namen普通电视机的出厂日期:t1i.year/t1i.month/t1i.dayn普通电视机的单价:t1i.price1n普通电视

28、机的数量:t1i.numberendl;for(i=0;ik1;i+)if(i=i2) continue;elseofilenDVD的名称:d1i.namenDVD的出厂日期:d1i.year/d1i.month/d1i.daynDVD的单价:d1i.price2nDVD的数量:d1i.numberendl;for(i=0;ik2;i+)if(i=i3) continue;elseofilen带DVD的普通电视机的名称:td1i.namen带DVD的普通电视机的出厂日期:td1i.year/td1i.month/td1i.dayn带DVD的普通电视机的单价:td1i.pricen带DVD的普通

29、电视机的数量:td1i.numberendl;ofile.close();coutn物品信息已保存!n;coutr1;while(r1!=1&r1!=2) coutr1;if(r1=1) system(cls); caidan();if(r1=2) cout退出程序!n;void savew()/保存物品信息void caidan();ofstream ofile(wiring.txt,ios_base:out);int i,rr;for(i=0;ik;i+)ofilen普通电视机的名称:t1i.namen普通电视机的出厂日期:t1i.year/t1i.month/t1i.dayn普通电视机的

30、单价:t1i.price1n普通电视机的数量:t1i.numberendl;for(i=0;ik1;i+)ofilenDVD的名称:d1i.namenDVD的出厂日期:d1i.year/d1i.month/d1i.daynDVD的单价:d1i.price2nDVD的数量:d1i.numberendl;for(i=0;ik2;i+)ofilen带DVD的普通电视机的名称:td1i.namen带DVD的普通电视机的出厂日期:td1i.year/td1i.month/td1i.dayn带DVD的普通电视机的单价:td1i.pricen带DVD的普通电视机的数量:td1i.numberendl;ofile.close();coutn物品信息已储存!;coutrr;while(rr!=1&rr!=2) coutrr;if(rr=1) system(cls);caidan();/清屏并返回菜单else coutn退出程序!;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!