还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
面向对象技术与C++课程设计报告题目图书馆管理系统院(系)计算机科学与工程学院专业信息对抗专业班级130609学生许明龙学号130609116指导教师姜虹2014年7月摘要随着计算机技术的飞速发展,电子信息化慢慢替代了企业管理的传统管理手法,采用管理系统是能够有效提高管理效率的图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅为了提高日常的图书管理效率,本文针对通常的图书管理流程,设计了一个面向对象图书管理系统本系统中包含六个功能模块图书馆基本信息,借书,还书,读者维护,图书维护,___维护sum__ryWiththerapiddevelopmentofcomputertechnologyelectronicinfor__tiontechnologygraduallyrepla__dthetraditional__nagementofenterprise__nagementmethods__nagementsystemcaneffectivelyimprovetheefficiencyof__nagement.Libraryasakindofinfor__tionresour__collectionanddistribution__nterlibraryanduserlendingdataisvariouscontainsalotofinfor__tiondata__nagementtodaytherearealotoflibrariesarepreliminarystartedusinghasntevenuseacomputerforinfor__tion__nagement.Iflibrariesadopt__nualapproachtoartificial__nagementbooksand__terialsandlibrarybecausethe__terialisvarious__nualpro__ssingworkloadisbigtheoverall__nagementefficiencyislowalsonotconvenienttoreadersofbooksand__terialsinspection.Inordertoimprovetheefficiencyofbooks__nagementthispaperusuallybooks__nagementpro__ssesano__ect-orientedbooks__nagementsystem__nagementsystemisdesigned.Thissystemcontainssixmodules:basicinfor__tionlibrarybooksandbooksthereader__intenan____intenan__administratorsto__intain.目录TOC\o1-2\h\z1引言
11.1问题的提出
11.2国内外研究的现状
11.3任务与分析12程序的主要功能
22.1添加功能
22.2删除功能
22.3删除全部职员信息
22.4显示功能
22.5查找功能
22.6修改功能
22.7借书、还书23程序运行平台34总体设计45程序类的说明56模块分析
86.1添加模块
86.2显示模块
86.3修改模块
86.4查找模块
86.5删除模块
86.6清空模块87系统测试98结论10____
111.1课题背景意义在学校现代化的管理中,图书馆管理系统也是其中非常重要的一部分,然而,用大型软件系统来于小型的图书管理,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种管理自然有十分重要作用某图书馆需要管理其各种人员信息和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书馆
1.2国内外研究的现状国内在信息化这一方面做的没有国外好,因此现在需要大量这样的程序人员,图书馆管理系统这一块也需要做大量改进
1.5任务与分析本课题主要的目的是………建立一个图书馆管理系统可以处理以下对象.图书馆基本信息.图书馆的书籍.图书馆___.读者信息
2.程序的主要功能
1.查询图书馆的总信息
2.查询图书馆___的信息
3.查询图书馆藏书信息
4.存入新书
5.存入新的___的信息
6.修改___的信息增__龄加薪
7.根据书名检索书刊信息
8.查询读者的借阅信息
9.查询读者信息
10.图书和___等信息应存放在不同的文件中,便于查询流程图-----------------------------------------------借书失败输入读者姓名书不存在
2.1添加功能添加一个读者的基本信息,包括姓名、编号;添加一本书的基本信息,书名、编号;添加一个图书___的基本信息,姓名、员工号、工资、工龄
2.2删除功能能够对一个读者、图书___、一本书的信息进行删除按姓名进行删除
2.3删除全部成员信息能够对于全部读者和员工的信息进行删除!
2.4显示功能显示所有读者、图书、员工的主要信息包括姓名或书名,编号等
2.5查找功能根据你键入的编号,显示其详细信息!
2.6修改功能对读者、图书、员工的信息进行修改
2.7借书、还书输入读者编号和要借或要还的书处理并把信息存在读者信息内3程序运行平台VC++
6.0具体操作如下新建……文件,创建C++sour__file……,写入程序再编译,链接,执行等4总体设计图
4.1系统总体框架图5程序类的说明___信息输出类的声明classLibrarian{private:inttag;intno;//编号charname
[10];intworkage;//工龄intsalary;public:Librarian{}char*getname{returnname;}intgettag{returntag;}intgetno{returnno;}voidsetnamecharna[]{strcpynamena;}voiddelworker{tag=1;}voidaddlibrarianintnchar*na//增加___{tag=0;no=n;strcpynamena;workage=0;salary=2000;}voiddisp//读出___信息{coutsetw5nosetw5name工龄:setw3workage工资:setw5salaryendl;}};读者信息输出类的声明classReader{private:inttag;//删除标记1:已删0:未删intno;//读者编号charname
[10];//读者姓名intborbook[__xbor];//所借图书public:Reader{}char*getname{returnname;}//获取姓名intgettag{returntag;}//获取删除标记intgetno{returnno;}//获取读者编号voidsetnamecharna[]//设置姓名{strcpynamena;}voiddelbook{tag=1;}//设置删除标记1:已删0:未删voidaddreaderintnchar*na//增加读者{tag=0;no=n;strcpynamena;forinti=0;i__xbor;i++borbook[i]=0;}voidborrowbookintbookid//借书操作{forinti=0;i__xbor;i++{ifborbook[i]==0{borbook[i]=bookid;return;}}}intretbookintbookid//还书操作{forinti=0;i__xbor;i++{ifborbook[i]==bookid{borbook[i]=0;return1;}}return0;}voiddisp//读出读者信息{coutsetw5nosetw10name借书编号[;forinti=0;i__xbor;i++ifborbook[i]!=0coutborbook[i]|;cout]endl;}};6模块分析
6.1添加模块在各个成员维护中都有添加操作如新增___switchchoi__{case1:cout输入___编号:;cinworkerid;cout输入___姓名:;cinwname;addlibrarianworkeridwname;break;}intaddlibrarianintnchar*na//添加___时先查找是否存在{Librarian*p=queryn;ifp==NULL{top++;work[top].addlibrariannna;return1;}return0;}
6.2显示模块显示模块将输出所有成员的信息如现实___的信息Switchchoi__{case5:disp;break;break;}voiddisp//输出所有___信息{forinti=0;i=top;i++work[i].disp;}
6.3修改模块首先由用户输入要修改的成员的姓名,然后系统用修改函数查找,显示该名成员的资料,然后系统提示用户输入需要修改的项目和新的资料如修改___的信息Switch(chio__{case2:cout输入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}cout输入新的姓名:;cinwname;w-setnamewname;break;}
6.4查找模块首先由用户输入要查找的成员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的成员资料如___case4:cout读入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}w-disp;break;
6.5删除模块首先由用户输入要删除的单个成员员姓名,然后调用删除函数,删除该名职员的资料如___的删除case3:cout输入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}w-delworker;break;……
6.6清空模块系统将会把所有成员的资料全部删除,将链表清空如___Switchchoi__{case6:clear;break;}voidclear//删除所有___信息{top=-1;}……7系统测试首先进入VC++
6.0,打开文件:图书馆管理系统.cpp,然后进入源程序,接着构建运行图12选择界面上的1查看图书馆基本信息图2图33.选择0返回到主界面如图1可选择4进行读者维护然后进行新增、删除、修改等操作如图3最后返回主界面进行下一步操作图
44.选择5进行___维护同上面相同如图5图
55.选1借书操作如图6然后可以查看读者的借书情况如图7图6图78总结本程序使用了3个类图书类,读者类,___类使用链表进行储存,查找时按照节点顺序依次查照根据输入的结果调用相应函数,图书馆的基本功能大都能够实现9结论我的这个图书馆管理系统做的不是很好,有些基本功能能够实现,虽然有借书、还书以及对读者、___、图书的维护,但是有很多细节操作没有体现出来,所以需要进一步改正,如可以对读者增加派生类实现对学生、研究所、老师等的区别,还有文件的保存也需要改进通过本次课程设计,让我对C++有了进一步的了解和使用,能把学了的东西用于实践还是让我非常有成就感,但是不足的是对类、派生类还有指针以及文件的运用掌握的不是很好,所以我会在假期内通过多看书反复操作提高自己的编程能力在这里还要感谢诸位老师的支持和信赖附录附录1源代码清单#includeiostream.h#includeio__nip.h#includestring.h#includefstream.hconstint__xr=100;//最多的读者constint__xb=100;//最多的图书constint__xbor=5;//每位读者最多借五本书//___类classLibrarian{private:inttag;intno;//编号charname
[10];intworkage;//工龄intsalary;public:Librarian{}char*getname{returnname;}intgettag{returntag;}intgetno{returnno;}voidsetnamecharna[]{strcpynamena;}voiddelworker{tag=1;}voidaddlibrarianintnchar*na//增加___{tag=0;no=n;strcpynamena;workage=0;salary=2000;}voiddisp//读出___信息{coutsetw5nosetw5name工龄:setw3workage工资:setw5salaryendl;}};//___类库,实现建立___的个人资料classLDatabase{private:inttop;//___记录指针Librarianwork
[20];//___记录public:LDatabase//构造函数,将worker.___读到work[]中{Librarianx;top=-1;fstreamfileworker.___ios::in;//打开一个输入文件while1{file.readchar*xsizeofx;if!filebreak;top++;work[top]=x;}file.close;//关闭worker.___}voidclear//删除所有___信息{top=-1;}intaddlibrarianintnchar*na//添加___时先查找是否存在{Librarian*p=queryn;ifp==NULL{top++;work[top].addlibrariannna;return1;}return0;}Librarian*queryintworkerid//按编号查找{forinti=0;i=top;i++ifwork[i].getno==workeridwork[i].gettag==0{returnwork[i];}returnNULL;}voiddisp//输出所有___信息{forinti=0;i=top;i++work[i].disp;}voidworkerdata;//___库维护~LDatabase//析构函数,将work[]写到worker.___文件中{fstreamfileworker.___ios::out;forinti=0;i=top;i++ifwork[i].gettag==0file.writechar*work[i]sizeofwork[i];file.close;}};voidLDatabase::workerdata{charchoi__;charwname
[20];intworkerid;Librarian*w;whilechoi__!=0{cout\n\n\t\t\t___维护\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出endl;cinchoi__;switchchoi__{case1:cout输入___编号:;cinworkerid;cout输入___姓名:;cinwname;addlibrarianworkeridwname;break;case2:cout输入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}cout输入新的姓名:;cinwname;w-setnamewname;break;case3:cout输入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}w-delworker;break;case4:cout读入___编号:;cinworkerid;w=queryworkerid;ifw==NULL{cout该___不存在endl;break;}w-disp;break;case5:disp;break;case6:clear;break;default:cout输入错误,请从新输入;break;}}};//读者类实现对读者的信息的描述classReader{private:inttag;//删除标记1:已删0:未删intno;//读者编号charname
[10];//读者姓名intborbook[__xbor];//所借图书public:Reader{}char*getname{returnname;}//获取姓名intgettag{returntag;}//获取删除标记intgetno{returnno;}//获取读者编号voidsetnamecharna[]//设置姓名{strcpynamena;}voiddelbook{tag=1;}//设置删除标记1:已删0:未删voidaddreaderintnchar*na//增加读者{tag=0;no=n;strcpynamena;forinti=0;i__xbor;i++borbook[i]=0;}voidborrowbookintbookid//借书操作{forinti=0;i__xbor;i++{ifborbook[i]==0{borbook[i]=bookid;return;}}}intretbookintbookid//还书操作{forinti=0;i__xbor;i++{ifborbook[i]==bookid{borbook[i]=0;return1;}}return0;}voiddisp//读出读者信息{coutsetw5nosetw10name借书编号[;forinti=0;i__xbor;i++ifborbook[i]!=0coutborbook[i]|;cout]endl;}};//读者类库,实现建立读者的个人资料classRDatabase{private:inttop;//读者记录指针Readerread[__xr];//读者记录public:RDatabase//构造函数,将reader.___读到read[]中{Readers;top=-1;fstreamfilereader.___ios::in;//打开一个输入文件while1{file.readchar*ssizeofs;if!filebreak;top++;read[top]=s;}file.close;//关闭reader.___}voidclear//删除所有读者信息{top=-1;}intaddreaderintnchar*na//添加读者时先查找是否存在{Reader*p=queryn;ifp==NULL{top++;read[top].addreadernna;return1;}return0;}Reader*queryintreaderid//按编号查找{forinti=0;i=top;i++ifread[i].getno==readeridread[i].gettag==0{returnread[i];}returnNULL;}voiddisp//输出所有读者信息{forinti=0;i=top;i++read[i].disp;}voidreaderdata;//读者库维护~RDatabase//析构函数,将read[]写到reader.___文件中{fstreamfilereader.___ios::out;forinti=0;i=top;i++ifread[i].gettag==0file.writechar*read[i]sizeofread[i];file.close;}};voidRDatabase::readerdata{charchoi__;charrname
[20];intreaderid;Reader*r;whilechoi__!=0{cout\n\n\t\t\t读者维护\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出endl;cinchoi__;switchchoi__{case1:cout输入读者编号:;cinreaderid;cout输入读者姓名:;cinrname;addreaderreaderidrname;break;case2:cout输入读者编号:;cinreaderid;r=queryreaderid;ifr==NULL{cout该读者不存在endl;break;}cout输入新的姓名:;cinrname;r-setnamername;break;case3:cout输入读者编号:;cinreaderid;r=queryreaderid;ifr==NULL{cout该读者不存在endl;break;}r-delbook;break;case4:cout读入读者编号:;cinreaderid;r=queryreaderid;ifr==NULL{cout该读者不存在endl;break;}r-disp;break;case5:disp;break;case6:clear;break;default:cout输入错误,请从新输入;break;}}}//图书类,实现对图书的描述,图书的编号,书名,借出,还入等classBook{private:inttag;//删除标记1:已删0:未删intno;//图书编号charname
[20];//书名intonshelf;//是否再架1:再架2:已借public:Book{}char*getname{returnname;}//获取姓名intgetno{returnno;}//获取图书编号intgettag{returntag;}//获取删除标记voidsetnamecharna[]//设置书名{strcpynamena;}voiddelbook{tag=1;}//删除图书voidaddbookintnchar*na//增加图书{tag=0;no=n;strcpynamena;onshelf=1;}intborrowbook//借书操作{ifonshelf==1{onshelf=0;return1;}return0;}voidretbook//还书操作{onshelf=1;}voiddisp//输出图书{coutsetw6nosetw18namesetw10onshelf==1在架:已借endl;}};//图书库类,实现对图书的维护,查找,删除等classBDatabase{private:inttop;//图书记录指针Bookbook[__xb];//图书记录public:BDatabase//构造函数,将book.___读到book[]中{Bookb;top=-1;fstreamfilebook.___ios::in;while1{file.readchar*bsizeofb;if!filebreak;top++;book[top]=b;}file.close;}voidclear//全删{top=-1;}intaddbookintnchar*na//增加图书{Book*p=queryn;ifNULL==p{top++;book[top].addbooknna;return1;}return0;}Book*queryintbookid//查找图书{forinti=0;i=top;i++ifbook[i].getno==bookidbook[i].gettag==0{returnbook[i];}returnNULL;}voidbookdata;//图书库维护voiddisp{forinti=0;i=top;i++ifbook[i].gettag==0book[i].disp;}~BDatabase//析构函数,将book[]写到book.___文件中{fstreamfilebook.___ios::out;forinti=0;i=top;i++ifbook[i].gettag==0file.writechar*book[i]sizeofbook[i];file.close;}};voidBDatabase::bookdata{charchoi__;charbname
[40];intbookid;Book*b;whilechoi__!=0{cout\n\n\n\t\t\t图书维护endlendl;cout\t\t1新增\n\t\t2更改\n\t\t3删除\n\t\t4查找\n\t\t5显示\n\t\t6全删\n\t\t0退出endl;cinchoi__;switchchoi__{case1:cout输入图书编号:endl;cinbookid;cout输入图书书名:endl;cinbname;addbookbookidbname;break;case2:cout输入图书编号:endl;cinbookid;b=querybookid;ifb==NULL{cout该图书不存在endl;break;}cout输入新的书名:endl;cinbname;b-setnamebname;break;case3:cout读入图书编号:endl;cinbookid;b=querybookid;ifb==NULL{cout该图书不存在endl;break;}b-delbook;break;case4:cout读入图书编号:endl;cinbookid;b=querybookid;ifb==NULL{cout该图书不存在endl;break;}b-disp;break;case5:disp;break;case6:clear;break;default:cout输入错误,请从新输入:;}}}//__in函数的实现,程序的主界面的引导void__in{charchoi__;intbookidreaderidworkerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;LDatabaseLibrarianDB;Librarian*w;whilechoi__!=0{coutendlendl\t\t\t图书管理系统\n\n\n;cout\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\t6___维护\n\n\t\t\t0离开endl;cinchoi__;switchchoi__{case1:cout西安工业大学图书馆成立于1956年她历史悠久、藏书丰富、建筑宏伟、环境幽雅,文化底蕴浓厚校图书馆现由金花馆和未央馆组成,总建筑__达
4.7万平方米入口门禁系统实行计算机管理,可以采集进馆人员的数据和产生详细的进馆记录,各种不同功能的阅览室20多个,可同时接纳5000多位读者进馆阅览经过50余年的发展,我馆馆藏纸本图书1420000册件、中外文期刊近4800余种在信息化建设上,馆内有500多个有线信息点,无线网络部分覆盖图书馆,每层公共区域都为读者配备了检索机;图书馆网络中心通过万兆光纤与学校网络中心相连,可供上万名读者获取图书馆文献信息;与省内高校图书馆和省级科技信息研究机构建立协作,可以跨空间享用资源;break;case2:cout借书读者编号:;cinreaderid;cout图书编号;cinbookid;r=ReaderDB.queryreaderid;//按编号查找ifNULL==r{cout不存在该读者,不能借书endl;break;}b=BookDB.querybookid;ifb==NULL{cout不存在该图书,不能借书endl;break;}ifb-borrowbook==0{cout该图书已借出,不能借书endl;break;}r-borrowbookb-getno;break;case3:cout还书\n读者编号:;cinreaderid;cout图书编号:;cinbookid;r=ReaderDB.queryreaderid;ifr==NULL{cout不存在该读者,不能还书endl;break;}b=BookDB.querybookid;ifb==NULL{cout不存在该图书,不能还书endl;break;}b-retbook;r-retbookb-getno;break;case4:BookDB.bookdata;break;case5:ReaderDB.readerdata;break;case6:LibrarianDB.workerdata;break;default:cout输入错误,请从新输入;}}}附录2软件使用说明根据主界面的引导一步步操作,注意要先增加图书、读者、___的信息才可以进行其他操作,因为在程序运行前文件是空的,所以要先添加内容_______《面向对象程序设计》《面向对象程序设计课程设计》验证验证输入书号借书成功输入姓名登陆验证读者注册主函数借书信息还书信息读者维护空信息图书维护___维护退出。