




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息科学与技术学院程序设计基础课程设计报告题目名称: 某公司的库存管理系统 学生姓名: 王 祺 学 号: 2011508015 专业班级:计算机科学与技术 2011级 1班指导教师: 高 攀 2012 年 6月 27 日 目录1 课程设计题目与要求- 3 -1.1课程设计题目:- 3 -1.2课程设计要求:- 3 -1.3 其他要求:12 总体设计23详细设计43.1类设计43.2主模块设计44 运行结果65 课程设计总结81 课程设计题目与要求1.1课程设计题目:某公司的库存管理系统1.2课程设计要求:1、问题描述(功能要求): 某公司现有以下设备:普通电视机、dvd、带dvd的电视机,带dvd的电视机的售价为普通电视机和dvd单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 1.3 其他要求: (1)只能使用c/c+语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好) (3)学生可自动增加新功能模块 1 石河子大学课程设计报告2 总体设计在公司库存管理系统中,物品信息主要为:物品名称,颜色,物品生产厂家,生产厂家地址,物品型号,物品生产日期,物品的单价和数量。 公司库存管理系统中系统需要我们实现六个功能:1、物品录用2、显示物品功能;3、添加物品功能;4、查找物品功能;5、删除物品功能;6、保存物品功能。在物品录用功能中用户可以根据自己的需要输入自己想输入的物品信息(名称、颜色、生产厂家、厂家地址、型号、生产日期、数量),然后将其保存,一开始系统会提示输入自己想输入的物品型号,然后再输入相关型号的物品信息,输入完之后会再次提示用户是否继续输入,然后再根据提示进行相关操作。在显示物品功能中,当用户选择此功能时系统会打开保存信息的文件然后将用户所有保存的信息全部显示出来。在添加物品功能中,用户可以根据系统的提示输入相关物品的信息,并将其保存。在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存中的相关物品中查找,如果有此物品则会显示此物品的所有信息,如果没有则会显示无此物品信息。在删除物品功能中,用户根据系统的提示输入自己想删除的物品名称,然后将其删除。在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。公司库存管理系统中功能模块图:1、物品信息录用公司库存管理系统2、添加物品信息3、显示物品信息4、查找物品信息5、删除物品信息6、保存物品信息输入普通电视机的信息输入dvd的信息输入带dvd的普通电视机的信息添加普通电视机的信息添加dvd的信息添加带dvd的普通电视机的信息输入名称查找普通电视机的信息输入名称查找dvd的信息输入名称查找带dvd的普通电视机的信息输入名称删除普通电视机的信息输入名称删除dvd的信息输入名称删除带dvd的普通电视机的信息图1 公司库存管理系统中功能模块图 3详细设计3.1类设计公司库存管理系统中四个类的类层次图为:wiring类tv类dvd类tv_dvd类图2 公司库存管理系统中中四个类的类层次图3.2主模块设计公司库存管理系统中各功能模块的实现: 1、物品信息录用菜单2、添加物品信息3、显示物品信息4、查找物品信息5、删除物品信息6、保存物品信息图3 公司库存管理系统中菜单函数的功能图 1、物品信息录用功能模块: 1、物品信息录用功能输入普通电视机的相关信息输入dvd的相关信息输入带dvd的普通电视机的相关信息 图4 物品信息录用功能的功能图 3、添加物品信息功能的模块图添加物品信息添加普通电视机的相关信息添加dvd的相关信息添加带dvd的普通电视机的相关信息 图5 添加物品信息功能的功能图 4、查找物品信息功能的模块图输入物品名称查找普通电视机的相关信息查找物品信息输入物品名称查找dvd的相关信息输入物品名称查找带dvd的普通电视机的相关信息 图6 查找物品信息功能的功能图 5、删除物品信息功能的模块图删除物品信息输入物品名称删除dvd的相关信息输入物品名称删除普通电视机的相关信息输入物品名称删除带dvd的普通电视机的相关信息 图7 删除物品信息功能的功能图公司库存管理系统中四个类的uml图为: wiring+name10:char+color10:char+address50:char+factory50:char+type20:char+year:int+month:int+day:int+numbe:int+wiring()+wiring() pay():void虚基类wiring派生类dvd tv+price1:float+tv()+set1():void+pay():void dvd+price2:float+dvd()+set2():void+pay():void派生类tvtv_dvd+price:float+tv_dvd()+set3():void+pay():void派生类tv_dvd 图8 公司库存管理系统中类派生关系的uml图4 运行结果(1).程序运行主界面(2)商品录入界面(3)商品显示界面(4)查找商品界面(5)删除商品界面(6)保存商品界面5 课程设计总结经过这两周的课程设计周,我发现自己还存在许多不足的地方,我发觉自己的c+语言程序设计编程基础不是很牢固,我在暑假期间还会多多学习复习一下c+语言设计,我觉得这门语言程序设计还是挺好的,我在暑假期间还会多用这门程序设计语言设计一些程序,熟练地使用这门设计语言,我也会试着使用多文件进行程序编译,这样方便简单一些,我觉得老师说得挺对的:不用多文件编译就不是一个计算机编程人员,这一年的程序设计白学了。我觉得这句话说得没错,况且我也觉得不用多文件编译真的不怎么方便,有错误时也不怎么好修改,在暑假时我会多学习学习一些知识,充实自己,我觉得自己不能落后于别人,应该勤奋努力,掌握一些专业知识,为以后的深造和工作打好基础。参考文献:1郑莉 等编著c+语言程序设计(第三版)北京:清华大学出版社2郑莉 等编著c+语言程序设计(第三版)学生用书北京:清华大学出版社3李春葆 等编著c+程序设计学习与上机实验指导 北京:清华大学出版社4范辉 等编著visual c+6.0程序设计简明教程 高等教育出版社附录:源程序清单#include#include#include#includeusing namespace std;class wiringpublic:char name10;/物品名称char color10;/物品颜色char address50;/厂商地址char factory50;/生产厂商char type20;/物品型号int year,month,day;/出厂日期int number;/物品数量wiring() /构造函数wiring() /析构函数virtual void pay() /设置价格函数;class tv:virtual public wiring public:tv() void set1(char *n,char *c,char *a,char *f,char *t,int y,int m,int d,int nn)strcpy(name,n);strcpy(color,c);strcpy(address,a);strcpy(factory,f);strcpy(type,t);year=y;month=m;day=d;number=nn;void pay() price1=3000; /普通电视机售价float price1;class dvd:virtual public wiringpublic:dvd() void set2(char *n,char *c,char *a,char *f,char *t,int y,int m,int d,int nn)strcpy(name,n);strcpy(color,c);strcpy(address,a);strcpy(factory,f);strcpy(type,t);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,char *c,char *a,char *f,char *t,int y,int m,int d,int nn)strcpy(name,n);strcpy(color,c);strcpy(address,a);strcpy(factory,f);strcpy(type,t);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 employw();/信息录用void addw();/添加物品信息void shown();/显示物品信息void selectw();/删除物品信息void searchw();/查找物品信息void savew();/保存物品信息int a1;system(color 0e);couttt*n;couttt* *n;couttt* 公司库存管理系统 *n;couttt* *n;couttt* *n;couttt*n;coutnnn;couttt 功能菜单 nn;coutt(1) 信息录用 n;coutt(2) 添加物品信息 n;coutt(3) 显示物品信息 n;coutt(4) 查找物品信息 n;coutt(5) 删除物品信息 n;coutt(6) 保存物品信息 n;coutt(7) 退出 n;couta1;while(a1!=1&a1!=2&a1!=3&a1!=4&a1!=5&a1!=6&a1!=7) couta1;if(a1=1) employw();if(a1=2) addw();if(a1=3) shown();if(a1=4) searchw();if(a1=5) selectw();if(a1=6) savew();if(a1=7) coutn退出程序!n;void employw()char a10,b10,c50,d50,e20;int m,n,h,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn请输入普通电视机的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coute;coutmnh;coutn1;t1v.set1(a,b,c,d,e,m,n,h,n1);t1v.pay();k+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) system(cls);coutn请继续输入普通电视机的相关信息!n; else break;if(i=2)coutn请输入dvd的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coute;coutmnh;coutn1;d1v.set2(a,b,c,d,e,m,n,h,n1);d1v.pay();k1+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) system(cls);coutn请继续输入dvd的相关信息!n; else break;if(i=3)coutn请输入带dvd的普通电视机的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coute;coutmnh;coutn1;td1v.set3(a,b,c,d,e,m,n,h,n1);td1v.pay();k2+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) system(cls);coutn请继续输入带dvd的普通电视机的相关信息!n;if(i1=2) break;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) system(cls);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普通电视机的名称:n普通电视机的颜色:t1v.colorn普通电视机的出厂地址:t1v.addressn普通电视机的出厂的厂商:t1v.factoryn普通电视机的型号:t1v.typen普通电视机的出厂日期:t1v.year/t1v.month/t1v.dayn普通电视机的单价:t1v.price1n普通电视机的数量:t1v.numberendl;for(v=0;vk1;v+)ofilendvd的名称:ndvd的颜色:d1v.colorndvd的出厂地址:d1v.addressndvd的出厂的厂商:d1v.factoryndvd的型号:d1v.typendvd的出厂日期:d1v.year/d1v.month/d1v.dayndvd的单价:d1v.price2ndvd的数量:d1v.numberendl;for(v=0;vk2;v+)ofilen带dvd的普通电视机的名称:n带dvd的普通电视机的颜色:td1v.colorn带dvd的普通电视机的出厂地址:td1v.addressn带dvd的普通电视机的出厂的厂商:td1v.factoryn带dvd的普通电视机的型号:td1v.typen带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) coutn退出程序!;void addw()/添加物品信息函数void caidan();/菜单函数char a10,b10,c50,d50,e20;int m,n,h,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn请输入普通电视机的相关信息!n;for(v=k;v20;v+)couta;coutb;coutc;coutd;coute;coutmnh;coutn1;t1v.set1(a,b,c,d,e,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请输入dvd的相关信息!n;for(v=k1;v20;v+)couta;coutb;coutc;coutd;coute;coutmnh;coutn1;d1v.set2(a,b,c,d,e,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;coutb;coutc;coutd;coute;coutmnh;coutn1;td1v.set3(a,b,c,d,e,m,n,h,n1);td1v.pay();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普通电视机的名称:n普通电视机的颜色:t1v.colorn普通电视机的出厂地址:t1v.addressn普通电视机的出厂的厂商:t1v.factoryn普通电视机的型号:t1v.typen普通电视机的出厂日期:t1v.year/t1v.month/t1v.dayn普通电视机的单价:t1v.price1n普通电视机的数量:t1v.numberendl;for(v=0;vk1;v+)ofilendvd的名称:ndvd的颜色:d1v.colorndvd的出厂地址:d1v.addressndvd的出厂的厂商:d1v.factorydvd的型号:d1v.typendvd的出厂日期:d1v.year/d1v.month/d1v.dayndvd的单价:d1v.price2ndvd的数量:d1v.numberendl;for(v=0;vk2;v+)ofilen带dvd的普通电视机的名称:n带dvd的普通电视机的颜色:td1v.colorn带dvd的普通电视机的出厂地址:td1v.addressn带dvd的普通电视机的出厂的厂商:td1v.factoryn带dvd的普通电视机的型号:td1v.typen带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) 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) 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,)=0)coutn普通电视机的名称:n普通电视机的颜色:t1i.colorn普通电视机的出厂地址:t1i.addressn普通电视机的出厂的厂商:t1i.factoryn普通电视机的型号:t1i.typen普通电视机的出厂日期: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,)=0)coutndvd的名称:ndvd的颜色:d1i.colorndvd的出厂地址:d1i.addressndvd的出厂的厂商:d1i.factoryndvd的型号:d1i.typendvd的出厂日期:d1i.year/d1i.month/d1i.dayndvd的单价: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.colorn带dvd的普通电视机的出厂地址:td1i.addressn带dvd的普通电视机的出厂的厂商:td1i.factoryn带dvd的普通电视机的型号:td1i.typen带dvd的普通电视机的出厂日期:td1i.year/td1i.month/td1i.dayn带dvd的普通电视机的单价:td1i.pricen带dvd的普通电视机的数量:td1i.numberendl;break;if(i=k2) coutn对不起,没有你所要的带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)coutnamestr;for(i=0;ik;i+) if(strcmp(namestr,)=0) i1=i;if(rr=2)coutnamestr;for(i=0;ik1;i+) if(strcmp(namestr,)=0) i2=i;if(rr=3)coutnamestr;for(i=0;ik2;i+) if(strcmp(namestr,)=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普通电视机的名称:n普通电视机的颜色:t1i.colorn普通电视机的出厂地址:t1i.addressn普通电视机的出厂的厂商:t1i.factoryn普通电视机的型号:t1i.typen普通电视机的出厂日期:t1i.year/t1i.month/t1i.dayn普通电视机的单价:t1i.price1n普通电视机的数量:t1i.numberendl;for(i=0;ik1;i+)if(i=i2) continue;elseofilendvd的名称:ndvd的颜色:d1i.colorndvd的出厂地址:d1i.addressndvd的出厂的厂商:d1i.factoryndvd的型号:d1i.typendvd的出厂日期:d1i.year/d1i.month/d1i.dayndvd的单价:d1i.price2ndvd的数量:d1i.numberendl;for(i=0;ik2;i+)if(i=i3) continue;elseofilen带dvd的普通电视机的名称:n带dvd的普通电视机的颜色:t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省景宁畲族自治县2025年上半年事业单位公开遴选试题含答案分析
- 农业种植:科学与艺术
- 闽教版英语五年级下册unit4
- 河北省深泽县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省曲阳县2025年上半年公开招聘村务工作者试题含答案分析
- 河北省临漳县2025年上半年公开招聘城市协管员试题含答案分析
- 2025版认缴制下旅游文化股份转让合作协议
- 2025版城市综合体日常保洁与商业环境维护合同
- 2025年度健身房店铺转让与健身设备租赁合同
- 2025年度酒店行业客户售后服务协议范本
- 图形动画毕业设计
- 2025年建筑工程-安全员C证-安全员(C证·上海)历年参考题库典型考点含答案解析
- 光伏项目施工组织设计方案
- 2025政府采购评审专家入库题库与答案
- 2025至2030医学混合成像系统行业产业运行态势及投资规划深度研究报告
- 2025年内蒙古交通集团考试笔试试题(含答案)
- 低压安全隐患排查
- 学堂在线 高技术与现代局部战争 章节测试答案
- 水费收缴使用管理办法
- 《研学旅行指导师实务》课件-第1章 研学旅行指导师职业基础
- 企业合规教学课件
评论
0/150
提交评论