c++课程设计.docx
- 文档编号:25518564
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:37
- 大小:314.35KB
c++课程设计.docx
《c++课程设计.docx》由会员分享,可在线阅读,更多相关《c++课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
c++课程设计
信息科学与技术学院
程序设计基础课程设计报告
题目名称:
某公司的库存管理系统
学生姓名:
王祺
学号:
2011508015
专业班级:
计算机科学与技术2011级1班
指导教师:
高攀
2012年6月27日
目录
1课程设计题目与要求-3-
1.1课程设计题目:
-3-
1.2课程设计要求:
-3-
1.3其他要求:
1
2总体设计2
3详细设计4
3.1类设计4
3.2主模块设计4
4运行结果6
5课程设计总结8
1课程设计题目与要求
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)学生可自动增加新功能模块
2总体设计
在公司库存管理系统中,物品信息主要为:
物品名称,颜色,物品生产厂家,生产厂家地址,物品型号,物品生产日期,物品的单价和数量。
公司库存管理系统中系统需要我们实现六个功能:
1、物品录用2、显示物品功能;3、添加物品功能;4、查找物品功能;5、删除物品功能;6、保存物品功能。
在物品录用功能中用户可以根据自己的需要输入自己想输入的物品信息(名称、颜色、生产厂家、厂家地址、型号、生产日期、数量),然后将其保存,一开始系统会提示输入自己想输入的物品型号,然后再输入相关型号的物品信息,输入完之后会再次提示用户是否继续输入,然后再根据提示进行相关操作。
在显示物品功能中,当用户选择此功能时系统会打开保存信息的文件然后将用户所有保存的信息全部显示出来。
在添加物品功能中,用户可以根据系统的提示输入相关物品的信息,并将其保存。
在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存中的相关物品中查找,如果有此物品则会显示此物品的所有信息,如果没有则会显示无此物品信息。
在删除物品功能中,用户根据系统的提示输入自己想删除的物品名称,然后将其删除。
在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。
公司库存管理系统中功能模块图:
图1公司库存管理系统中功能模块图
3详细设计
3.1类设计
公司库存管理系统中四个类的类层次图为:
图2公司库存管理系统中中四个类的类层次图
3.2主模块设计
公司库存管理系统中各功能模块的实现:
图3公司库存管理系统中菜单函数的功能图
1、物品信息录用功能模块:
图4物品信息录用功能的功能图
3、添加物品信息功能的模块图
图5添加物品信息功能的功能图
4、查找物品信息功能的模块图
图6查找物品信息功能的功能图
5、删除物品信息功能的模块图
图7删除物品信息功能的功能图
公司库存管理系统中四个类的UML图为:
图8公司库存管理系统中类派生关系的UML图
4运行结果
(1).程序运行主界面
(2)商品录入界面
(3)商品显示界面
(4)查找商品界面
(5)删除商品界面
(6)保存商品界面
5课程设计总结
经过这两周的课程设计周,我发现自己还存在许多不足的地方,我发觉自己的C++语言程序设计编程基础不是很牢固,我在暑假期间还会多多学习复习一下C++语言设计,我觉得这门语言程序设计还是挺好的,我在暑假期间还会多用这门程序设计语言设计一些程序,熟练地使用这门设计语言,我也会试着使用多文件进行程序编译,这样方便简单一些,我觉得老师说得挺对的:
不用多文件编译就不是一个计算机编程人员,这一年的程序设计白学了。
我觉得这句话说得没错,况且我也觉得不用多文件编译真的不怎么方便,有错误时也不怎么好修改,在暑假时我会多学习学习一些知识,充实自己,我觉得自己不能落后于别人,应该勤奋努力,掌握一些专业知识,为以后的深造和工作打好基础。
参考文献:
[1].郑莉等编著《C++语言程序设计(第三版)》北京:
清华大学出版社
[2].郑莉等编著《C++语言程序设计(第三版)学生用书》北京:
清华大学出版社
[3].李春葆等编著《C++程序设计学习与上机实验指导》北京:
清华大学出版社
[4].范辉等编著《VisualC++6.0程序设计简明教程》高等教育出版社
附录:
源程序清单
#include
#include
#include
#include
usingnamespacestd;
classwiring
{public:
charname[10];//物品名称
charcolor[10];//物品颜色
charaddress[50];//厂商地址
charfactory[50];//生产厂商
chartype[20];//物品型号
intyear,month,day;//出厂日期
intnumber;//物品数量
wiring(){}//构造函数
~wiring(){}//析构函数
virtualvoidpay(){}//设置价格函数
};
classTV:
virtualpublicwiring
{public:
TV(){}
voidset1(char*n,char*c,char*a,char*f,char*t,inty,intm,intd,intnn)
{strcpy(name,n);
strcpy(color,c);
strcpy(address,a);
strcpy(factory,f);
strcpy(type,t);
year=y;
month=m;
day=d;
number=nn;
}
voidpay(){price1=3000;}//普通电视机售价
floatprice1;
};
classDVD:
virtualpublicwiring
{public:
DVD(){}
voidset2(char*n,char*c,char*a,char*f,char*t,inty,intm,intd,intnn)
{strcpy(name,n);
strcpy(color,c);
strcpy(address,a);
strcpy(factory,f);
strcpy(type,t);
year=y;
month=m;
day=d;
number=nn;
}
voidpay(){price2=2000;}//DVD售价
floatprice2;
};
classTV_DVD:
publicTV,publicDVD
{public:
TV_DVD(){}
voidset3(char*n,char*c,char*a,char*f,char*t,inty,intm,intd,intnn)
{strcpy(name,n);
strcpy(color,c);
strcpy(address,a);
strcpy(factory,f);
strcpy(type,t);
year=y;
month=m;
day=d;
number=nn;
}
voidpay(){price=(2000+3000)*80/100;}//带DVD的普通电视机售价
floatprice;
};
TVt1[20];DVDd1[20];TV_DVDtd1[20];
staticintk(0),k1(0),k2(0);
voidmain()//主函数
{voidcaidan();
caidan();
}
voidcaidan()
{voidemployw();//信息录用
voidaddw();//添加物品信息
voidshown();//显示物品信息
voidselectw();//删除物品信息
voidsearchw();//查找物品信息
voidsavew();//保存物品信息
inta1;
system("color0e");
cout<<"\t\t*****************************************\n";
cout<<"\t\t***** ******\n";
cout<<"\t\t*****公司库存管理系统 ******\n";
cout<<"\t\t***** ******\n";
cout<<"\t\t***********\n";
cout<<"\t\t*****************************************\n";
cout<<"\n\n\n";
cout<<"\t\t功能菜单\n\n";
cout<<"\t
(1)信息录用\n";
cout<<"\t
(2)添加物品信息\n";
cout<<"\t(3)显示物品信息\n";
cout<<"\t(4)查找物品信息\n";
cout<<"\t(5)删除物品信息\n";
cout<<"\t(6)保存物品信息\n";
cout<<"\t(7)退出\n";
cout<<"\n请输入1或2或3或4或5或6或7进行你所要执行地下一步动作:
\n";
cin>>a1;
while(a1!
=1&&a1!
=2&&a1!
=3&&a1!
=4&&a1!
=5&&a1!
=6&&a1!
=7){cout<<"\n请重新输入数字1或2或3或4或5或6或7:
";cin>>a1;}
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)cout<<"\n退出程序!
\n";
}
voidemployw()
{
chara[10],b[10],c[50],d[50],e[20];
intm,n,h,n1,rr,i1,v,i=9,r1;
cout<<"\n请输入数字键输入对应的物品信息(1-普通电视机2-DVD3-带DVD的普通电视机):
";
while(i!
=0)
{cin>>i;
if(i==1)
{cout<<"\n请输入普通电视机的相关信息!
\n";
for(v=0;v<20;v++)
{cout<<"物品名称:
";
cin>>a;
cout<<"\n物品颜色:
";
cin>>b;
cout<<"\n物品的生产厂商:
";
cin>>c;
cout<<"\n厂商地址:
";
cin>>d;
cout<<"\n物品型号:
";
cin>>e;
cout<<"\n物品出厂日期:
";
cin>>m>>n>>h;
cout<<"\n物品数量:
";
cin>>n1;
t1[v].set1(a,b,c,d,e,m,n,h,n1);
t1[v].pay();
k++;
cout<<"\n想继续输入普通电视机的相关信息吗?
(1-是2-否):
";
cin>>i1;
while(i1!
=1&&i1!
=2)
{cout<<"\n请重新输入数字1或2:
";
cin>>i1;
}
if(i1==1){system("cls");cout<<"\n请继续输入普通电视机的相关信息!
\n";}
elsebreak;
}
}
if(i==2)
{cout<<"\n请输入DVD的相关信息!
\n";
for(v=0;v<20;v++)
{cout<<"物品名称:
";
cin>>a;
cout<<"\n物品颜色:
";
cin>>b;
cout<<"\n物品的生产厂商:
";
cin>>c;
cout<<"\n厂商地址:
";
cin>>d;
cout<<"\n物品型号:
";
cin>>e;
cout<<"\n物品出厂日期:
";
cin>>m>>n>>h;
cout<<"\n物品数量:
";
cin>>n1;
d1[v].set2(a,b,c,d,e,m,n,h,n1);
d1[v].pay();
k1++;
cout<<"\n想继续输入DVD的相关信息吗?
(1-是2-否):
";
cin>>i1;
while(i1!
=1&&i1!
=2)
{cout<<"\n请重新输入数字1或2:
";
cin>>i1;
}
if(i1==1){system("cls");cout<<"\n请继续输入DVD的相关信息!
\n";}
elsebreak;
}
}
if(i==3)
{cout<<"\n请输入带DVD的普通电视机的相关信息!
\n";
for(v=0;v<20;v++)
{cout<<"物品名称:
";
cin>>a;
cout<<"\n物品颜色:
";
cin>>b;
cout<<"\n物品的生产厂商:
";
cin>>c;
cout<<"\n厂商地址:
";
cin>>d;
cout<<"\n物品型号:
";
cin>>e;
cout<<"\n物品出厂日期:
";
cin>>m>>n>>h;
cout<<"\n物品数量:
";
cin>>n1;
td1[v].set3(a,b,c,d,e,m,n,h,n1);
td1[v].pay();
k2++;
cout<<"\n想继续输入带DVD的普通电视机的相关信息吗?
(1-是2-否):
";
cin>>i1;
while(i1!
=1&&i1!
=2)
{cout<<"\n请重新输入数字1或2:
";
cin>>i1;
}
if(i1==1){system("cls");cout<<"\n请继续输入带DVD的普通电视机的相关信息!
\n";}
if(i1==2)break;
}
}
cout<<"\n想输入其他物品的相关信息吗?
(1-是2-否):
";
cin>>i1;
while(i1!
=1&&i1!
=2){cout<<"\n请重新输入数字1或2:
";cin>>i1;}
if(i1==1)
{system("cls");
cout<<"\n请输入数字输入相对应的物品信息(1-普通电视机2-DVD3-带DVD的普通电视机):
";
}
if(i1==2)break;
}
cout<<"想保存你所输入得数据吗?
(1-是2-否):
";
cin>>rr;
while(rr!
=1&&rr!
=2){cout<<"\n请重新输入数字1或2:
";cin>>rr;}
if(rr==1)
{ofstreamofile("wiring.txt",ios_base:
:
out);
for(v=0;v {ofile<<"\n普通电视机的名称: "< " < "< <<"\n普通电视机的出厂的厂商: "< " < "< <<"/"< "< "< } for(v=0;v {ofile<<"\nDVD的名称: "< " < "< <<"\nDVD的出厂的厂商: "< " < "< <<"/"< "< "< } for(v=0;v {ofile<<"\n带DVD的普通电视机的名称: "< " < "< <<"\n带DVD的普通电视机的出厂的厂商: "< " < "< <<"/"< "< "< } ofile.close(); cout<<"\n物品信息已储存! "; cout<<"\n按键1返回菜单: "; cin>>r1; while(r1! =1){cout<<"\n请重新输入数字1: ";cin>>r1;} if(r1==1){system("cls");caidan();} if(r1==2){cout<<"\n退出程序! ";} } if(rr==2) {cout<<"\n按键1返回菜单2退出程序: "; cin>>r1; while(r1! =1&&r1! =2){cout<<"\n请重新输入数字1或2: ";cin>>r1;} if(r1==1){system("cls");caidan();} if(r1==2){cout<<"\n退出程序! ";} } } voidaddw()//添加物品信息函数 {voidcaidan();//菜单函数 chara[10],b[10],c[50],d[50],e[20]; intm,n,h,n1,rr,i1,v,i=9,r1; cout<<"\n请输入数字键添加对应的物品信息(1-普通电视机2-DVD3-带DVD的普通电视机): "; while(i! =0) {cin>>i; if(i==1) {cout<<"\n请输入普通电视机的相关信息! \n"; for(v=k;v<20;v++) {cout<<"物品名称: "; cin>>a; cout<<"\n物品颜色: "; cin>>b; cout<<"\n物品的生产厂商: "; cin>>c; cout<<"\n厂商地址: "; cin>>d; cout<<"\n物品型号: "; cin>>e; cout<<"\n物品出厂日期: "; cin>>m>>n>>h; cout<<"\n物品数量: "; cin>>n1; t1[v].set1(a,b,c,d,e,m,n,h,n1); t1[v].pay(); k++; cout<<"\n想继续添加普通电视机的相关信息吗? (1-是2-否): "; cin>>i1; while(i1! =1&&i1! =2) {cout<<"\n请重新输入数字1或2: "; cin>>i1; } if(i1==1){cout<<"\n请继续输入普通电视机的相关信息! \n";} elsebreak; } } if(i==2) {cout<<"\n请输入DVD的相关信息! \n"; for(v=k1;v<20;v++) {cout<<"物品名称: "; cin>>a; cout<<"\n物品颜色: "; cin>>b; cout<<"\n物品的生产厂商: "; cin>>c; cout<<"\n厂商地址: "; cin>>d; cout<<"\n物品型号: "; cin>>e; cout<<"\n物品出厂日期: "; cin>>m>>n>>h; cout<<"\n物品数量: "; cin>>n1; d1[v].set2(a,b,c,d,e,m,n,h,n1); d1[v].pay(); k1++; cout<<"\n想继续添加DVD的相关信息吗? (1-是2-否): "; cin>>i1; while(i1! =1&&i1! =2) {cout<<"\n请重新输入数字1或2: "; cin>>i1; } if(i1==1){cout<<"\n请继续输入DVD的相关信息! \n";} elsebreak; } } if(i==3) {cout<<"\n请输入带DVD的普通电视机的相关信息! \n"; for(v=k2;v<20;v++) {cout<<"物品名称: "; cin>>a; cout<<"\n物品颜色: "; cin>>b; cout<<"\n物品的生产厂商: "; cin>>c; cout<<"\n厂商地址: "; cin>>d; cout<<"\n物品型号: "; cin>>e; cout<<"\n物品出厂日期: "; cin>>m>>n>>h; cout<<"\n物品数量: "; cin>>n1; td1[v].set3(a,b,c,d,e,m,n,h,n1); td1[v].pay(); k2++; cout<<"\n想继续添加带DVD的普通电视机的相关信息吗? (1-是2-否): "; cin>>i1; while(i1! =1&&i1! =2) {cout<<"\n请重新输入数字1或2: "; cin>>i1; } if(i1==1){cout<<"\n请继续输入带DVD的普通电视机的相关信息! \n";} if(i1==2)break; } } cout<<"\n想添加其他物品的相关信息吗? (1-是2-否): "; cin>>i1; while(i1! =1&&i1! =2){cout<<"\n请重新输入数字1或2: ";cin>>i1;} if(i1==1){cout<<"\n请输入数字输入相对应的物品信息(1-普通电视机2-DVD3-带DVD的普通电视机): ";} if(i1==2)break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计