您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > c++课程设计及图书管理系统(窗口界面)
C++课程设计课程设计系部:计算机应用技术系专业:计算机应用技术班级学号:姓名:一、系统功能分析:图书管理系统设计说明报告:户借阅资料繁多,包含很多的信息数据的管理。介于这一现象,我们对于图书馆的借阅管理系统进行了全面的分析处理,在信息高速发展的今天,促进图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图我的系统针对的是图书管理,面对大量纷繁复杂的图书管理工作,和不同图书的借出和归还,需要设计一个合理的系统,它应包括图书库,读者库,和图书的借还书信息建立网上电子图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,对过时、损失的图书进行删除,达到降低成本提高工作效率的目标。我的系统设计还有很多的缺点和不足,在以后的时间里要不断的完善,修改。希望老师能够指出我的不足,使其能够真正的,更好的应用在人们的生活中。二、系统设计:设计了四个类,Reader(读者类),Rdatabase(读者库类),Book(图书类)和Bdatabase(图书库类),读者类主要用于存储信息,其中包括读者的基本属性inttag删除标记1:已删,0:未删intno;读者编号charname[10];读者姓名intborbook[Maxbor];所借图书;char*getname()获取姓名intgettag()获取删除标记intgetno()获取读者编号voidsetname(charna[])设置姓名voiddelbook()设置删除标记voidaddreader(intn,char*na)增加读者voidborrowbook(intbookid)借书操作intretbook(intbookid)还书操作voiddisp()输出读者信息;读者库类包括:inttop;读者记录指针Readerread[Maxr];读者记录RDatabase()构造函数,将reader.txt读到read[]中voidclear()删除所有读者信息intaddreader(intn,char*na)添加读者时先查找是否存在Reader*query(intreaderid)按编号查找voiddisp()输出所有读者信息voidreaderdata();读者库维护~RDatabase()析构函数,将read[]写入reader.txt文件中图书类包括:inttag;删除标记1:已删0:未删intno;图书编号charname[20];书名intonshelf;是否在架1:在架0:已借char*getname(){returnname;}获得书名intgetno(){returnno;}获得书编号intgettag(){returntag;}获得删除标记voidsetname(charna[])设置书名voiddelbook()删除图书voidaddbook(intn,char*na)增加图书intborrowbook()借书操作voidretbook()还书操作voiddisp()输出图书图书库类包括:inttop;图书记录指针Bookbook[Maxb];图书记录BDatabase()构造函数,将book.txt读到book[]中voidclear()全删intaddbook(intn,char*na)增加图书Book*query(intbookid)查找图书voidbookdata();图书库维护~Bdatabase析构函数,将book[]写入book.txt文件中Reader(读者类)InttagIntnoCharname[10]Intborbook[maxbor]Reader()Char*getname()Intgettag()Intgetno()Voidsetname(charna[])Voiddelreader()Voidaddreader(intn,char*na)Voidborrowbook(intbookid)Intretbook(intbookid)Voiddisp()Rdatabase(读者库类)InttopReaderread[maxr]Rdatabase()Voidclear()Intaddreader(intn,char*na)Reader*query(intreaderid)Voiddisp()Voidreaderdata()~Rdatabase()Book(图书类)InttagIntnoCharname[20]IntoneselfBook()Char*getname()Intgetno()Intgettag()Voidsetname(charna[])Voiddelbook()Voidaddbook(intn,char*na)Voidborrowbook()Intretbook()Voiddisp()Bdatabase(图书库类)InttopBookbook[maxb]BDatabase()Voidclear()Intaddbook(intn,char*na)book*query(intbookid)Voiddisp()Voidbookdata()~BDatabase()三、代码编写:#includeiostream.h#includeiomanip.h#includestring.h#includefstream.hconstintMaxr=100;constintMaxb=100;constintMaxbor=5;classReader{inttag;intno;charname[10];intborbook[Maxbor];public:Reader(){}char*getname(){returnname;}intgettag(){returntag;}intgetno(){returnno;}voidsetname(charna[]){strcpy(name,na);}voiddelbook(){tag=1;}voidaddreader(intn,char*na){tag=0;no=n;strcpy(name,na);for(inti=0;iMaxbor;i++)borbook[i]=0;}voidborrowbook(intbookid){for(inti=0;iMaxbor;i++)if(borbook[i]==0){borbook[i]=bookid;return;}}intretbook(intbookid){for(inti=0;iMaxbor;i++)if(borbook[i]==bookid){borbook[i]=0;return1;}return0;}voiddisp(){coutsetw(5)nosetw(10)name借书编号:[;for(inti=0;iMaxbor;i++)if(borbook[i]!=0)coutborbook[i]|;cout]endl;}};classRDatabase{inttop;Readerread[Maxr];public:RDatabase(){Readers;top=-1;fstreamfile(reader.txt,ios::in);while(1){file.read((char*)&s,sizeof(s));if(!file)break;top++;read[top]=s;}file.close();}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++){if(read[i].gettag()==0)read[i].disp();}}voidreaderdata();~RDatabase(){fstreamfile(reader.txt,ios::out);for(inti=0;i=top;i++)if(read[i].gettag()==0)file.write((char*)&read[i],sizeof(read[i]));file.close();}};voidRDatabase::readerdata(){intchoice=1;charrname[20];intreaderid;Reader*r;while(choice!=0){if(choice!=0){cout读者维护endl1:新增2:更改3:删除4:查找5:显示6:全删0:退出=;cinchoice;if(choice==0)continue;if(choice==1){cout输入读者编号:;cinreaderid;cout输入读者姓名:;cinrname;addreader(readerid,rname);}elseif(choice==2){cout输入读者编号:;cinreaderid;r=query(readerid);if(r==NULL){cout该读者不存在endl;continue;}cout输入新的姓名:;cinrname;r-setname(rname);}elseif(choice==3){cout输入读者编号:;cinreaderid;r=query(readerid);if(r==NULL){cout该读者不存在endl;continue;}r-delbook();}elseif(choice==4){cout输入读者编号:;cinreaderid;r=query(readerid);if(r==NULL){cout该读者不存在endl;continue;}r-disp();}elseif(choice==5)disp();elseif(choice==6)clear();elsecout您的输入有误!!!请重新输入:endl;}}}classBook{inttag;intno;charname[20];intonshelf;public:Book(){}char*getname(){returnname;}intgetno(){returnno;}intgettag(){returntag;}voidsetname(charna[]){strcpy(name,na);}voiddelbook(){tag=1;}voidaddbook(intn,char*na){tag=0;no=n;strcpy(name,na);onshelf=1;}intborrowbook(){if(onshelf==1){onshelf=0;return1;}return0;}voidretbook(){onshelf=1;}voiddisp(){coutsetw(6)nosetw(18)namesetw(10)(onshelf==1?在架:已借)endl;}};classBDatabase{inttop;Bookbook[Maxb];public:BDatabase(){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;}intaddbook(intn,char*na){Book*p=query(n);i
本文标题:c++课程设计及图书管理系统(窗口界面)
链接地址:https://www.777doc.com/doc-2901877 .html