公司的库存管理系统

上传人:m**** 文档编号:181822505 上传时间:2023-01-18 格式:DOCX 页数:15 大小:55.01KB
返回 下载 相关 举报
公司的库存管理系统_第1页
第1页 / 共15页
公司的库存管理系统_第2页
第2页 / 共15页
公司的库存管理系统_第3页
第3页 / 共15页
点击查看更多>>
资源描述
某公司的库存管理系统1设计内容:对课程算法与程序设计中的相关内容进行综合设计或应用(具体课题题 目见后面的供选题目)。(一) 、课程设计题目: 某公司的库存管理系统(二) 、目的与要求:1、目的:(1 )要求学生达到熟练掌握C+语言的基本知识和技能;(2) 基本掌握面向对象程序设计的基本思路和方法;(3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1 )要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2) 要求在设计的过程中,建立清晰的类层次;(3) 在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4) 在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书(三) 、设计方法和基本原理:1、问题描述(功能要求):某公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的 售价为普通电视机和 DVD 单价之和的 80%,要求对所有的库存设备都能按照品名进 行显示、查找、增加和删除、保存的功能。2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤:(1) 分析系统中的各个实体之间的关系及其属性和行为;(2) 根据问题描述,设计系统的类层次;(3) 完成类层次中各个类的描述(包括属性和方法);(4) 完成类中各个成员函数的定义;(5) 完成系统的应用模块;(6) 功能调试;(7) 完成系统总结报告以及系统使用说明书。2设计要求:课程设计报告正文内容(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。一)需求分析系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求;二)总体设计系统功能分析;系统功能模块划分与设计(系统功能模块图)。三)详细设计数据库需求分析;数据库概念结构设计(ER图);数据库逻辑结构设计; 类层次图。四)界面设计与各功能模块实现五)系统调试调试问题出现的主要问题:编译语法错误及修改,重点是运行逻辑问题修改和调整六)使用说明及编程体会说明如何使用你编写的程序,详细列出每一步的操作步骤。七)关键源程序(带注释)目录一、系统设计分析6二、程序设计明61. 四个类完成实体类的定义82. 公司库存管理系统中各模块功能的实现83. 添加物品信息模块94.显示物品信息模块 105.查找物品信息模块106.删除物品信息模块117.保存物品信息模块12三、系统调试 12四、总结 12五、附件12一、系统设计分析公司库存管理系统程序中,系统要求我们设计四个类:由家电类派生出来的普通电视 机类和DVD类;再由普通电视机类和DVD类共同派生出来的带DVD的普通电视机类。在这个 系统中我们需要实现六个功能:1、显示物品功能;2、添加物品功能;3、查找物品功能;4、 删除物品功能;5、保存物品功能。公司库存管理系统主要是为了让用户根据自己的需要自己想输入的一些物品,然后将 其保存,当用户想查看所有物品时可以查看,想添加物品时可以添加自己想添加的相关物品 信息,当用户想删除自己认为应当删除的物品时,用户可以根据自己的需要输入用户想删除 的物品名称,然后将物品的相关信息删除;当用户想查找某一物品时,用户可以输入这一物 品的名称然后查看这一物品的所有信息。在这个系统中,用户可以根据系统的提示分别执行用户自己想实现的功能,比如:在 添加物品信息功能中,用户可以输入自己想输入的物品信息;在显示物品功能中用户可以查 看用户所保存的所有物品信息;在查找物品功能中用户可以根据自己的需要输入自己想查找 的物品名称,然后查找用户想查找的物品的所有相关信息;在删除物品功能中用户可以根据 自己的需要输入自己想删除的物品名称,然后进行删除;在物品保存功能中,当用户需要实 现物品的保存时,系统会自动打开文件然后将用户输入的数据保存在用户给定的文件中。 二、程序设计说明在公司库存管理系统中,物品信息主要为:物品名称,物品生产日期,物品的单价和 数量。公司库存管理系统中系统需要我们实现六个功能: 2、添加物品功能;3、显示物品 功能;4、查找物品功能;5、删除物品功能;6、保存物品功能。在物品添加功能中用户可以根据自己的需要输入自己想输入的物品信息(名称、生产 日期、数量),然后将其保存。程序开始时,系统会提示用户先进行哪个功能,然后用户可 根据需要输入相关型号的物品信息,输入完之后会再次提示用户是否继续输入,然后再根据 提示进行相关操作。一般情况下,我们先进行添加物品这一功能中,当用户选择此功能时系统会将录入这 些信息并保存,以便下次查找。在显示物品功能中,用户可以根据系统的提示输入想查找的相关物品的信息,之后系 统便会弹出物品信息。在删除物品功能中,用户根据系统的提示输入自己想删除的物品名称,然后将其删除。在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存 中的相关物品中查找,如果有此物品则会显示此物品的所有信息,如果没有则会显示无此物 品信息。在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。 详情:1. 四个类完成实体类的定义Wiring 类数据成员:物品名称,年月日物品数量成员函数:设置价格函数class wiringpublic:char name10;/物品名称int year,mo nt h,day;/出厂日期int number;/物品数量TV类class TV:virtual public wiring public:TV() void setl(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 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;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、保存物品信息=自心息自心自心自心 =信信信信信=品品品品品出 =物物物物物退 =加示找第=添显杳_删保二 二 二 二 二 二 二 二 二 二 二*晴输入1或2或3或4或5或6进行你所要执行地下一歩动作:3、添加物品信息模块:添加普通电视机的相关信息添加DVD的相关信息添加带DVD的普通电视机的 相关信息1、物品名称3、产品数量2、生产日期添加物品信息请谕入1或2或2或4或E或6进行嫁所要执行地下一押动作, 请输入数宇健添加对应的物品信息普通电观机2-DUD 3 UD的普通电观机次 诫输童通电视机的相关信息,物品名月亦啦物品出厂日期201110竹品数量汩00b继续添卽普通电视初的相关信息吗是2-否、汐 品胞招关信息吗?-是7-否、注+冃 ji-L-物品信息己储疗辛据吗?-是2否江4、显示物品信息模块:在输入完第一次的添加产品后显示产品时,即显示出产品信息。输Zd或2或3或咗或或6进行你所要执行地下一歩动(乍:文件中俠取物品信息/I0d1912 Av-.1 11 g苴川0 0 5日:3:1 称厂會里 名出单数 的的的內H电电电电通通通通5、查找物品信息:查找物品信息查找类型查找名称返回后根据菜单选择 3,即查找物品信息。依照提示输入所查找的类型和名称,则弹出 所需物品信息。输入1或2或3或4或5或&进行你所要执行地下一歩动作=输入你想查找的物品类型“-普通电视机2-DUD 3-带DUD的普通电视机注直输入你要查找的普通电视机名称:穷H电电电电通通通通称厂會里 名岀单数 的的的盼:q(iS M3:2011/10/1:3909:199输入数字犍1返回菜单或数字犍2退出程序二6、删除物品信息:册0除物品 册0除物品信息物品名称根据菜单选择4,即删除物品信息。依照提示输入要删除的类型和名称。请输入1或2或M或4或或进行你所更执行地下一步励作请输入你要删除的物品信息-普通电视机2-DUD A带DUD的普通电视机汕 请諭入你想姻除的普通电视机名称=QQ想操存蒯篠启欝詹息吗? 是2-否吃寢毬1返回菜单,2退出程序:7、最后根据提示将保存物品信息。三、系统调试在调试程序中,出现很多问题,比如有的字符未定义,少花括号,分号,等等一些细 节问题。后来一个一个慢慢改,感觉很是麻烦。还有显示有一个函数非法定义,后来经过 同学帮忙才知道原来是花括号缺少的问题。在调试中,我在添加物品信息中,当我输入完一类物品信息后,想输入另一物品信息 时,无法继续输入,总是输入同一物品信息,后来当我在循环中想退出for语句循环时, 在需要退出时加一个break语句就可以退出当前循环进行其他步骤。在调试中,我深刻体会到循环语句的重要性,一个不留神就会把数据弄错, 同时也尝到用while语句的妙用,感觉比dowhile语句好用多了,所以在程序 中就多次用到了 while语句,用do.while语句的话,程序就要先执行一次,在 判断那个语句是否正确,如果正确就会继续执行该程序段,否则就会退出程序。而用 while 语句的话则是先判断那个语句是否正确,如果正确就会执行该程序 段,否则不执行。四、总结程序设计是一个很复杂的问题,有的时候自己感觉没有出现任何错误,但是一运行, 错误一大堆。小问题也随处可见。所以感觉编程这份工作的确是需要付出很大的努力,要游 刃有余的使用每个函数,而不用老是翻书查看,像我在建立类,需要创建派生类时,还需要 翻书查看具体内容,这是对书本知识不熟练的表现。在完善程序时,感觉添加物品信息时类型太少了,只要输入物品类型、名称、生产 日期和产品数目。本来还打算多加几个,但又觉得太麻烦,所以就放弃了。做完这次课程设计,深深的感到自己还有很大不足之处。所以下定决心这个寒假回 家好好补补课。附件:#include#include#include#includeusing namespace std;class wiringpublic:char name10;/物品名称int year,mo nt h,day;/出厂日期int number;/物品数量wiring() /构造函数wiring() /析构函数virtual void pay() /设置价格函数;class TV:virtual public wiringpublic: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 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;/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;day=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 selec tw();/删除物品信息void searchw();/查找物品信息void savew();/保存物品信息int a1;system(color 0D);coutn;couttt*n;coutt(1)*添加物品信息*ncoutt(2)*显示物品信息*ncoutt(3)*查找物品信息*ncoutt(4)*删除物品信息*ncoutt(5)*保存物品信息*ncoutt(6)*退出*ncouta1;while(a1!=1 &a1!=2 &a1!=3 &a1!=4&a1!=5 &a1!=6)cou tn请重新输入数字1 或2或 3 或4或 5 或 6:;cina1;if(a1=1)addw();if(a1=2)shown();if(a1=3)searchw();if(a1=4)selectw();if(a1=5)savew();f (al=6)cou tn 退出程序!n;void addw()/添加物品信息函数void caidan();/菜单函数char a10;int m,n,h,n1,rr,i1,v,i=9,r1;coutn请输入数字键添加对应的物品信息(1-普通电视机2-DVD 3-带DVD的普通电视 机):;while(i!=0)cini;if(i=1)cou tn请输入普通电视机的相关信息!n;for(v=k;v20;v+)cou t物品名称:;cina;coutn物品出厂日期:;cinmnh;coutn物品数量:;cinn1;t1v.set1(a,m,n,h,n1);t1v.pay();k+;coutn想继续添加普通电视机的相关信息吗?(1-是2-否):;cini1;while(i1!=1&i1!=2) coutn请重新输入数字1或2:;cini1;if(i1=1) cou tn请继续输入普通电视机的相关信息!n;else break;if(i=2)coutn请输入DVD的相关信息!n;for(v=k1;v20;v+)cou t物品名称:;cina;coutn物品出厂日期:;cinmnh;coutn物品数量:;cinn1;d1v.set2(a,m,n,h,n1);d1v.pay();k1+;coutn想继续添加DVD的相关信息吗?(1-是2-否):;cini1;while(i1!=1&i1!=2) coutn请重新输入数字1或2:;cini1;if(i1=1) coutn请继续输入DVD的相关信息!n;else break;if(i=3)coutn请输入带DVD的普通电视机的相关信息!n;for(v=k2;v20;v+)cou t物品名称:;cina;coutn物品出厂日期:;cinmnh;coutn物品数量:;cinn1;td1v.set3(a,m,n,h,n1);td1v.pay();k2+;coutn想继续添加带DVD的普通电视机的相关信息吗?(1-是2-否):;cini1;while(i1!=1&i1!=2) coutn请重新输入数字1或2:;cini1;if(i1=1) coutn请继续输入带DVD的普通电视机的相关信息!n;if(i1=2) break;coutn想添加其他物品的相关信息吗?(1-是2-否):;cini1;while(i1!=1 &i1!=2) coutn请重新输入数字 1 或 2:;cini1;if(i1=1) coutn 请输入数字输入相对应的物品信息(1-普通电视机 2-DVD 3-带DVD的普通电视机):;if(i1=2) break;cou t想保存你所输入得数据吗?(1-是2否):;cinrr;while(rr!=1 &rr!=2) coutn请重新输入数字 1 或 2:;cinrr;if(rr=1)ofstream ofile(wiring.txt,ios_base:out);for(v=0;vk;v+)ofilen普通电视机的名称:t1v.namen普通电视机的出厂日期:t1v.year7 t1v.mon th7tlv.dayn普通电视机的单价:tlv.priceln普通电视机的数 量:tlv .numberendl;for(v=0;vk1;v+)ofilenDVD 的 名 称 :d1v.namenDVD 的 出 厂 日 期:dlv.year7dlv.mon th/d1v.daynDVD 的 单 价 :d1v.price2nDVD 的 数 量:dlv.numberendl;for(v=0;vk2;v+)ofilen带DVD的普通电视机的名称:tdlv.namen带DVD的普通电视机的出厂 日期:tdlv.year7 tdlv.mon th7tdlv.dayn带 DVD 的普通电视机的单价:tdlv.pricen带 DVD 的普通 电视机的数量:tdlv.numberendl;ofile.close();coutn物品信息已储存!;coutn按键1返回菜单:;cinr1;while(r1!=1)if(r1=1)if(r1=2)if(rr=2)cou tn 请重新输入数字 1:;cinr1; system(cls);caidan();cou tn 退出程序!;coutn按键1返回菜单2退出程序:;cinr1;while(r1!=1 &r1!=2) coutn请重新输入数字 1 或 2:;cinr1;if(r1=1)if(r1=2) system(cls);caidan();cou tn退出程序!;void shown()/显示物品信息coutn从文件中读取物品信息n;char ch;int nn; ifstream ofile(wiring.txt); while(ofile.get(ch) coutch;ofile.close();cout请按键1返回菜单或按键2退出程序:;cinnn;while(nn!=1 &nn!=2) cout请重新输入数字 1 或 2:;cinnn; if(nn=1) system(cls); caidan();辻(n n=2) cou t退出程序!n;void searchw()/查找物品信息void caidan();char namestr20;int rr;int i,j;coutn请输入你想查找的物品类型(1-普通电视机2-DVD 3-带DVD的普通电视机):; cinrr;while(rr!=1 &rr!=2&rr!=3)coutn请重新输入数字 1 或 2 或 3:;cinrr;if(rr=1)cou tn请输入你要查找的普通电视机名称:;cinnamestr; for(i=0;ik;i+)if(strcmp(namestr,t1i.name)=0)cou tn普通电视机的名称:tli.namen普通电视机的出厂日 期:tli.year7 tli.mon th/tli.dayn普通电视机的单价:tli.priceln普通电视机的数 量:tli .numberendl;break;if(i=k) cou tn对不起,没有你所要的普通电视机的相关信息!n;if(rr=2)coutn请输入你要查找的DVD名称:; cinnamestr;for(i=0;ik1;i+)if(strcmp(namestr,d1i.name)=0)coutnDVD 的 名 称 :d1i.namenDVD 的 出 厂 日 期:dli.year7dli.mon th/d1i.daynDVD 的 单 价 :d1i.price2nDVD 的 数 量:dli.numberendl;break;if(i=k1) coutn对不起,没有你所要的DVD的相关信息!n; if(rr=3)coutn请输入你要查找的带DVD的普通电视机的名称:; cinnamestr;for(i=0;ik2;i+)if(strcmp(namestr,td1i.name)=0)coutn带DVD的普通电视机的名称:tdli.namen带DVD的普通电视机的出厂 日期:tdli.year7 tdli.mon th/tdli.dayn带DVD 的普通电视机的单价:tdli.pricen带DVD 的普通 电视机的数量:tdli.numberendl;break;if(i=k2) coutn对不起,没有你所要的带DVD的普通电视机的相关信息!n; coutn请输入数字键1返回菜单或数字键2退出程序:; cinj;while(j!=1&j!=2)coutn请重新输入数字1或2:;cinj;if(j=1) system(cls);caidan();if(j=2) cou tn 退出程序!;void selec tw()/删除物品信息void caidan();char namestr20;int rr,i,r1,i1(-1),i2(-1),i3(-1);coutn请输入你要删除的物品信息(1-普通电视机2-DVD 3-带DVD的普通电视机):; cinrr;while(rr!=1 &rr!=2&rr!=3)coutn请重新输入数字 1 或 2 或 3:;cinrr;if(rr=1)cou tn请输入你想删除的普通电视机名称:;cinnamestr;for(i=0;ik;i+)if(strcmp(namestr,t1i.name)=0) i1=i;if(rr=2)coutn请输入你想删除的DVD名称:;cinnamestr;for(i=0;ikl;i+)if(strcmp(namestr ,dli.name)=0) i2=i;if(rr=3)coutn请输入你想删除的带DVD的普通电视机的名称:; cinnamestr;for(i=0;ik2;i+) if(strcmp(namestr,td1i.name)=0) i3=i;cou t想保存删除后的信息吗?(1-是2-否):; cinr1;while(rl!=l&rl!=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普通电视机的名称:t1i.namen普通电视机的出厂日 期:t1i.year7 t1i.mon th/t1i.dayn普通电视机的单价:t1i.price1n普通电视机的数 量:t1i .numberendl;for(i=0;ik1;i+)if(i=i2) continue;elseofilenDVD 的 名 称 :d1i.namenDVD 的 出 厂 日 期:d1i.year7d1i.mon th/d1i.daynDVD 的 单 价 :d1i.price2nDVD 的 数 量:d1i.numberendl;for(i=0;ik2;i+)if(i=i3) continue;elseofilen带DVD的普通电视机的名称:td1i.namen带DVD的普通电视机的出厂 日期:td1i.year7 td1i.mon th/td1i.dayn带DVD 的普通电视机的单价:td1i.pricen带DVD 的普通 电视机的数量:td1i.numberendl;ofile.close();coutn物品信息已保存!n;cout按键1返回菜单,2退出程序:;cinr1;while(r1!=1 &r1!=2)cout请重新输入数字 1 或 2:;cinr1;if(r1=1) system(cls); caidan();if(r1=2) cou t退出程序!n;void savew()/保存物品信息void caidan();ofstream ofile(wiring.txt,ios_base:out);int i,rr;for(i=0;irr;while(rr!=1 &rr!=2) coutn请重新输入数字 1 或 2:;cinrr; if(rr=1)sys tem(cls);caidan();/清屏并返回菜单elsecou tn 退出程序!;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 机械电气


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

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


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