河南城建学院《面向对象程序设计》课程设计报告书设计题目:指导老师:学生学号:学生姓名:同组人员:时间:2011年月日目录第1章选题...............................................................................................................................21.1题目背景..............................................................................................................................21.2系统实现的具体分工...........................................................................................................21.2.1标题...............................................................................................................................21.3开发环境...............................................................................................................................2第2章设计内容...........................................................................................................................32.1实现功能...............................................................................................................................32.2概要设计(涉及类的框图)..............................................................................................32.3界面设计..............................................................................................................................4第3章系统实现...........................................................................................................................53.1涉及知识点..........................................................................................................................53.2系统运行(主要运行界面抓图)......................................................................................53.3源程序清单(关键代码)..................................................................................................6第4章结束语.............................................................................................................................16第1章选题1.1题目背景随着信息时代的到来和全社会信息化、网络化建设的兴起,传统的图书管理模式和操作方法越来越不能满足用户的需要.智能化、网络化、信息化的图书管理系统应用势在必行。1.2系统实现的具体分工系统分为读者类、读者类库、图书类以及主函数等几大模块,其中读者类实现对读者信息的描述,读者类库实现建立读者的个人资料,图书类实现对图书信息的描述,main()函数实现对程序主界面的引导。1.2.1标题高校图书管理系统1.3开发环境VisualC++6.0机型:方正电脑处理器名称:Intel(R)Core(TM)2DuoCPUE7200@2.53GHz硬盘驱动器:WDCWD1600AAJS-22WAAO系统内存:金士顿内存2GB显示卡:NVIDIAGeFORCE9400GT显示器:方正科技FG981-W9操作系统:MicrosoftWindowsXPProfessional第2章设计内容2.1实现功能系统主要包括读者服务、借还图书和退出功能。用户只需先进入读者服务中注册一下就可以进行借阅、查询。2.2概要设计(涉及类的框图)高校图书管理系统读者类,实现对读者的信息的描述Reader读者类库,实现建立读者的个人资料书库的建立Book主程序main设置姓名setname增加读者addreader读出读者信息disp构造RDatabase()函数,将reader.txt读到read[]中添加、删除、查找、输出读者信息voidreaderdata()读者库维护图书命名VoidBook::borrow()借书voidBook::restore()还书主界面的输出由主界面进入子界面或退出2.3界面设计界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。结构设计StructureDesign结构设计也称概念设计(ConceptualDesign),是界面设计的骨架。该图书管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1读者服务、2借还图书、0退出。其中读者服务又下分目录1新增、2更改、3查找、4显示、5删除、0退出。借还图书一栏中详细列出了书库中所存书本的编号及书名,即1大学英语、2高等数学、3高级语言程序设计。充分体现了结构化的界面设计理念。交互设计InteractiveDesign交互设计的目的是使产品让用户能简单使用。任何产品功能的实现都是通过人和机器的交互来完成的。该图书管理系统中包含1)清楚的错误提示,误操作后,系统提供有针对性的提示。例如读者输入的姓名或编号错误时,系统会给出相应的提示,以指导读者进行正确的操作。2)使用用户的语言,而非技术的语言。3)方便退出。4)导航功能。随时转移功能,很容易从一个功能跳到另外一个功能。例如读者所需各服务间功能转换。人的因素被作为设计的核心体现出来。视觉设计VisualDesign该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。第3章系统实现3.1涉及知识点类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等3.2系统运行(主要运行界面抓图)主界面读者服务借还图书退出3.3源程序清单(关键代码)#includeiostream#includeiomanip#includestring#includecstdlib//新的,模版化的版本#includefstreamusingnamespacestd;//读者类,实现对读者的信息的描述classReader{private:inttag;//删除标记1:已删0:未删intno;//读者编号charname[10];//读者姓名intborbook[5];//所借图书public:Reader(){}char*getname(){returnname;}//获取姓名intgettag(){returntag;}//获取删除标记intgetno(){returnno;}//获取读者编号voidsetname(charna[])//设置姓名{strcpy(name,na);//strcpy()是字符串函数,用来进行字符串的复制;strcpy(x,y)把Y的数据复制到X中}voidaddreader(intn,char*na)//增加读者{tag=0;no=n;strcpy(name,na);for(inti=0;i100;i++)borbook[i]=0;}voiddisp()//读出读者信息{coutsetw(5)nosetw(10)name已成功借阅一本图书!endl;}};//------------------------------------------------------------------------------------//读者类库,实现建立读者的个人资料classRDatabase{private:inttop;//读者记录指针Readerread[100];//读者记录public:RDatabase()//构造函数,将reader.txt读到read[]中{Readers;top=-1;fstreamfile(reader.txt,ios::in);//打开一个输入文件while(1){file.read((char*)&s,sizeof(s));//sizeof返回一个对象或者类型所占的内存字节数if(!file)break;top++;read[top]=s;}file.close();//关闭reader.txt}voidclear()//删除所有读者信息{top=-1;}intaddreader(intn,char*na)//添加读者时先查找是否存在{Reader*p=query(n);if(p==NULL){top++;read[top].addreader(n,na);return1;}return0;}Reader*query(intreaderid)//按编号查找{for(inti=0;i=top;i++)if(read[i].getno()==readerid&&read[i].gettag()==0){return&read[i];}returnNULL;}voiddisp()//输出所有读者信息{for(inti=0;i=top;i++)read[i].disp();}voidreaderdata();//读者库维护~RDatabase()//析构函数,将read[]写到reader.txt文件中{fstreamfile(reader.txt,ios::out);for(inti=0;i=top;i++)if(read[i].gettag()==0)file.write((char*)&read[i],sizeof(read[i]));//sizeof()当操作数具有数组类型时,其结果是数组的总字节数file.close();}};voidRDatabase::readerdata(){charchoice;charrname[20];intreaderid;Reader*r;while(choice!='0'){cout\n\n\t\t\t读者服务\n\n\n\t\t\t1新增\n\n\t\t\t2更改\n\n\t\t\t3查找\n\n\t\t\t4显示\n\n\t\t\t5删除\n\n\t\t\t0退出endl;cout请输入您的选择:;cinchoice;switch(choice){case