仓库管理系统C课程设计报告.docx
《仓库管理系统C课程设计报告.docx》由会员分享,可在线阅读,更多相关《仓库管理系统C课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
仓库管理系统C课程设计报告
SANY标准化小组#QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
仓库管理系统C课程设计报告
《高级语言程序设计》
课程设计报告
设计题目图书管理系统
专业计算机科学与技术
班级
姓名
学号
2007年6月5日
1.设计目的…………………………………………………3
2.设计思想…………………………………………………3
3.类及对象设计……………………………………………4
4.程序源代码………………………………………………5
5.调试记录…………………………………………………16
6.总结………………………………………………………18
仓库管理系统
1.设计目的
通过实习进一步掌握所学的基本知识,学会解决实际问题的方法
2设计题目
1、问题描述(功能要求):
某公司现有以下设备:
普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)完成系统总结报告以及系统使用说明书。
2.设计思想
(1)设计classadmin管理库,实现对仓库信息的描叙;classshelf柜台类库实现建立电器资料;classele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;classmana函数类,实现对电器的入库,查找,出库等。
以下是函数功能表:
函数
功能
charfirst_face()
获取首页
voidshow_storage()
显示储存信息
voidin_storage()
电器入库
voidout_storage()
电器出库
voidselect_ele()
查询电器信息
voidselect_name()
按电器名查询
voidselect_price()
按电器价格查询
voidcall_s()
商品保存
(2)用类的成员函数对链表的数据进行操作,其功能如上表所列。
(3)设计菜单来实现功能设计
1、输入商品
2、商品查找
3、查询入库
4、商品出库
5、退出系统
3.设计类及对象
(1)本程序定义了四个类,定义如下:
classadmin
{
public:
admin();
private:
stringname;
};
classshelf
{
public:
shelf();
private:
stringstoreNo;//仓库编号
stringshelfNo;
adminwe;//货架号
};
classele
{
public:
ele();
private:
stringname;//商品名
doubleprice;//介格
shelfsh;//所属货架
longcount;//商品数量
};
classmana
{
public:
mana();
charfirst_face();//首页
voidshow_storage();//显示
voidin_storage();//入库
voidout_storage();//出库
voidselect_ele();//查询
voidselect_name();//按商品名称查询
voidselect_price();//按商品价格查询
voidcall_s();//商品保存
voidshow_storage1();
private:
adminabs;
eleaele;
shelfashelf;
};
ele:
:
ele():
sh()
{
name="xxx";//商品名
price=0.0;//介格
count=0;//商品数量
}
(2)分别利用类classadmin、classshelf、classele、classmana定义了各自的对象adminabs、shelfsh;eleaele;对其函数进行调用实现各种功能。
(3)主函数实现,调用各种函数。
4.程序源代码
#include
#include
#include
#include
#include
usingnamespacestd;
classadmin
{
public:
admin();
private:
stringname;
};
classshelf
{
public:
shelf();
private:
stringstoreNo;//仓库编号
stringshelfNo;
adminwe;//货架号
};
classele
{
public:
ele();
private:
stringname;//商品名
doubleprice;//介格
shelfsh;//所属货架
longcount;//商品数量
};
classmana
{
public:
mana();
charfirst_face();//首页
voidshow_storage();//显示
voidin_storage();//入库
voidout_storage();//出库
voidselect_ele();//查询
voidselect_name();//按商品名称查询
voidselect_price();//按商品价格查询
voidcall_s();//商品保存
voidshow_storage1();
private:
adminabs;
eleaele;
shelfashelf;
};
ele:
:
ele():
sh()
{
name="xxx";//商品名
price=0.0;//介格
count=0;//商品数量
}
shelf:
:
shelf():
we()
{
storeNo="xxx";//仓库编号
shelfNo="xxx";;//货架号
}
admin:
:
admin()
{
name="xxx";
}
mana:
:
mana():
aele(),ashelf(),abs()
{
}
charmana:
:
first_face()
{
system("cls");
cout<cout<<<<<<<<<<<<<<<returngetch();
}
voidmana:
:
in_storage()
{
system("cls");
stringname;//商品名
doubleprice;//介格
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
longcount=0;//商品数量
cout<"<cout<<"\t商品名称:
";
cin>>name;
cout<";
cin>>price;
cout<";
cin>>count;
cout<";
cin>>storeNo;
cout<";
cin>>shelfNo;
ofstreamstoreFile("store.txt",ios:
:
app);
storeFile<:
left)<<<<storeFile.close();
cout<system("pause");
}
voidmana:
:
show_storage(){
boolflag2=false;
stringname2;//商品名
doubleprice2;//介格
stringstoreNo2;//仓库编号
stringshelfNo2;//货架号
longcount2=0;//商品数量
ifstreamshowFile("store.txt");
if(!
showFile)
{
cout<<"\t对不起,你的库存为空!
!
!
"<system("pause");
return;
}
cout<<<""<<"货架号"<while(showFile>>name2>>price2>>count2>>storeNo2>>shelfNo2)
{
cout<:
left)<<<<}
showFile.close();
getchar();
}
voidmana:
:
out_storage()
{
system("cls");
stringname;//商品名
cout<"<cout<<"\t商品名称:
";
cin>>name;
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
ofstreamstoreFile1("store.txt");
storeFile1.close();
cout<!
!
!
"<system("pause");
return;
}
boolflag=false;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringshelfNo1;//货架号
longcount2;
longcount1=0;//商品数量
ofstreamtempFile("temp.txt");
while(storeFile>>name1>>price1>>count1>>storeNo1>>shelfNo1)
{
if(name1==name)
flag=true;
while(name1==name)
{
cout<<"\t请输入要取出的商品数量:
";
cin>>count2;
count1=count1-count2;
break;
}
tempFile<:
left)<<<}
tempFile.close();
storeFile.close();
if(!
flag)
{
cout<!
!
"<system("pause");
return;
}
ofstreamstoreFile1("store.txt");
ifstreamtempFile1("temp.txt");
storeFile1<storeFile1.close();
tempFile1.close();
cout<!
!
"<system("pause");
}
//查询
voidmana:
:
select_ele()
{
while
(1)
{
system("cls");
cout<cout<<"\t============================================================="<<<"\t||||"<<<"\t||商品查询||"<<<"\t||||"<<<"\t||1.按商品名称查询||"<<<"\t||||"<<<"\t||2.按商品价格查询||"<<<"\t||||"<<<"\t||3.返回||"<<<"\t||||"<<<"\t============================================================="<charselect=getch();
switch(select)
{
case'1':
select_name();
break;
case'2':
select_price();
break;
case'3':
return;
default:
break;
}
}
}
voidmana:
:
select_name()
{
system("cls");
cout<"<cout<<"\t输入商品名:
";
stringname;
cin>>name;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
cout<<"\t对不起,你的库存为空!
!
!
"<system("pause");
return;
}
boolflag=false;
cout<<<"货架号"<while(storeFile>>name1>>price1>>count1>>storeNo1>>shelfNo1)
{
if(name1==name)
{
flag=true;
cout<:
left)<<<<}
}
storeFile.close();
if(!
flag)
cout<!
!
";
cout<system("pause");
}
voidmana:
:
show_storage1(){
stringname2;//商品名
doubleprice2;//介格
stringstoreNo2;//仓库编号
stringshelfNo2;//货架号
longcount2=0;//商品数量
ifstreamtempFile3("temp.txt");
while(tempFile3>>name2>>price2>>count2>>storeNo2>>shelfNo2)
{
cout<:
left)<<<<}
tempFile3.close;
system("pause");
}
//按商品价格查询
voidmana:
:
select_price()
{
system("cls");
cout<"<cout<<"\t输入价格:
";
doubleprice;
cin>>price;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
cout<!
!
"<system("pause");
return;
}
boolflag=false;
cout<<<"货架号"<while(storeFile>>name1>>price1>>count1>>storeNo1>>shelfNo1)
{
if(price1==price)
{
flag=true;
cout<:
left)<<<<}
}
storeFile.close();
if(!
flag)
cout<!
!
";
cout<system("pause");
}
intmain()
{
charselect;
manamen;
while(select=men.first_face())
{
switch(select)
{
case'2':
men.show_storage();
break;
case'3':
men.select_ele();
break;
case'1':
men.in_storage();
break;
case'4':
men.out_storage();
break;
case'6':
men.show_storage1();
case'5':
cout<<"\t"<<"谢谢使用!
!
!
!
"<exit(0);
break;
default:
break;
}
}
return0;
}
5.调试纪录
1、电器管理界面
2、程序的主界面以及图书维护界面
3、查找读者功能界面
6.总结
通过这次课程设计,让我了解了更多关于设计时容易出现的错误,而且进一步的认识到平时学习积累的重要性。
在刚进行编译的时候发现了很多的错误,都是平时应该注意的细节问题,还好与同学进行了很好的交流,得以纠正错误。
由于能力问题,我只能设计这个简单的图书管理系统。
它存在很多缺陷,在很多地方都存在不足。
编写程序最重要的是谨慎,认真,因为哪怕是一个字符或一个标点的错误都会导致程序的错误,从而使程序无法调试运行。
由这次编写课程设计的过程中让我更加了解到了自己的不足,那就是对编写程序的经验不足以及对理论知识的掌握不够透彻,以致程序中还存在许多缺点。
如:
在程序中还有部分功能不能按我的意识表达运行,当经人指点还是比较不错的实现了。
参考资料
本程序参考书本:
<<C++程序设计课程设计>>
<<高级语言C++程序设计>>