您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 图书管理课程设计.doc
江苏工业学院课程设计第1页共19页1.需求分析1.1可行性分析因近几年学校对大学生的扩招,相应专业种类的增加,学校对相关于专业方面的图书需求量增大。图书馆对图书的库存量也相应增多。由老式的由图书管理员进行人工对图书入库,借出等操作,工作量相当大,就目前情况来看,图书管理员几乎不可能及时完成工作。所以学校决定开发一个图书信息管理系统,协同图书管理员的工作,这样管理员不必花太多时间用于整理图书,而可以集中精力做其他更重要的图书管理工作。减少管理员的工作负担。学校要求本系统具体能实现的功能要求如下:图书信息的录入、查询、修改、删除、排序、输出。图书信息可写入文件,也可从文件中读取。1.2模块分析结合本校的实际情况并经认真分析,为此我将其分成两个模块,由两个类实现:1.2.1book类。主要封装了图书信息。Book类的数据成员有:bookID(string,图书编号),bookName(string,图书名),publish(Publish,出版社),author(string,图书作者),version(int,图书版本),count(int,图书册数)。1.2.2Publish类。主要封装了出版社信息。Publish类的数据成员:pTime(string(yyyy-mm-rr),出版时间),address(string,出版社地址),pName(string,出版社名称)1.3输入,输出分析:数据存储方式:数组输入:用户根据自己的需要,选择序号进行操作输出:经系统内部的一系列处理,将最终结果显示给用户。江苏工业学院课程设计第2页共19页1.4流程分析本系统的具体流程图如下:进入图书系统欢迎界面根据界面序号提示,选择相关操作:1:录入相关图书信息是否继续操作2:查询相关图书信息是否继续操作3:修改相关图书信息是否继续操作4:对相关图书排序是否继续操作5:输出所有图书信息是否继续操作6:退出系统yes/noyesNo退出系统(yes/no)yesNo退出系统YesNo江苏工业学院课程设计第3页共19页2详细设计与实现2.1UML类图实现本系统主要抽象乘两个类Book与Publish。他们之间的关系如下:2.2编程思想该应用共有五个文件,两个头文件,三个源文件:————对Book的具体实现————主函数————对Publish的具体实现————对Book类的声明————对Publish类的声明江苏工业学院课程设计第4页共19页2.3代码实现2.3.1Book.h源程序如下#includeiostream#includestring#includepublish.husingnamespacestd;#ifndefBOOK_H#defineBOOK_HclassBook{private:stringbookID;//书的编号,不同的书不同的编号stringbookName;//书的名称stringauthor;//书的作者stringbookType;//书的类型Publish*publish;//声明一个指针类intversion;//书的版本号intcount;//该书的册数public:Book();//无参构造函数voidset_bookID(stringid);//设置书的编号stringget_bookID();//获取书的编号voidset_bookName(stringname);//设置书名stringget_bookName();//获取书名voidset_author(stringauthor);//设置书作者stringget_author();//获取书的作者voidset_bookType(stringtype);//设置书的类型stringget_bookType();//获取书的类型voidset_publish(Publish&publish);//设置出版社信息Publishget_publish();//获取出版社信息voidset_version(intversion);//设置书的版本intget_version();//获取书的版本号voidset_count(intcount);//设置书的册数intget_count();//获取书的册数voidaddInfo();//录入相关图书信息boolsearchInfo(stringid);//查找相关图书信息voidmodifyInfo(stringid);//修改相关图书信息friendvoidsortInfo(Bookbook[],intn);//对相关图书排序voiddisplay();//输出图书信息Bookoperator=(Booktemp);staticintbookCount;friendboolisContinue();//声明友原函数,判断是否继续操作};#endif江苏工业学院课程设计第5页共19页2.3.1Publish.h源程序如下#includestringusingnamespacestd;#ifndefPUBLISH_H#definePUBLISH_HclassPublish{private:stringpTime;stringaddress;stringname;public:Publish();//无参构造函数Publish(stringtime,stringadd,stringname);//带参构造函数voidset_pTime(stringtime);//设置出版时间stringget_pTime();//获取出版时间voidset_address(stringadd);//设置出版社地址stringget_address();//获取出版社地址voidset_name(stringname);//设置出版社名称stringget_name();//获取出版社名称};#endif2.3.3Book.cpp的源程序如下#includeiostream#includefstream#includestring#includepublish.h#includebook.husingnamespacestd;intBook::bookCount=0;//书的总类数,不同编号的书代表一类Book::Book(){bookID=1;bookName=C++编程技术;author=郑立;bookType=IT类;publish=newPublish();//动态分配,后面一定要用delete,否则容易产生内存泄露version=1;江苏工业学院课程设计第6页共19页count=1;}voidBook::set_bookID(stringid){bookID=id;}stringBook::get_bookID(){returnbookID;}voidBook::set_bookName(stringname){bookName=name;}stringBook::get_bookName(){returnbookName;}voidBook::set_author(stringauth){author=auth;}stringBook::get_author(){returnauthor;}voidBook::set_bookType(stringtype){bookType=type;}stringBook::get_bookType(){returnbookType;}voidBook::set_publish(Publish&pub){publish-set_pTime(pub.get_pTime());publish-set_name(pub.get_name());publish-set_address(pub.get_address());}PublishBook::get_publish(){return*publish;}江苏工业学院课程设计第7页共19页voidBook::set_version(intver){version=ver;}intBook::get_version(){returnversion;}voidBook::set_count(intcoun){count=coun;}intBook::get_count(){returncount;}voidBook::display(){cout图书编号:bookID图书姓名:bookName图书作者:;coutauthor图书类型:bookType出版时间:publish-get_pTime();cout出版社地址:publish-get_address()出版社名称:;coutpublish-get_name()版本号:version册数:countendl;}voidBook::addInfo(){charchoice;cout输入数据按Y,退出按Nendl;cinchoice;if(choice=='Y'){stringid;stringname;stringauthor;stringtype;stringptime;stringpname;stringaddress;Publishpublish;intversion;intcount;江苏工业学院课程设计第8页共19页cout请输入图书编号:endl;cinid;set_bookID(id);cout请输入图书名称:endl;cinname;set_bookName(name);cout请输入图书作者:endl;cinauthor;set_author(author);cout请输入图书类型:endl;cintype;set_bookType(type);cout请输入出版时间:endl;cinptime;publish.set_pTime(ptime);cout请输入出版社地址:endl;cinaddress;publish.set_address(address);cout请输入出版社名称:endl;cinpname;publish.set_name(pname);cout请输入版本号:endl;cinversion;set_version(version);cout请输入册数:endl;cincount;set_count(count);coutendl;bookCount++;//总数加1writeFile();readFile();}}voidBook::readFile(){ifstreamifile(library.txt,ios_base::in);charline[9][101];for(inti=0;i9;i++){ifile.getline(line[i],100);coutendl;江苏工业学院课程设计第9页共19页coutline[i];}stringn=line[0];coutn;ifile.close();}voidBook::writeFile(){//创建一个文件输出流对象,采用追加方式ofstreamofile(library.txt,ios_base::app);ofile图书编号:get_bookID()endl;ofile图书名称:get_bookName()endl;ofile图书作者:get_author()endl;ofile图书类型:get_bookType()endl;ofile出版时间:publish-get_pTime()endl;ofile出版地址:publish-get_address()endl;ofile出版社名称:publish-get
本文标题:图书管理课程设计.doc
链接地址:https://www.777doc.com/doc-4264731 .html