《高级语言程序设计》课程设计报告设计题目图书管理系统专业计算机科学与技术班级姓名学号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.总结通过这次课程设计,让我了解了更多关于设计时容易出现的错误,而且进一步的认识到平时学习积累的重要性。