1、c+程序设计图书管理系统持有借类一、 需求分析图书系统在生活中运用相当广泛,因此需要很多程序对他进行管理。本系统有四个类 BDatebase类、Reader类、RDatebase类,存储借阅者的个人信息、借阅信息以及预定信息。 阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定等功能。二、 系统总框图三、模块的设计分析4.1图书入库管理模块设计设定了书籍总数,定义了新图书的增加和书籍编号Bookp1000;voidi nl ibrary()in tsort_add4.2图书借书管理模块设计定义了图书的借书系统,和借出书籍编号。in tBook:borrow() intnu m
2、ber_out;4.3图书还书管理模块设计定义了图书的还书系统,和还出书籍编号。in tBook:restore()intnu mber_i n;4.4图书查询管理模块设计无专门模块,同借还书系统。在借书和还书的同时,进行查询。四、程序中出现的函数看看该类定义了借书操作,还书操作,设置读者姓名等功能Reader+n ame20:char+n o:i nt+tag:i nt+borbook:i nt+get name():char+gettag():i nt+get no ():i nt+set name(charna):void+delbook():void+addreader(i ntn,
3、char* na):void+borrowbook(i ntbookid):void+retbook(i ntbookid):i nt+disp():void该类实现了建立读者的个人资料,删除读者信息,输出读者信息等功能。RDatebase+top:i nt+rn ame20:char+readerid:i nt+readerdata():void+choice:char+addreader(i ntn, char* na):int+clear():void+disp():void图书类的设计Book+n o:i nt+n ame20:char+on shelf:i nt+get name()
4、:char+get no ():i nt+gettag():i nt+set name(charna):void+delbook():void+addbook():void+borrowbook():i nt+retbook():void+disp():void图书库类的设计Xin gzhe ngrenyuan+top:i nt+clear():void+addbook(i ntn, char* na):i nt+bookdata():void+bookdata():void+disp():void五、 特色的函数实现voidBDatabase:bookdata()charchoice;cha
5、rb name40;in tbookid;Book*b;while(choice!=O)coutnnnttt 图书维护endlendl;全删 ntt0couttt1 新增 ntt2 更改 ntt3 删除 ntt4 查找 ntt5 显示 ntt6退出 choice;switch(choice)case1:cout输入图书编号: bookid;cout输入图书书名:endl;cinbn ame;addbook(bookid,b name);break;case2:cout输入图书编号: bookid;b=query(bookid);if(b=NULL)cout该图书不存在endl;break;co
6、ut输入新的书名:set name(b name);break;case3:cout读入图书编号: bookid;b=query(bookid);if(b=NULL)cout该图书不存在delbook();break;case4:cout读入图书编号: bookid;b=query(bookid);if(b=NULL)cout该图书不存在disp();break;case5:disp();break;case6:clear();break;default:cout 输入错误,请从新输入:;六、存在的冋题与不足及对策由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,查错能力也不强,对于
7、一些 不正确的输入可能会造成一些难以预料的结果,因此,请不要故意输入错误信息。这些不足请老师多 多谅解。今后设计者会更多的学习编程技巧,不断的提高程序设计水平。七、心得体会通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,这个程序的设计 过程中,我清楚的意识到自己的水平有多么的薄弱,每增加一个函数就要调试好久,有时候应为少了 一个大括号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但我意识 到了自己有太多的不足。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用, 这样走上社会我才能真正的发挥所长。源程序#in clud
8、e#i ncludevioma nip#in clude#in cludeusingn amespacestd;con st in tMaxr=100;con st in tMaxb=100;con st in tMaxbor=5;classReaderprivate:in ttag;intno;char name10;in tborbookMaxbor;public:Reader()char*get name()retur nn ame;in tgettag()returntag;in tget no ()return no;voidset name(char na)strcpy( name
9、 ,n a);voiddelbook()tag=1;voidaddreader(i ntn ,char* na)tag=0;no=n;strcpy( name ,n a);for(i nti=0;iMaxbor;i+) borbooki=0;voidborrowbook(i ntbookid)for(i nti=0;iMaxbor;i+)if(borbooki=0) borbooki=bookid; return;in tretbook(i ntbookid)for(i nti=0;iMaxbor;i+)if(borbooki=bookid)borbooki=0;return1;return。
10、;voiddisp()coutsetw(5)nosetw(10)name 借书编号:; for(i nti=0;iMaxbor;i+)if(borbooki!=0)coutvborbookivT;coute ndl;classRDatabaseprivate:in ttop;ReaderreadMaxr;public:RDatabase()Readers;top=-1;fstreamfile(reader.txt,ios:i n);while(1)file.read(char* )&s,sizeof(s);if(!file)break;top+;readtop=s;file.close();v
11、oidclear()top=-1;in taddreader(i ntn, char* na)Reader*p=query (n);if(p=NULL)top+;readtop.addreader( n,n a);return1;return。;Reader*query(i ntreaderid)for(i nti=0;i=top;i+)if(readi.get no()=readerid&readi.gettag()=0)return&readi;returnNULL;voiddisp()for(i nti=0;i=top;i+)readi.disp();voidreaderdata();R
12、Database()fstreamfile(reader.txt,ios:out);for(i nti=0;i=top;i+)if(readi.gettag()=0)file.write(char* )&readi,sizeof(readi);file.close();voidRDatabase:readerdata()charchoice;charr name20;in treaderid;Reader*r;while(choice!=0)查找coutnnttt 读者维护 nnntt1 新增 nntt2 更改 nntt3 删除nntt4nntt5 显示nntt6 全删nntt0 退出 choice;switch(choice)case1:coutvv输入读者编号:;cin readerid;coutvv输入读者姓名:;cinrn ame;addreader(readerid,r name);break;case2:coutvv输入读者编号:;cin readerid;r=query(readerid); if(r=NULL)cout该读者不存在set name(r name);break;case3:coutvv输入读者编号:; cin readerid;r=query(readerid); if(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1