仓库管理系统C++课程设计报告.pdf
高级语言程序设计 课程设计报告 设计题目 图书管理系统 专 业 计算机科学与技术 班 级 姓 名 学 号 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)设计class admin管理库,实现对仓库信息的描叙;class shelf柜台类库实现建立电器资料;class ele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;class mana函数类,实现对电器的入库,查找,出库等。以下是函数功能表:函数 功能 char first_face()获取首页 void show_storage()显示储存信息 void in_storage()电器入库 void out_storage()电器出库 void select_ele()查询电器信息 void select_name()按电器名查询 void select_price()按电器价格查询 void call_s()商品保存 (2)用类的成员函数对链表的数据进行操作,其功能如上表所列。实用文档.(3)设计菜单来实现功能设计 1、输入商品 2、商品查找 3、查询入库 4、商品出库 5、退出系统 3设计类及对象(1)本程序定义了四个类,定义如下:class admin public:admin();private:string name;class shelf public:shelf();private:string storeNo;/仓库编号 string shelfNo;admin we;/货架号;class ele public:ele();private:string name;/商品名 double price;/介格 shelf sh;/所属货架 long count;/商品数量;class mana public:mana();char first_face();/首页 void show_storage();/显示 void in_storage();/入库 实用文档.void out_storage();/出库 void select_ele();/查询 void select_name();/按商品名称查询 void select_price();/按商品价格查询 void call_s();/商品保存 void show_storage1();private:admin abs;ele aele;shelf ashelf;ele:ele():sh()name=xxx;/商品名 price=0.0;/介格 count=0;/商品数量 (2)分别利用类 class admin、class shelf、class ele、class mana 定义了各自的对象 admin abs、shelf sh;ele aele;对其函数进行调用实现各种功能。(3)主函数实现,调用各种函数。4程序源代码#include#include#include#include#include using namespace std;class admin public:admin();private:string name;class shelf public:shelf();private:string storeNo;/仓库编号 实用文档.string shelfNo;admin we;/货架号;class ele public:ele();private:string name;/商品名 double price;/介格 shelf sh;/所属货架 long count;/商品数量;class mana public:mana();char first_face();/首页 void show_storage();/显示 void in_storage();/入库 void out_storage();/出库 void select_ele();/查询 void select_name();/按商品名称查询 void select_price();/按商品价格查询 void call_s();/商品保存 void show_storage1();private:admin abs;ele aele;shelf ashelf;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()char mana:first_face()system(cls);cout endl;cout endl tt endl tt endl tt 公司库存货物管理系统 endl tt endl tt 1.输入商品 endl tt endl tt 2.商品查找 endl tt endl tt 3.查询入库 endl tt endl tt 4.商品出库 endl tt endl tt 5.退出系统 endl tt endl tt endl endl tt;return getch();void mana:in_storage()system(cls);string name;/商品名 double price;/介格 string storeNo;/仓库编号 string kinds;/商品大类 string shelfNo;/货架号 long count=0;/商品数量 cout endl 商品入库,请输入相关信息:endl endl;cout name;cout endl price;cout endl count;cout endl storeNo;cout endl shelfNo;ofstream storeFile(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);void mana:show_storage()bool flag2=false;string name2;/商品名 double price2;/介格 string storeNo2;/仓库编号 string shelfNo2;/货架号 long count2=0;/商品数量 ifstream showFile(store.txt);if(!showFile)cout t 对不起,你的库存为空!endl endl t;system(pause);return;cout endl 商品名 价格 商品数量 仓库编号 货架号 endl 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();void mana:out_storage()system(cls);string name;/商品名 cout endl t 商品出库,输入出库商品信息:endl endl;cout name;ifstream storeFile(store.txt);if(!storeFile)ofstream storeFile1(store.txt);storeFile1.close();cout endl endl t仓存为空!endl endl name1 price1 count1 storeNo1 shelfNo1)if(name1=name)flag=true;while(name1=name)coutcount2;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;ofstream storeFile1(store.txt);ifstream tempFile1(temp.txt);storeFile1tempFile1.rdbuf();storeFile1.close();tempFile1.close();cout endl t 这些商品已经出库,请仔细检查!endl endl t;system(pause);/查询 void mana: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 tt;char select=getch();switch(select)case 1:实用文档.select_name();break;case 2:select_price();break;case 3:return;default:break;void mana:select_name()system(cls);cout endl t 按商品名查询:endl endl;cout name;string name1;/商品名 double price1;/介格 string storeNo1;/仓库编号 string shelfNo1;/货架号 long count1=0;/商品数量 ifstream storeFile(store.txt);if(!storeFile)cout t 对不起,你的库存为空!endl endl t;system(pause);return;bool flag=false;cout endl 商品名 价格 商品数量 仓库编号 货架号 endl 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 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);/按商品价格查询 void mana:select_price()system(cls);cout endl t 按商品价格查询:endl endl;cout price;string name1;/商品名 double price1;/介格 string storeNo1;/仓库编号 string shelfNo1;/货架号 long count1=0;/商品数量 ifstream storeFile(store.txt);if(!storeFile)cout endl endl t 对不起,你的库存为空!endl endl 实用文档.t;system(pause);return;bool flag=false;cout endl 商品名 价格 商品数量 仓库编号 货架号 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);int main()char select;mana men;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 tt;exit(0);break;default:break;return 0;5.调试纪录 1、电器管理界面 实用文档.2、程序的主界面以及图书维护界面 实用文档.3、查找读者功能界面 实用文档.6总结 通过这次课程设计,让我了解了更多关于设计时容易出现的错误,而且进一步的认识到平时学习积累的重要性。在刚进行编译的时候发现了很多的错误,都是平时应该注意的细节问题,还好与同学进行了很好的交流,得以纠正错误。由于能力问题,我只能设计这个简单的图书管理系统。它存在很多缺陷,在很多地方都存在不足。编写程序最重要的是谨慎,认真,因为哪怕是一个字符或一个标点的错误都会导致程序的错误,从而使程序无法调试运行。由这次编写课程设计的过程中让我更加了解到了自己的不足,那就是对编写程序的经验不足以及对理论知识的掌握不够透彻,以致程序中还存在许多缺点。如:在程序中还有部分功能不能按我的意识表达运行,当经人指点还是比较不错实用文档.的实现了。参考资料 本程序参考书本:C+程序设计课程设计 高级语言 C+程序设计