公司库存管理系统_第1页
公司库存管理系统_第2页
公司库存管理系统_第3页
公司库存管理系统_第4页
公司库存管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖工c+课程设计课 程 设 计 报 告课程名称 面向对象程序设计 课题名称 公司库存管理系统 专 业 班 级 学 号 姓 名 指导教师 年 月 日湖南工程学院课 程 设 计 任 务 书课程名称 面向对象程序设计 课 题 公司库存管理系统 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 年 月 日任务完成日期 年 月 日目录1.系统需求分析32.总体设计43.详细设计44.系统调试65.结果分析66.总结10附录111附录2121.系统需求分析(给出你所设计题目拟满足的用户需求,给出系统设计目标,系统拟实现的功能。) 本产品主要针对TV、DVD以及带DVD的TV(下面简称DVDTV

2、)生产或销售部门的库存进行简单的管理。 它能够对该部门的所有库存的产品按照品名进行显示、查找、入库和出库、保存。2.总体设计(包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。)从系统的需求中我们可以看到:该系统要对产品进行显示、查找、入库、出库和保存功能。这就意味着这个系统需要一个show函数(通过cout将数据显示在屏幕上)来实现显示功能,而其他各个功能需要不同的模块来实现,也就意味着这个系统需要五个不同的功能模块。系统功能模块图: 图2.1 系统功能模块3.详细设计(类层次图;各功能模块实现等) 类层次图: 派生 派生 图3.1 类层次关系各功能模块的实现:显示功能是同过各类自

3、带有的show函数形如“cout<<”<<<<endl”的一竖排c+输出流把TV,DVD,DVDTV的主要数据打印在计算机的屏幕上。查找是分两种情况:按入库编号按品牌按入库编号是输入一个编号,让它与库存中产品进行比对如果有相同则将编号相同的产品输出到屏幕上,如果无相同就在屏幕上显示“无货或输错”。按品牌查找是输入一个品牌,通过strcmp将两个字符串进行比较,如果相同则显示出这个品牌的所有产品以及它们的数据。入库其实是一个输入功能:它主要是通过“cin>>”功能依次将产品的各项数据输入计算机。出库是一个删除功能,由于水平有限,我采用的是通过用后一

4、个覆盖前一个数据的方法,并将计数减一,使之能够在功能上达到删除。保存是建一个文件,把入库时输入的数据保存在一个文件内,是系统再次打开时数据不用重新输入。4.系统调试(调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整)由于本次设计用到了类,而类中有受保护的对像和私有对象,他们都不可以在类外使用。于是使得下边一些数据不能用。最后我只能将数据全改成公有数据。5.结果分析(总结自己独到的设计特点和不足之处。)先来看一下程序的运行截图:图5.1 输入图5.2 显示图5.3 查找 图5.4 保存界面图5.5 保存效果如上的一系列截图可以看出这个系统的特色是能够很好的把系统的需求完美的表

5、现出来。而不足之处如详细设计所说的那样只是通过用后一个覆盖前一个的方法,它只能在屏幕上体现,而不能在文件中表现出来。如下图: 图5.6 删除前的文件 图5.7 删除界面 图5.8 删除后的文件(红圈内的变化)6.总结在做c+ 的设计前,我以为不会难做,就像去年做c语言一样,做完设计,然后两下子就将设计报告做完.直到答辩完设计时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅. 在做设计前,一定要将课本上的知识吃透,因为这是做设计的基础,否则,在老师讲解时就会听不懂,这将使你在做设计时的难度加大,浪费做设计的宝贵时间.在做设计时才去摸索,这将使你极大地浪费时间,使你事倍功半.做设

6、计时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,设计后,还要复习,思考,这样,你的印象 才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这样你就答辩通不过。老师在答辩过程中还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在以后工作中的应用是那么的广泛. 通过这次c+的设计,使我学到了不少实用c+的知识,更重要的是,做设计的过程,思考问题的方法,这与做其他的设计是通用的,真正使我们受益匪浅.附录1计算机科学与技术系课程设计评分表课程名称: 面向对象程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述

7、与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: 附录2源码#include<iostream>using namespace std;class televisionpublic:int size;char type10;int charge1;int weight1;char brank110;int number1;television(int s=0,char t=" ",int c1=0,int w1=0,char b1=" ",int n1=0):size(s),charge1(c1),weight1(w1),num

8、ber1(n1) strcpy(type,t);strcpy(brank1,b1); void show() const cout<<"TV尺寸:"<<size<<endl; cout<<"TV类型:"<<type<<endl;cout<<"售价:"<<charge1<<endl;cout<<"重量:"<<weight1<<endl;cout<<"TV

9、品牌:"<<brank1<<endl;cout<<"入库编号:"<<number1<<endl;class DVDpublic: char guige10; int weight2; int charge2;char brank210;int number2;DVD(char g=" ",int w2=0,int c2=0,char b2=" ",int n2=0):weight2(w2),charge2(c2),number2(n2) strcpy(guige,g

10、); strcpy(brank2,b2); void show() const cout<<"DVD规格:"<<guige<<endl;cout<<"重量:"<<weight2<<endl;cout<<"售价:"<<charge2<<endl;cout<<"DVD品牌:"<<brank2<<endl;cout<<"入库编号:"<<

11、number2<<endl;class DVDTV:public television,public DVDpublic: int weight3; int charge3; int number3;DVDTV(int s=0,char t=" ",char b1=" ",char g=" ",char b2=" ",int w3=0,int c3=0,int n3=0):weight3(w3),charge3(c3),number3(n3)size=s,strcpy(type,t);strcpy(br

12、ank1,b1);strcpy(guige,g); strcpy(brank2,b2); void show() const cout<<"尺寸:"<<size<<endl; cout<<"类型:"<<type<<endl;cout<<"TV品牌:"<<brank1<<endl; cout<<"规格:"<<guige<<endl; cout<<"DVD

13、品牌:"<<brank2<<endl; cout<<"重量:"<<weight3<<endl; cout<<"售价:"<<charge3<<endl; cout<<"入库编号:"<<number3<<endl; ;int main () static int k=0; static int l=0; static int m=0; int i;class television a10;class

14、 DVD b10;class DVDTV c10;FILE *q1; q1=fopen("新建1.txt","r+"); if(q1=NULL) q1=fopen("新建1.txt","w+"); rewind(q1); fscanf(q1,"%d",&k);for(i=0;i<k;i+)fscanf(q1,"%d %s %d %d %s %d ",&ai.size,ai.type,&ai.charge1,&ai.weight1,ai.b

15、rank1,&ai.number1); FILE *q2; q2=fopen("新建2.txt","r+"); if(q2=NULL) q2=fopen("新建2.txt","w+"); rewind(q2); fscanf(q2,"%d",&l);for(i=0;i<l;i+)fscanf(q2,"%s %d %d %s %d ",bi.guige,&bi.weight2,&bi.charge2,bi.brank2,&bi.nu

16、mber2);FILE *q3; q3=fopen("新建3.txt","r+"); if(q3=NULL) q3=fopen("新建3.txt","w+"); rewind(q3); fscanf(q3,"%d",&m);for(i=0;i<m;i+) fscanf(q3,"%d %s %s %s %s %d %d %d ",&ci.size,ci.type,ci.brank1,ci.guige,ci.brank2,&ci.weight3,&a

17、mp;ci.charge3,&ci.number3);while(1) cout<<"1.入库"<<endl;cout<<"2.显示"<<endl; cout<<"3.查找"<<endl;cout<<"4.保存"<<endl; cout<<"5.出库"<<endl;cout<<"6.结束该程序"<<endl;cout<&

18、lt;"请选择: " int x; cin>>x;if(x=1) /输入 while(1)int n; cout<<"1.请输入TV的信息"<<endl; cout<<"2.请输入DVD的信息"<<endl; cout<<"3.请输入DVDTV的信息"<<endl;cout<<"4.跳出输入循环"<<endl;cout<<"请选择: " cin>>

19、;n; if(n=1) char b; cout<<"请输入电视机的信息:"<<endl; for(i=k;i<10;i+) k+; cout<<"尺寸"<<endl; cin>>ai.size; cout<<"类型"<<endl; cin>>ai.type; cout<<"售价"<<endl; cin>>ai.charge1; cout<<"重量"

20、;<<endl; cin>>ai.weight1; cout<<"品牌"<<endl; cin>>ai.brank1; cout<<"入库编号"<<endl; cin>>ai.number1; cout<<"是否继续输入(y/n): " cin>>b; if(b!='y'&&b!='Y') break; else if(n=2) char h; cout<<

21、"请输入DVD的信息:"<<endl; for(i=l;i<10;i+) l+; cout<<"规格"<<endl; cin>>bi.guige; cout<<"重量"<<endl;cin>>bi.weight2; cout<<"售价"<<endl;cin>>bi.charge2; cout<<"品牌"<<endl;cin>>bi.br

22、ank2; cout<<"入库编号"<<endl;cin>>bi.number2; cout<<"是否继续输入(y/n):" cin>>h; if(h!='y'&&h!='Y') break; else if(n=3) char s; cout<<"请输入DVD的信息:"<<endl; for(i=m;i<10;i+) m+; cout<<"尺寸"<<en

23、dl; cin>>ci.size; cout<<"类型"<<endl; cin>>ci.type; cout<<"电视机品牌"<<endl; cin>>ci.brank1; cout<<"规格"<<endl; cin>>ci.guige; cout<<"DVD品牌"<<endl; cin>>ci.brank2; cout<<"重量"

24、;<<endl; cin>>ci.weight3; cout<<"售价"<<endl; cin>>ci.charge3; cout<<"入库编号"<<endl; cin>>ci.number3; cout<<"是否继续输入(y/n):" cin>>s; if(s!='y'&&s!='Y') break; else if (n=4) break;else cout<

25、<"n输入出错"<<endl;else if(x=2) /显示 int f; cout<<"1.显示电视的信息"<<endl; cout<<"2.显示DVD的信息"<<endl; cout<<"3.显示DVDTV的信息"<<endl;cout<<"请选择: " cin>>f; if(f=1) cout<<"k="<<k<<end

26、l; for(i=0;i<k;i+) cout<<" television:"<<i+1<<endl; ai.show(); else if(f=2) cout<<"l="<<l<<endl; for(i=0;i<l;i+) cout<<" DVD: "<<i+1<<endl; bi.show(); else if(f=3) cout<<"m="<<m<<end

27、l; for(i=0;i<m;i+) cout<<" DVDTV "<<i+1<<endl; ci.show(); else cout<<"f输入有错"<<endl;else if(x=3) /查找 int o;cout<<"1.按入库编号查找"<<endl;cout<<"2.按货物的品牌查找"<<endl;cout<<"请选择:"cin>>o;if(o=1)

28、 int j; int p=1; cout<<"请输入要查找货物的入库编号: " cin>>j; for(i=0;i<k;i+) if(j=ai.number1) cout<<"该库存货物为电视机"<<endl; ai.show(); elsep=0; for(i=0;i<l;i+) if (j=bi.number2) cout<<"该库存货物为DVD"<<endl; bi.show(); elsep=0; for(i=0;i<m;i+) if

29、(j=ci.number3) cout<<"该库存货物为DVDTV"<<endl; ci.show(); else p=0; if (p=0) cout<<"没有该号货物或输入有误"<<endl;else if(o=2) char j10; int g=1; cout<<"请输入要查找货物的品牌: " cin>>j; for(i=0;i<k;i+) if(strcmp(j,ai.brank1)=0) cout<<"该库存货物为电视机&q

30、uot;<<endl; ai.show(); elseg=0; for(i=0;i<l;i+) if (strcmp(j,bi.brank2)=0) cout<<"该库存货物为DVD"<<endl; bi.show(); elseg=0; for(i=0;i<m;i+) if (strcmp(j,ci.brank1)=0) cout<<"该库存货物为DVDTV"<<endl; ci.show(); else g=0; if (g=0) cout<<endl; cout&l

31、t;<"没有该品牌的货物后输入有误"<<endl; else cout<<"o的输入有错"<<endl;else if (x=4) /保存 cout<<"1.保存电视机的相关内容"<<endl; cout<<"2.保存DVD的相关内容"<<endl; cout<<"3.保存DVDTV的相关内容"<<endl; cout<<"请选择: " int z;

32、cin>>z; if(z=1) rewind(q1);fprintf(q1,"%dn",k); for(i=0;i<k;i+) fprintf(q1,"%d %s %d %d %s %d ",ai.size,ai.type,ai.charge1,ai.weight1,ai.brank1,ai.number1); fclose(q1); cout<<endl; cout<<"television的相关内容保存成功!"<<endl; else if(z=2) rewind(q2); f

33、printf(q2,"%dn",l); for(i=0;i<l;i+) fprintf(q2,"%s %d %d %s %d ",bi.guige,bi.weight2,bi.charge2,bi.brank2,bi.number2); fclose(q2); cout<<endl; cout<<"DVD的相关内容保存成功!"<<endl; else if(z=3) rewind(q3); fprintf(q3,"%dn",m); for(i=0;i<m;i+) fp

34、rintf(q3,"%d %s %s %s %s %d %d %d ",ci.size,ci.type,ci.brank1,ci.guige,ci.brank2,ci.weight3,ci.charge3,ci.number3); fclose(q3); cout<<endl; cout<<"DVDTV的相关内容保存成功!"<<endl; cout<<endl; else if (x=5) / 删除出库 int s; int t=1; cout<<"请输入要出库货物的入库编号: &qu

35、ot; cin>>s;for(i=0;i<k;i+) if(s=ai.number1) cout<<"该出库的货物为电视机且为以下性质"<<endl; ai.show(); cout<<endl; cout<<"确定是该货物?(y或n) " int r; r=i; char v; cin>>v; if(v='y') for(i=r;i<k-1;i+) strcpy(ai.type,ai+1.type); strcpy(ai.brank1,ai+1.bran

36、k1); ai.size=ai+1.size; ai.charge1=ai+1.charge1; ai.weight1=ai+1.weight1; ai.number1=ai+1.number1; k-; cout<<endl; cout<<"已出库"<<endl; cout<<endl; rewind(q1); fprintf(q1,"%dn",k); for(i=0;i<k-1;i+) fprintf(q1,"%d %s %d %d %s %d",ai.size,ai.type

37、,ai.charge1,ai.weight1,ai.brank1,ai.number1); fclose(q1); cout<<"电视库存已调整"<<endl; cout<<endl; else t=0; for(i=0;i<l;i+) if(s=bi.number2) cout<<"该库存货物为电视机"<<endl; bi.show(); cout<<endl; cout<<"确定是该货物? " int e; e=i; char v; cin>>v; if(v='y') for(i=e;i<l-1;i+) strcpy(bi.guige,bi+1.guige); strcpy(bi.brank2,bi+1.brank2); bi.charge2=bi+1.charge2; bi.weight2=bi+1.weight2; bi.number2=bi+1.number2; l-;cout<<endl; cout<<"已出库"<<endl; c

温馨提示

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

评论

0/150

提交评论