《商场电器库存管理系统.docx》由会员分享,可在线阅读,更多相关《商场电器库存管理系统.docx(30页珍藏版)》请在三一办公上搜索。
1、C+程序设计 课程设计报告 课程名称: C+程序设计 题 目: 商场电器库存管理系统 学生姓名: 谷诗慧 学 号: 201017030135 专业班级: 网工10101班 指导教师: 周慧灿 设计时间: 2011年上学期第17-19周指导老师意见: 评定等级: 教师签名: 目 录一、课 题 简 介3二、设 计 方 案3三、具 体 设 计3一)系统设计31.系统功能模块32系统登录模块33.商场电器管理信息5二)程序源代码12四 、 系 统 测 试24一)测试过程中遇到的问题记录24二)测试结果26五、 总 结30参考文献30一、课 题 简 介 本课题是关于如何管理商场商品,实现包括入库、出库、
2、查询、报损等四方面的功能,把复杂工作简单化,提高工作效率,有条不紊的管理商场电器。二、设 计 方 案一)商品入库1. 输入商品的基本信息;二)商品出库 1是否已入库该商品; 2出库该商品;三)查询统计 1.输入要查询的项目; 2.判断是否有与之相匹配的商品; 3.输出商品基本信息;四)商品报损 1.输入待报损商品名称; 2.报损;三、具 体 设 计一)系统设计1.系统功能模块 通过对相关资料的查阅和对课题的认真分析,得出系统功能模块图如图1所示。系统主要由主函数、入库管理、出库管理、查询统计管理、报损管理、退出系统等几个功能模块组成。具体流程图如图1所示。 2系统登录模块系统登陆模块主要完成系
3、统登陆和系统退出功能。其详细流程图如图2所示。1. 显示欢迎语;2. 输入管理员名字和密码;3. 验证用户名和密码;4. 进入主菜单 图1 系统功能模块 商场电器管理系统系统登录endl/main.cpp#include #include #include #include #include #include using namespace std;/仓库管理员类class adminpublic:admin();private:string name;/仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓
4、库编号string kinds;/商品大类string shelfNo;/货架号;/electrical classclass elepublic:ele();private:string name;/商品名double price;/价格shelf sh;/所属货架long count;/商品数量;/管理(组合类)class manapublic:mana();char first_face();/首页void welcome();/系统登录void in_storage();/入库void out_storage();/ 出库void select_ele();/查询void select
5、_name();/按商品名称查询void select_price();/按商品价格查询void select_kind();/按大类查询void call_break();/商品报损private:ele aele;shelf ashelf;admin abs;/电器类默认构造函数ele:ele():sh()name = xxx;/商品名price = 0.0;/价格count = 0;/商品数量/仓库货架类默认构造函数shelf:shelf():men()storeNo = xxx;/仓库编号kinds = xxx;/商品大类shelfNo = xxx;/货架号/仓库管理员类admin:a
6、dmin()name = xxx;/管理类默认构造函数mana:mana():aele(), ashelf(), abs()void mana:welcome()/登录系统char name10,code20;coutnamecode;while(strcmp(name,小米)!=0)|(strcmp(code,19930409)!=0)coutnamecode;cout endl ttendl tt endl tt 欢迎进入 endl tt 商场管理系统 endl tt endl tt endl endl tt;char mana:first_face()system(cls);cout e
7、ndl;cout endl ttendl 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;/仓库编号str
8、ing kinds;/商品大类string shelfNo;/货架号long count = 0; /商品数量cout endl 商品入库,请输入相关信息 : endl endl ;cout name;cout endl price;cout endl count;cout endl storeNo;cout endl kinds;cout endl shelfNo;ofstream storeFile(store.txt, ios:app);storeFile setiosflags(ios:left) setw(20) name setw(15) price setw(10) count
9、setw(10) storeNo setw(20) kinds shelfNo endl;storeFile.close();cout endl endl t该商品已经入库. endl endl t;system(pause);/ 出库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);storeFil
10、e1.close();cout endl endl t仓存为空! endl endl name1 price1 count1 storeNo1 kinds1 shelfNo1)if (name1=name)flag = true;elsetempFile setiosflags(ios:left) setw(20) name1 setw(15) price1 setw(10) count1 setw(10) storeNo1 setw(20) kinds1 shelfNo1 endl;tempFile.close();storeFile.close();if (!flag)cout endl
11、endl t仓库中没有这种商品! endl endl t;system(pause);return;ofstream storeFile1(store.txt);ifstream tempFile1(temp.txt);storeFile1 tempFile1.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= e
12、ndl t| | endl t| 商 品 查 询 | endl t| | endl t| 1. 按商品名称查询 | endl t| | endl t| 2. 按商品价格查询 | endl t| | endl t| 3. 按大类查询 | endl t| | endl t| 4. 返回 | endl t| | endl t= endl endl tt;char select = getch();switch (select)case 1:select_name();break;case 2:select_price();break;case 3:select_kind();break;case 4
13、:return;default:break;/按商品名称查询void mana:select_name()system(cls);cout endl t按商品名查询 : endl endl ;cout name;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;/货架号long count1 = 0; /商品数量ifstream storeFile(store.txt);if (!storeFile)cout endl endl t对不起,你的库存为空! endl
14、endl t;system(pause);return;bool flag = false;cout endl 商品名 价格 商品数量 仓库编号 商品大类 货架号 endl name1 price1 count1 storeNo1 kinds1 shelfNo1)if (name1 = name)flag = true;cout setiosflags(ios:left) setw(15) name1 setw(10) price1 setw(10) count1 setw(10) storeNo1 setw(15) kinds1 shelfNo1 endl;storeFile.close()
15、;if (!flag)cout endl endl 对不起,库存中没有这种商品!;cout endl endl;system(pause);/按商品价格查询void mana:select_price()system(cls);cout endl t按商品价格查询 : endl endl ;cout price;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;/货架号long count1 = 0; /商品数量ifstream storeFile(store.tx
16、t);if (!storeFile)cout endl endl t对不起,你的库存为空! endl endl t;system(pause);return;bool flag = false;cout endl 商品名 价格 商品数量 仓库编号 商品大类 货架号 endl name1 price1 count1 storeNo1 kinds1 shelfNo1)if (price1 = price)flag = true;cout setiosflags(ios:left) setw(15) name1 setw(10) price1 setw(10) count1 setw(10) sto
17、reNo1 setw(15) kinds1 shelfNo1 endl;storeFile.close();if (!flag)cout endl endl 对不起,库存中没有这个价格的商品!;cout endl endl;system(pause);/按大类查询void mana:select_kind()system(cls);cout endl t按商品大类查询 : endl endl ;cout kinds;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;
18、/货架号long count1 = 0; /商品数量ifstream storeFile(store.txt);if (!storeFile)cout endl endl t对不起,你的库存为空! endl endl t;system(pause);return;bool flag = false;cout endl 商品名 价格 商品数量 仓库编号 商品大类 货架号 endl name1 price1 count1 storeNo1 kinds1 shelfNo1)if (kinds1 = kinds)flag = true;cout setiosflags(ios:left) setw(1
19、5) name1 setw(10) price1 setw(10) count1 setw(10) storeNo1 setw(15) kinds1 shelfNo1 endl;storeFile.close();if (!flag)cout endl endl 对不起,库存中没有这类商品!;cout endl endl;system(pause);/商品报损void mana:call_break()system(cls);string name;/商品名cout endl t商品报损,请输入要报损商品信息 : endl endl;cout name;ifstream storeFile(s
20、tore.txt);if (!storeFile)ofstream storeFile1(store.txt);storeFile1.close();cout endl endl t仓存为空! endl endl t;system(pause);return;bool flag = false;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;/货架号long count1 = 0; /商品数量ofstream tempFile(temp.txt);cout end
21、l endl 你想报损商品信息如下 : endl endl;cout endl 商品名 价格 商品数量 仓库编号 商品大类 货架号 endl name1 price1 count1 storeNo1 kinds1 shelfNo1)if (name1=name)flag = true;cout setiosflags(ios:left) setw(15) name1 setw(10) price1 setw(10) count1 setw(10) storeNo1 setw(15) kinds1 shelfNo1 endl;shelfNo1 += (损坏);tempFile setiosfla
22、gs(ios:left) setw(20) name1 setw(15) price1 setw(10) count1 setw(10) storeNo1 setw(20) kinds1 shelfNo1 endl;tempFile.close();storeFile.close();if (!flag)cout endl endl 对不起,仓库中没有这种商品! endl endl;system(pause);return;ofstream storeFile1(store.txt);ifstream tempFile1(temp.txt);storeFile1 tempFile1.rdbuf
23、();storeFile1.close();tempFile1.close();cout endl endl 这些商品已经损坏,请尽快从仓库中取出! endl endl;cout 报损成功,记录已经更改! endl endl ;system(pause);int main()char select;mana men;men.welcome();while (select = men.first_face()switch (select)case 1:men.in_storage();break;case 2:men.out_storage();break;case 3:men.select_e
24、le();break;case 4:men.call_break();break;case 5:cout endl t=endl tt| 谢 |endl tt| 谢 |endl tt| 使 |endl tt| 用 |endl tt| 本 |endl tt| 系 |endl tt| 统 |endl tt= endl endl tt;exit( 0 );break;default:break;return 0; 系统管理系统主菜单验证用户名和密码进入主菜单商品入库商品出库查询统计商品报损退出系统按名称查询按价格查询按大类查询 图2 登录系统开始输出欢迎语输入用户名和密码验证输入的信息主菜单3商场电
25、器库存管理系统3.1.商品入库管理 1.在主菜单中选择1,进入到商品入库;2. 输入商品基本信息;3.信息储存;4.判断是否继续商品入库; 具体流程如图3所示 图3 商品入库模块 主菜单输入1,进入商品入库管理输入商品基本信息是否继续商品入库储存信息 3.2商品出库管理 1在主菜单中选择2,进入商品出库;2输入出库商品名,判断是否已入库;3.若是,则出库该商品,再判断是否继续出库;否则,直接判断是否继续使用; 具体流程如图4所示 图4 商品出库主菜单输入2,进入商品出库管理输入待出库商品名称判断是否已入库出库该商品是否继续商品出库3.3.查询统计管理1.在主菜单中选择3,进入商品查询;2.选择
26、查询项目 1)按商品名查询: 输入待查询商品名。判断库存中是否有该商品,若有,则输出该商品的信息,再判断是否继续查询,否则,直接判断是否继续查询。具体流程如图5. 图5 按商品名查询输入1,进入按商品名称查询管理判断库存中是否有该商品输出该商品信息判断是否继续查询商品查询菜单输入4,返回主菜单 2)按价格查询 输入目标价格。判断库存中是否有该价格的商品,若有。则输出该价格所包含的所有的商品信息,再判断是否继续查询,否则,直接判断是否继续查询。具体流程如图6 图6 按价格查询 输入2,进入按价格查询管理判断库存中是否有该价目的商品输出该价目所有商品的信息判断是否继续查询商品查询菜单输入4,返回主
27、菜单 3)按大类查询 输入目标大类。判断库存中是否有隶属于该大类的商品,若有,则输出隶属于该大类的的所有商品的信息,再判断是否继续查询,否则直接判断是否继续查询。具体流程如图7 图7 按大类查询 输入3,进入按大类查询管理判断库存中是否有隶属于该类的商品输出该类包含商品信息判断是否继续查询商品查询菜单输入4,返回主菜单 4)返回 返回主菜单。 3.4.商品报损管理1在主菜单中选择4,进入商品报损管理。2.输入欲报损商品名称,判断库存中是否存在该商品,若存在,则更改商品信息,再判断是否继续报损,否则直接判断是否继续报损。具体流程如图8所示 图 8 商品报损主菜单 输入4,进入商品报损管理输入欲报
28、损商品名称判断库存中是否有该商品更改商品信息是否继续商品报损3.5.退出系统 在主菜单中选择5,输出系统设置话语,退出系统。 二)程序源代码 /main.cpp#include #include #include #include #include #include using namespace std;/仓库管理员类class adminpublic:admin();private:string name;/仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号string kinds;/商品大类s
29、tring shelfNo;/货架号;/electrical classclass elepublic:ele();private:string name;/商品名double price;/价格shelf sh;/所属货架long count;/商品数量;/管理(组合类)class manapublic:mana();char first_face();/首页void welcome();/系统登录void in_storage();/入库void out_storage();/ 出库void select_ele();/查询void select_name();/按商品名称查询void s
30、elect_price();/按商品价格查询void select_kind();/按大类查询void call_break();/商品报损private:ele aele;shelf ashelf;admin abs;/电器类默认构造函数ele:ele():sh()name = xxx;/商品名price = 0.0;/价格count = 0;/商品数量/仓库货架类默认构造函数shelf:shelf():men()storeNo = xxx;/仓库编号kinds = xxx;/商品大类shelfNo = xxx;/货架号/仓库管理员类admin:admin()name = xxx;/管理类默认构造函数mana:mana():aele(), ashelf(), abs()void mana:welcome()/登录系统char name10,code20; cout endl tt endl tt endl tt 欢迎进入 endl tt 商场管理系统 endl tt endl tt endlendlendl; coutnamecode;while(strcmp(name,小米)!=0)|(strcmp(code,19930409)!=0)coutnamecode;char mana:first_face()system(cls);cout endl;cout e