商场电器库存管理系统23077.docx
C+程序设设计课课程设计计报告 课程程名称: CC+程程序设计计 题 目:商场电电器库存存管理系系统 学生姓名名:谷诗诗慧学 号:2011017703001355专业班级级:网工工101101班班指导教师师: 周慧灿灿 设计时间间: 220111年上学学期第117-119周指导老师师意见: 评定等等级: 教师师签名: 目 录一、课题题简介3二、设计计方案3三、具体体设计3一)系统统设计331.系统统功能模模块32系统统登录模模块33.商场场电器管管理信息息5二)程序序源代码码12四、系统统测试24一)测试试过程中中遇到的的问题记记录24二)测试试结果226五、总结结30参考文献献30一、课 题 简简 介本课题是是关于如如何管理理商场商商品,实实现包括括入库、出出库、查查询、报报损等四四方面的功功能,把把复杂工工作简单单化,提提高工作作效率,有条不紊的管理商场电器。二、设 计 方方 案一)商品品入库1. 输入商品品的基本本信息;二)商品品出库 1是是否已入入库该商商品; 22出库该该商品;三)查询询统计 1.输输入要查查询的项项目; 22.判断断是否有有与之相相匹配的的商品; 33.输出出商品基基本信息息;四)商品品报损 1.输输入待报报损商品品名称; 22.报损损;三、具 体 设设 计一)系统统设计1.系统统功能模模块通过对相相关资料料的查阅阅和对课课题的认认真分析析,得出出系统功功能模块块图如图图1所示示。系统统主要由由主函数数、入库库管理、出出库管理理、查询询统计管管理、报报损管理理、退出出系统等等几个功功能模块块组成。具体流程图如图1所示。2系统统登录模模块系统登陆陆模块主主要完成成系统登登陆和系系统退出出功能。其其详细流流程图如如图2所所示。1. 显示欢迎迎语;2. 输入管理理员名字字和密码码;3. 验证用户户名和密密码;4. 进入主菜菜单 图1 系系统功能能模块 商场电器管理系统系统登录<<endl/main.cpp#include <iostream>#include <string>#include <fstream>#include <cassert>#include <iomanip>#include <conio.h>using namespace std;/仓库管理员类class adminpublic:admin();private:string name;/仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号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_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:admin()name = "xxx"/管理类默认构造函数mana:mana():aele(), ashelf(), abs()void mana:welcome()/登录系统char name10,code20;cout<<"请输入用户名和密码(以空格隔开):n" cin>>name>>code;while(strcmp(name,"小米")!=0)|(strcmp(code,"19930409")!=0)cout<<"用户名或密码输入有误,请重新输入!n"cin>>name>>code;cout <<endl <<"tt"<<endl <<"tt "<<endl <<"tt 欢迎进入 "<<endl <<"tt 商场管理系统 "<<endl <<"tt "<<endl <<"tt" <<endl <<endl <<"tt"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 << "t商品名称 : "cin >> name;cout << endl << "t商品价格 : "cin >> price;cout << endl << "t商品数量 : "cin >> count;cout << endl << "t仓库编号 : "cin >> storeNo;cout << endl << "t商品大类 : "cin >> kinds;cout << endl << "t货架编号 : " ;cin >> shelfNo;ofstream storeFile("store.txt", ios:app);storeFile << setiosflags(ios:left) << setw(20) << name << " "<< setw(15) << price << " " << setw(10) << count << " "<< 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 << "t商品名称 : "cin >> name;ifstream storeFile("store.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");while (storeFile >> 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 << 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=" << endl<< "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':return;default:break;/按商品名称查询void mana:select_name()system("cls");cout << endl << "t按商品名查询 : " << endl << endl ;cout << "t输入商品名 : "string name;cin >> 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 << endl << "t"system("pause");return;bool flag = false;cout << endl << "商品名 " << "价格 " << "商品数量 " << "仓库编号 "<< "商品大类 " << "货架号" << endl << endl;while (storeFile >> 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();if (!flag)cout << endl << endl << "对不起,库存中没有这种商品!"cout << endl << endl;system("pause");/按商品价格查询void mana:select_price()system("cls");cout << endl << "t按商品价格查询 : " << endl << endl ;cout << "t输入价格 : "double price;cin >> price;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类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 << "商品名 " << "价格 " << "商品数量 " << "仓库编号 "<< "商品大类 " << "货架号" << endl << endl;while (storeFile >> 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) << storeNo1 << " " << 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 << "t输入大类名 : "string kinds;cin >> kinds;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类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 << "商品名 " << "价格 " << "商品数量 " << "仓库编号 "<< "商品大类 " << "货架号" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (kinds1 = kinds)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();if (!flag)cout << endl << endl << "对不起,库存中没有这类商品!"cout << endl << endl;system("pause");/商品报损void mana:call_break()system("cls");string name;/商品名cout << endl << "t商品报损,请输入要报损商品信息 : " << endl << endl;cout << "t商品名称 : "cin >> name;ifstream storeFile("store.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 << endl << endl << "你想报损商品信息如下 : " << endl << endl;cout << endl << "商品名 " << "价格 " << "商品数量 " << "仓库编号 "<< "商品大类 " << "货架号" << endl << endl;while (storeFile >> 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 << 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 << endl << "对不起,仓库中没有这种商品!" << endl << endl;system("pause");return;ofstream storeFile1("store.txt");ifstream tempFile1("temp.txt");storeFile1 << tempFile1.rdbuf();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_ele();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; 系统管理系统主菜单验证用户名和密码进入主菜单商品入库商品出库查询统计商品报损退出系统按名称查询按价格查询按大类查询 图22 登录系系统开始输出欢迎语输入用户名和密码验证输入的信息主菜单3商场电电器库存存管理系系统3.1.商品入入库管理理 1.在主菜菜单中选选择1,进进入到商商品入库库;2. 输输入商品品基本信信息;3.信息息储存;4.判断断是否继继续商品品入库; 具具体流程程如图33所示图3 商品品入库模模块主菜单输入1,进入商品入库管理输入商品基本信息是否继续商品入库储存信息3.2商品出出库管理理1在主菜菜单中选选择2,进进入商品品出库;2输入出出库商品品名,判判断是否否已入库库;3.若是是,则出出库该商商品,再再判断是是否继续续出库;否则,直直接判断断是否继继续使用用; 具具体流程程如图44所示 图4 商品出出库主菜单输入2,进入商品出库管理输入待出库商品名称判断是否已入库出库该商品是否继续商品出库3.3.查询统统计管理理1.在主主菜单中中选择33,进入入商品查查询;2.选择择查询项项目 1)按按商品名名查询: 输入入待查询询商品名名。判断断库存中中是否有有该商品品,若有有,则输输出该商商品的信信息,再再判断是是否继续续查询,否否则,直直接判断断是否继继续查询询。具体体流程如如图5. 图图5 按商品品名查询询输入1,进入按商品名称查询管理判断库存中是否有该商品输出该商品信息判断是否继续查询商品查询菜单输入4,返回主菜单 2)按按价格查查询 输输入目标标价格。判判断库存存中是否否有该价价格的商商品,若若有。则则输出该该价格所所包含的的所有的的商品信信息,再再判断是是否继续续查询,否否则,直直接判断断是否继继续查询询。具体体流程如如图6图6 按价格格查询输入2,进入按价格查询管理判断库存中是否有该价目的商品输出该价目所有商品的信息判断是否继续查询商品查询菜单输入4,返回主菜单 3)按按大类查查询输入目标标大类。判判断库存存中是否否有隶属属于该大大类的商商品,若若有,则则输出隶隶属于该该大类的的的所有有商品的的信息,再再判断是是否继续续查询,否否则直接接判断是是否继续续查询。具具体流程程如图77 图7 按大大类查询询 输入3,进入按大类查询管理判断库存中是否有隶属于该类的商品输出该类包含商品信息判断是否继续查询商品查询菜单输入4,返回主菜单 4)返返回 返回主主菜单。3.4.商品报报损管理理1在主主菜单中中选择44,进入入商品报报损管理理。2.输入入欲报损损商品名名称,判判断库存存中是否否存在该该商品,若若存在,则则更改商商品信息息,再判判断是否否继续报报损,否否则直接接判断是是否继续续报损。具体流程如图8所示 图 8 商品报报损主菜单 输入4,进入商品报损管理输入欲报损商品名称判断库存中是否有该商品更改商品信息是否继续商品报损3.5.退出系系统 在主菜菜单中选选择5,输输出系统统设置话话语,退退出系统统。二)程序序源代码码/maain.cppp#inccludde <<iosstreeam>>#inccludde <<strringg>#inccludde <<fsttreaam>#inccludde <<cassserrt>#inccludde <<iommaniip>#inccludde <<connio.h>usinng nnameespaace stdd;/仓库库管理员员类classs aadmiinpubllic:admiin();privvatee:striing namme;/仓库库货架类类classs sshellfpubllic:shellf();privvatee:admiin mmen;/管管理员striing stooreNNo;/仓库库编号striing kinnds;/商商品大类类striing sheelfNNo;/货架架号;/ellecttriccal claassclasss eelepubllic:ele();privvatee:striing namme;/商品品名doubble priice;/价价格shellf ssh;/所属属货架longg coountt;/商品数数量;/管理理(组合合类)classs mmanaapubllic:manaa();charr fiirstt_faace();/首页页voidd weelcoome();/系统统登录voidd inn_sttoraage();/入库库voidd ouut_sstorragee();/ 出库voidd seelecct_eele();/查询询voidd seelecct_nnamee();/按按商品名名称查询询voidd seelecct_ppricce();/按商品品价格查查询voidd seelecct_kkindd();/按按大类查查询voidd caall_breeak();/商品品报损privvatee:ele aelle;shellf aasheelf;admiin aabs;/电器器类默认认构造函函数ele:elle():shh()namee = "xxxx"/商商品名pricce = 0.0;/价格格counnt = 0;/商商品数量量/仓库库货架类类默认构构造函数数shellf:sheelf():mmen()storreNoo = "xxxx"/仓仓库编号号kindds = "xxxx""/商品大大类shellfNoo = "xxxx"/货架号号/仓库库管理员员类admiin:admmin()namee = "xxxx"/管理理类默认认构造函函数manaa:mmanaa():aelle(), aasheelf(), abss()voidd maana:weelcoome()/登录系系统chaar nnamee100,ccodee200; couut <<<enndl <<""tt " <<<enndl <<""tt " <<<enndl <<""tt 欢迎迎进入 " <<<enndl <<""tt