-1-目录(1)实践任务书....,............................................1(2)总体设计方案...............................................21.设计分析...................................................22.模块设计...................................................33.流程图.....................................................3(3)使用说明及运行实例.........................................41.系统首页...................................................42.操作主页...................................................43.功能模块...................................................5(1)新增图书...............................................5(2)更改图书...............................................5(3)删除图书...............................................6(4)查找图书...............................................6(5)统计图书...............................................7(6)清空全部...............................................7(7)退出系统...............................................8(4)成员设计内容简介...........................................9(5)项目源程序代码.............................................10(6)课程设计心得...............................................191.设计心得体会(侯想).........................................192.设计心得体会(孙昱).........................................203.设计心得体会(周易).........................................21(7)成绩评定及评语.............................................22-2-(一)设计任务书1.题目:图书管理系统2.程序功能组成:程序为图书管理系统。包括以下功能:图书增添,修改,删除,统计,查找,清空记录。3.成员组成与分工:(1)成员组成:机械1309侯想机械1309周易机械1309孙昱(2)分工:人员:侯想周易孙昱分工:1.模块设计2.报告修改1.程序美化程序调试2.报告设计制作1.模块设计2.报告修改(3)进度安排:时间:进度安排:实施情况:6月23日自由组队,选择设计项目,明确分工。按时完成6月24日—26日小组成员进行模块设计,包括编写、查找代码,运行调试代码。按时完成6月27日—28日进行程序代码的组合,调试。按时完成7月1日—2日进行程序的运行,检查,修改。按时完成7月3日—4日提交,答辩。按时完成-3-(二)总体设计方案1.设计分析(1)系统功能:图书管理系统基本功能:增加,更改,查找,删除;全部图书记录的统计与显示;快捷清空所有图书记录。(2)系统要求:数据成员charname[StrNum];用来存放书名。charnumber[StrNum];用来存放图书的编号。charkind[Type];用来存放图书的类型。inttag;定义删除标记。intnum;定义图书编号为整形。intadd;增加标记。函数成员Book(){}无参构造函数,用于为书名和作者姓名设置默认值。chargetkind()用于获取图书类型。chargetname()用于获取书名。intgetnum()用于获取图书编号。intgettag()用于获取删除标记。voidsetname(charna[])用于设置书名。voidsetkind(charkin[])用于设置类型。voidsetauthor(charau[])用于设置作者。voidsetpress(charpr[])用于设置出版社。voiddelbook()用于删除图书。voidaddbook(intn,char*na,char*kin,char*au.char*pr)用于增加图书。voiddisp()用于输出图书。(3)系统特点:-4-操作界面有颜色(背景蓝,字体白);功能齐全;系统稳定,无bug。2.模块设计共七个模块:(1)新增图书按编号,书名,类型,作者,出版社信息顺序添加图书;(2)更改图书按编号查找图书,然后进行信息更改录入;(3)删除图书按编号查找图书,然后进行删除工作;(4)查找图书根据编号查找图书;(5)统计图书显示系统所以已录入图书信息;(6)清空全部一次性清空系统记录,慎用(无恢复功能);(7)退出系统3.流程图系统首页操作主页退出系统新增图书更改图书删除图书查找图书统计图书清空全部按图书五项基本信息录入按编号选择图书,修改信息-5-(三)使用说明及运行实例1.系统首页注)选择1才正式进入操作图书管理系统,选择0退出系统。2.操作主页注)输入数字1-6进入相应操作模块,输入0则退出系统。-6-3.功能模块(1)新增图书注)进入“新增图书”模块后,分别输入图书的编号,类型,书名,作者,出版社,回车结束操作。(2)更改图书注)进入“更改图书”模块后,输入对应需要更改的类容。-7-(3)删除图书注)进入“删除图书”模块后,输入图书编号,键入y确认删除,n取消删除。(4)查找图书注)进入“查找图书”模块后,输入图书编号,回车后则显示所查找图书,且同时显示图书的信息。-8-(5)统计图书注)进入“统计图书”模块后,即会显示所以系统保存的图书信息。(6)清空全部注)进入“新增图书”模块后,键入y确认清空,n取消清空。-9-(7)退出系统注)在功能模块,键入0,即会返回系统首页。若需重新操作,参考前面类容介绍;若需退出系统,则再键入0,回车,然后任意键退出系统。-10-(四)成员设计内容简介成员设计工作表及简介姓名侯想孙昱周易设计类容1.图书增加加入图书书名,作者,编号,类型,出版社五种信息,录入记录。2.图书显示加入编号显示图书记录与信息。3.图书统计显示所以图书记录。4.设计报告修改进行报告后期修改。1.图书删除加入删除指定编号图书信息与记录,带有确认提示。2.图书清空加入清空所以图书记录信息,带有确认提示系统。3.图书更改加入按编号显示查找出需修改的图书,然后进行信息修改。1.系统修改修改源代码,美化操作界面,添加蓝色背景白色字体代码。2.程序调试调试程序,查看是否存在bug,修复不合理地方。3.报告设计与制作进行报告结构设计与简单制作,明确设计报告具体内容。-11-(五)项目源程序代码程序源代码:/*****************************************************************************************/#defineStrNum20#defineType20#includeiostream#includeiomanip#includestring#includefstream//输入/输出文件流类usingnamespacestd;constintMaxb=100;//最多可存储的图书classBook{private:inttag;//删除标记intnum;//图书编号intadd;//增加标记charnumber[StrNum];//编号charname[StrNum];//书名charkind[Type];//图书类型charauthor[StrNum];//图书作者charpress[StrNum];//出版社public:Book(){}chargetkind()//获取图书类型{returnkind[Type];}chargetname()//获取书名{returnname[StrNum];}chargetauthor()//获取作者-12-{returnauthor[StrNum];}chargetpress()//获取出版社{returnpress[StrNum];}intgetnum()//获取图书编号{returnnum;}intgettag()//获取删除标记{returntag;}voidsetname(charna[])//设置书名{strcpy(name,na);}voidsetkind(charkin[])//设置类型{strcpy(kind,kin);}voidsetauthor(charau[])//设置作者{strcpy(author,au);}voidsetpress(charpr[])//设置出版社{strcpy(press,pr);}voiddelbook()//删除图书{tag=1;}voidaddbook(intn,char*na,char*kin,char*au,char*pr)//增加图书{tag=0;num=n;-13-strcpy(name,na);strcpy(kind,kin);strcpy(author,au);strcpy(press,pr);}voiddisp()//输出图书{cout.flags(ios::left);//设置对齐的标志位为左coutsetw(15)numsetw(15)namesetw(13)kindsetw(10)authorsetw(10)presssetw(10)endl;}};/*****************************************************************************************/classBDatabase{private:inttop;//图书记录指针Bookbook[Maxb];//图书记录public:BDatabase()//构造函数,将book.txt读到book[]中{Bookb;top=-1;fstreamfile(book.txt,ios::in);while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;book[top]=b;}file.close();}voidclear()//全删{top=-1;}-14-intaddbook(intn,char*na,char*kin,char*au,char*pr)//增加图书{Book*p=query(n);if(NULL==p){top++;book[top].addbook(n,na,kin,au,pr);return1;}return0;}Book*query(intbookid)//查找图书{for(inti=0;i=top;i++)if(book[i].getnum()==bookid&&book[i].gettag()==0){return&book[i];}returnNULL;}voidbookdata();//图书库v