1《C++程序设计》课程设计报告课程名称:C++程序设计题目:商场电器库存管理系统学生姓名:谷诗慧学号:201017030135专业班级:网工10101班指导教师:周慧灿设计时间:2011年上学期第17-19周指导老师意见:评定等级:教师签名:2目录一、课题简介.............................3二、设计方案.............................3三、具体设计.............................3一)系统设计.............................31.系统功能模块.........................32.系统登录模块........................33.商场电器管理信息.....................5二)程序源代码..........................12四、系统测试.......................24一)测试过程中遇到的问题记录.............24二)测试结果............................26五、总结...........................30参考文献...................................303一、课题简介本课题是关于如何管理商场商品,实现包括入库、出库、查询、报损等四方面的功能,把复杂工作简单化,提高工作效率,有条不紊的管理商场电器。二、设计方案一)商品入库1.输入商品的基本信息;二)商品出库1是否已入库该商品;2出库该商品;三)查询统计1.输入要查询的项目;2.判断是否有与之相匹配的商品;3.输出商品基本信息;四)商品报损1.输入待报损商品名称;2.报损;三、具体设计一)系统设计1.系统功能模块通过对相关资料的查阅和对课题的认真分析,得出系统功能模块图如图1所示。系统主要由主函数、入库管理、出库管理、查询统计管理、报损管理、退出系统等几个功能模块组成。具体流程图如图1所示。2.系统登录模块系统登陆模块主要完成系统登陆和系统退出功能。其详细流程图如图2所示。1.显示欢迎语;2.输入管理员名字和密码;3.验证用户名和密码;4.进入主菜单4图1系统功能模块图2登录系统商场电器管理系统系统登录endl//main.cpp#includeiostream#includestring#includefstream#includecassert#includeiomanip#includeconio.husingnamespacestd;//仓库管理员类classadmin管理系统主菜单验证用户名和密码进入主菜单商品入库商品出库查询统计商品报损退出系统按名称查询按价格查询按大类查询53商场电器库存管理系统3.1.商品入库管理1.在主菜单中选择1,进入到商品入库;2.输入商品基本信息;3.信息储存;4.判断是否继续商品入库;具体流程如图3所示图3商品入库模块开始输出欢迎语输入用户名和密码验证输入的信息主菜单63.2.商品出库管理1在主菜单中选择2,进入商品出库;2输入出库商品名,判断是否已入库;3.若是,则出库该商品,再判断是否继续出库;否则,直接判断是否继续使用;具体流程如图4所示图4商品出库主菜单输入1,进入商品入库管理输入商品基本信息是否继续商品入库储存信息73.3.查询统计管理1.在主菜单中选择3,进入商品查询;2.选择查询项目1)按商品名查询:输入待查询商品名。判断库存中是否有该商品,若有,则输出该商品的信息,再判断是否继续查询,否则,直接判断是否继续查询。具体流程如图5.主菜单输入2,进入商品出库管理输入待出库商品名称判断是否已入库出库该商品是否继续商品出库8图5按商品名查询2)按价格查询输入目标价格。判断库存中是否有该价格的商品,若有。则输出该价格所包含的所有的商品信息,再判断是否继续查询,否则,直接判断是否继续查询。具体流程如图6输入1,进入按商品名称查询管理判断库存中是否有该商品输出该商品信息判断是否继续查询商品查询菜单输入4,返回主菜单9图6按价格查询3)按大类查询输入目标大类。判断库存中是否有隶属于该大类的商品,若有,则输出隶属于该大类的的所有商品的信息,再判断是否继续查询,否则直接判断是否继续查询。具体流程如图7输入2,进入按价格查询管理判断库存中是否有该价目的商品输出该价目所有商品的信息判断是否继续查询商品查询菜单输入4,返回主菜单10图7按大类查询4)返回返回主菜单。3.4.商品报损管理1.在主菜单中选择4,进入商品报损管理。2.输入欲报损商品名称,判断库存中是否存在该商品,若存在,则更改商品信息,再判断是否继续报损,否则直接判断是否继续报损。具体流程如图8所示输入3,进入按大类查询管理判断库存中是否有隶属于该类的商品输出该类包含商品信息判断是否继续查询商品查询菜单输入4,返回主菜单11图8商品报损3.5.退出系统在主菜单中选择5,输出系统设置话语,退出系统。主菜单输入4,进入商品报损管理输入欲报损商品名称判断库存中是否有该商品更改商品信息是否继续商品报损12二)程序源代码//main.cpp#includeiostream#includestring#includefstream#includecassert#includeiomanip#includeconio.husingnamespacestd;//仓库管理员类classadmin{public:admin();private:stringname;};//仓库货架类classshelf{public:shelf();private:adminmen;//管理员stringstoreNo;//仓库编号stringkinds;//商品大类stringshelfNo;//货架号};//electricalclassclassele{public:ele();private:stringname;//商品名doubleprice;//价格13shelfsh;//所属货架longcount;//商品数量};//管理(组合类)classmana{public:mana();charfirst_face();//首页voidwelcome();//系统登录voidin_storage();//入库voidout_storage();//出库voidselect_ele();//查询voidselect_name();//按商品名称查询voidselect_price();//按商品价格查询voidselect_kind();//按大类查询voidcall_break();//商品报损private:eleaele;shelfashelf;adminabs;};//电器类默认构造函数ele::ele():sh(){name=xxx;//商品名price=0.0;//价格count=0;//商品数量}////仓库货架类默认构造函数shelf::shelf():men(){storeNo=xxx;//仓库编号kinds=xxx;//商品大类shelfNo=xxx;;//货架号}//仓库管理员类14admin::admin(){name=xxx;}//管理类默认构造函数mana::mana():aele(),ashelf(),abs(){}voidmana::welcome()//登录系统{charname[10],code[20];coutendl\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆endl\t\t◆◆endl\t\t◆欢迎进入◆endl\t\t◆商场管理系统◆endl\t\t◆◆endl\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆endlendlendl;cout请输入用户名和密码(以空格隔开):\n;cinnamecode;while((strcmp(name,小米)!=0)||(strcmp(code,19930409)!=0)){cout用户名或密码输入有误,请重新输入!\n;cinnamecode;}}charmana::first_face(){system(cls);coutendl;coutendl\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◆◆15endl\t\t◆5.退出系统◆endl\t\t◆◆endl\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆endlendl\t\t;returngetch();}//入库voidmana::in_storage(){system(cls);stringname;//商品名doubleprice;//价格stringstoreNo;//仓库编号stringkinds;//商品大类stringshelfNo;//货架号longcount=0;//商品数量coutendl商品入库,请输入相关信息:endlendl;cout\t商品名称:;cinname;coutendl\t商品价格:;cinprice;coutendl\t商品数量:;cincount;coutendl\t仓库编号:;cinstoreNo;coutendl\t商品大类:;cinkinds;coutendl\t货架编号:;cinshelfNo;ofstreamstoreFile(store.txt,ios::app);storeFilesetiosflags(ios::left)setw(20)namesetw(15)pricesetw(10)countsetw(10)storeNosetw(20)kindsshelfNoendl;storeFile.close();coutendlendl\t该商品已经入库.......endlendl\t;system(pause);}16//出库voidmana::out_storage(){system(cls);stringname;//商品名coutendl\t商品出库,输入出库商品信息:endlendl;cout\t商品名称:;cinname;ifstreamstoreFile(store.txt);if(!storeFile){ofstreamstoreFile1(store.txt);storeFile1.close();coutendlendl\t仓存为空!!!!endlendl\t;system(pause);return;}boolflag=false;stringname1;//商品名doubleprice1;//价格stringstoreNo1;//仓库编号stringkinds1;//商品大类stringshelfNo1;//货架号longcount1=0;//商品数量ofstreamtempFile(temp.txt);while(storeFilename1price1count1storeNo1kinds1shelfNo1){if(name1==name)flag=true;else{tempFileseti