仓库管理系统C课程设计报告
- 格式:doc
- 大小:51.50 KB
- 文档页数:12
《高级语言程序设计》
课程设计报告
设计题目图书管理系统
专业计算机科学与技术
班级
姓名
学号
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管理库,实现对仓库信息的描叙;class shelf柜台类库实现建立电器资料;class ele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;class mana函数类,实现对电器的入库,查找,出库等。
(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<iostream>
#include<string>
#include<fstream>
#include<iomanip>
#include<conio.h>
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<<endl;
cout<<endl<<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆" <<endl<<"\t\t◆◆"
<<endl<<"\t\t◆公司库存货物管理系统◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆1.输入商品◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆2.商品查找◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆3.查询入库◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆4.商品出库◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆5.退出系统◆"
<<endl<<"\t\t◆◆"
<<endl<<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl<<endl<<"\t\t";
returngetch();
}
voidmana::in_storage()
{
system("cls");
stringname;//商品名
doubleprice;//介格
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
longcount=0;//商品数量
cout<<endl<<"商品入库,请输入相关信息:"<<endl<<endl;
cout<<"\t商品名称:";
cin>>name;
cout<<endl<<"\t商品介格:";
cin>>price;
cout<<endl<<"\t商品数量:";
cin>>count;
cout<<endl<<"\t仓库编号:";
cin>>storeNo;
cout<<endl<<"\t货架编号:";
cin>>shelfNo;
ofstreamstoreFile("store.txt",ios::app);
storeFile<<setiosflags(ios::left)<<setw(20)<<name<<""
<<setw(15)<<price<<""<<setw(10)<<count<<""
<<setw(10)<<storeNo<<""
<<shelfNo<<endl;
storeFile.close();
cout<<endl<<endl<<"\t该商品已经入库......."<<endl<<endl<<"\t"; system("pause");
}
voidmana::show_storage(){
boolflag2=false;
stringname2;//商品名
doubleprice2;//介格
stringstoreNo2;//仓库编号
stringshelfNo2;//货架号
longcount2=0;//商品数量
ifstreamshowFile("store.txt");
if(!showFile)
{
cout<<"\t对不起,你的库存为空!!!"<<endl<<endl<<"\t";
system("pause");
return;
}
cout<<endl<<"商品名"<<""<<"价格"<<""<<"商品数量"<<""<<"仓库编号" <<""<<"货架号"<<endl<<endl;
while(showFile>>name2>>price2>>count2>>storeNo2>>shelfNo2)
{
cout<<setiosflags(ios::left)<<setw(10)<<name2<<""
<<setw(10)<<price2<<""<<setw(10)<<count2<<""
<<setw(10)<<storeNo2<<""
<<shelfNo2<<endl;
}
showFile.close();
getchar();
}
voidmana::out_storage()
{
system("cls");
stringname;//商品名
cout<<endl<<"\t商品出库,输入出库商品信息:"<<endl<<endl;
cout<<"\t商品名称:";
cin>>name;
ifstreamstoreFile("store.txt");
if(!storeFile)
{
ofstreamstoreFile1("store.txt");
storeFile1.close();
cout<<endl<<endl<<"\t仓存为空!!!!"<<endl<<endl<<"\t";
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<<setiosflags(ios::left)<<setw(10)<<name1<<""
<<setw(15)<<price1<<""<<setw(10)<<count1<<""
<<setw(10)<<storeNo1<<""<<setw(10)<<shelfNo1<<endl;
}
tempFile.close();
storeFile.close();
if(!flag)
{
cout<<endl<<endl<<"\t仓库中没有这种商品!!!"<<endl<<endl<<"\t"; system("pause");
return;
}
ofstreamstoreFile1("store.txt");
ifstreamtempFile1("temp.txt");
storeFile1<<tempFile1.rdbuf();
storeFile1.close();
tempFile1.close();
cout<<endl<<"\t这些商品已经出库,请仔细检查!!!"<<endl<<endl<<"\t"; system("pause");
}
//查询
voidmana::select_ele()
{
while(1)
{
system("cls");
cout<<endl<<endl;
cout<<"\t============================================================ ="<<endl
<<"\t||||"<<endl
<<"\t||商品查询||"<<endl
<<"\t||||"<<endl
<<"\t||1.按商品名称查询||"<<endl
<<"\t||||"<<endl
<<"\t||2.按商品价格查询||"<<endl
<<"\t||||"<<endl
<<"\t||3.返回||"<<endl
<<"\t||||"<<endl
<<"\t============================================================="<< endl<<endl<<"\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<<endl<<"\t按商品名查询:"<<endl<<endl;
cout<<"\t输入商品名:";
stringname;
cin>>name;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!storeFile)
{
cout<<"\t对不起,你的库存为空!!!"<<endl<<endl<<"\t";
system("pause");
return;
}
boolflag=false;
cout<<endl<<"商品名"<<"价格"<<"商品数量"<<"仓库编号"
<<"货架号"<<endl<<endl;
while(storeFile>>name1>>price1>>count1>>storeNo1>>shelfNo1) {
if(name1==name)
{
flag=true;
cout<<setiosflags(ios::left)<<setw(15)<<name1<<""
<<setw(10)<<price1<<""<<setw(10)<<count1<<""
<<setw(10)<<storeNo1<<""
<<shelfNo1<<endl;
}
}
storeFile.close();
if(!flag)
cout<<endl<<endl<<"对不起,库存中没有这种商品!!!";
cout<<endl<<endl;
system("pause");
}
voidmana::show_storage1(){
stringname2;//商品名
doubleprice2;//介格
stringstoreNo2;//仓库编号
stringshelfNo2;//货架号
longcount2=0;//商品数量
ifstreamtempFile3("temp.txt");
while(tempFile3>>name2>>price2>>count2>>storeNo2>>shelfNo2) {
cout<<setiosflags(ios::left)<<setw(10)<<name2<<""
<<setw(10)<<price2<<""<<setw(10)<<count2<<""
<<setw(10)<<storeNo2<<""
<<shelfNo2<<endl;
}
tempFile3.close;
system("pause");
}
//按商品价格查询
voidmana::select_price()
{
system("cls");
cout<<endl<<"\t按商品价格查询:"<<endl<<endl;
cout<<"\t输入价格:";
doubleprice;
cin>>price;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!storeFile)
{
cout<<endl<<endl<<"\t对不起,你的库存为空!!!"<<endl<<endl<<"\t"; system("pause");
return;
}
boolflag=false;
cout<<endl<<"商品名"<<"价格"<<"商品数量"<<"仓库编号"
<<"货架号"<<endl;
while(storeFile>>name1>>price1>>count1>>storeNo1>>shelfNo1)
{
if(price1==price)
{
flag=true;
cout<<setiosflags(ios::left)<<setw(15)<<name1<<""
<<setw(10)<<price1<<""<<setw(10)<<count1<<""
<<setw(10)<<storeNo1<<""
<<shelfNo1<<endl;
}
}
storeFile.close();
if(!flag)
cout<<endl<<endl<<"对不起,库存中没有这个价格的商品!!!";
cout<<endl<<endl;
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"<<"谢谢使用!!!!"<<endl<<endl<<"\t\t";
exit(0);
break;
default:
break;
}
}
return0;
}
5.调试纪录
1、电器管理界面
2、程序的主界面以及图书维护界面
3、查找读者功能界面
6.总结
通过这次课程设计,让我了解了更多关于设计时容易出现的错误,而且进一步的认识到平时学习积累的重要性。
在刚进行编译的时候发现了很多的错误,都是平时应该注意的细节问题,还好与同学进行了很好的交流,得以纠正错误。
由于能力问题,我只能设计这个简单的图书管理系统。
它存在很多缺陷,在很多地方都存在不足。
编写程序最重要的是谨慎,认真,因为哪怕是一个字符或一个标点的错误都会导致程序的错误,从而使程序无法调试运行。
由这次编写课程设计的过程中让我更加了解到了自己的不足,那就是对编写程序的经验不足以及对理论知识的掌握不够透彻,以致程序中还存在许多缺点。
如:在程序中还有部分功能不能按我的意识表达运行,当经人指点还是比较不错的实现了。
参考资料
本程序参考书本:<< C++程序设计课程设计>>
<<高级语言C++程序设计>>。