c++图书管理系统实验报告和源代码(共24页).doc





《c++图书管理系统实验报告和源代码(共24页).doc》由会员分享,可在线阅读,更多相关《c++图书管理系统实验报告和源代码(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程名称:程序设计综合实训设计题目: 图书管理系统 姓 名:学 号:专业班级:指导老师:完成日期:1 设计任务1.1 设计目的运用所学知识.完成图书馆管理系统.通过实践加强对所学知识的理解和巩固1.2设计内容建立图书馆管理系统.用户分为图书管理人员.读者。管理人员可以增加删除查看图书、读者。读者只能查看自身信息.和借还书1.3设计指标或者要求管理人员可以访问任意图书和读者.而读者只能借还图书馆存在的图书和查看自己的信息。2 设计过程分析:由于管理系统用户有图书管理员和读者.但两者的权限不同.管理员有权访问所有图书信息和管理员信息.而读者只能访问所有图书信息和自身的信息
2、。所以他们的相同点:都能访问所有图书信息不同点:管理员能访问所有读者信息而管理员只能访问自身信息而不能访问其它读者信息;故此设计了三个类程序包含三个类:图书类(books).管理员类(manager).读者类reader.books类为抽象类.manager.和reader类为books类的派生类。为了能让管理员和读者访问所有图书信息.所有都继承了books类;而为了分出两者的权限的不同.所以把所有读者的信息做为一个链表作为管理员的一个私有成员.而读者却只能放一个自身节点作为读者的私有成员.然后分别设计各个类的成员函数。2.1 程序功能Class books /虚基类 protected:bo
3、oks_node *broot;public:books();/构造函数savebooks();/保存修改的内容search_book();/查找某一本书print_books();/输出所有书的信息virtual add_book()=0;/对于读者是还书.对于管理员添加书virtual delet_book()=0;/对于读者是借书.对于管理员是去掉某一本书;Class manager:public books /管理员类 protected:readers_node *rroot;public:manager(readers_node*);savereaders();add_book()
4、;/添加图书信息delet_book();/删除图书search_reader();/查找读者信息add_reader();/添加读者delet_reader();/删除读者print_readers();/输出所有读者;class reader:public books/读者类private:readers_node* personnel;/存放读者自身信息public:reader(readers_node*);add_book();/还书reader_borrow();delet_book();reader_return();/借书print_me();/查看自己借书情况save_rea
5、ders(readers_node*);2.2程序流程图开始菜单管理员菜单读者菜单添 删加 除图 图书 书添 删加 除读 读者 者借 还 查 查 看 看 所 自 有 身 图 信书 书 书 息 读者管理员图书维护读者维护后退后退后退后退后退3软件运行或者测试结果(1)管理员身份登录:(2)读者身份登录:4 软件设计过程中遇到的问题以及解决办法由于编写前期做了大量的设计工作.在编写过程中基本没有遇到难解决的问题提.倒是在设计类时有些茫然.经过反复斟酌还是做了一些取舍.比如把读取读者文件放在了类的外面等。5 总结通过本次课程设计学到了很多东西.对于c+对象的含义有了进一步的认识.从而对类的封装和设计
6、有了一种新的认识.不只是停留在表面.为以后的学习积累了经验.设计不比编写容易.类设计好是整个程序写好的前提.只有一个好的规划才能写出好的程序。不过也通过本次发现了自己的不足之处。总是:本次课程设计受益匪浅.动手能力大大增强;附录(程序源代码)#include#include#include#include#include#define max 3 typedef struct Bookschar book_name15;int total_num;int borrow_num;char book_num15;Books *next;books_node;typedef struct Reade
7、rschar reader_name15;char reader_no15;int reader_borrow_num;struct Reader_borrow_bookschar borrow_books_name15;char borrow_books_no15;reader_borrow_bookmax;Readers *next;readers_node;class books protected:books_node *broot;public:books();savebooks();search_book();print_books();virtual add_book()=0;v
8、irtual delet_book()=0;class manager:public books protected:readers_node *rroot;public:manager(readers_node*);savereaders();add_book();delet_book();search_reader();add_reader();delet_reader();print_readers();class reader:public booksprivate:readers_node* personnel;public:reader(readers_node*);add_boo
9、k();reader_borrow();delet_book();reader_return();print_me();save_readers(readers_node*);books:books()books_node *r;broot=new books_node;r=new books_node;r-next=NULL;broot=r;ifstream inFile;inFile.open(c:books.dat,ios:binary);if(inFile.is_open()=-1)coutcont open books.datnext=r-next;r-next=node;inFil
10、e.close();if(i2)cout暂时没有图书数据next;ofstream outFile;outFile.open(c:books.dat,ios:binary);while(L)outFile.write(char*)L,sizeof(books_node);L=L-next;outFile.close();books:search_book()char searchedbook15;coutsearchedbook;books_node *r;r=new books_node;r=broot-next;while(r)if(strcmp(searchedbook,r-book_n
11、ame)=0)cout书名:book_name 书的总量:total_num 借出:borrow_num 书的编号:book_numnext;if(r=NULL)cout对不起.没有此书next;while(r)cout书名: book_name 书的总量:total_num 借出:borrow_num 书的编号:book_numnext;delete r;manager:add_book()books_node *L;L=new books_node;L=broot;while(1)books_node *r;r=new books_node;r-next=NULL;coutr-book_n
12、ame;coutr-book_num;r-borrow_num=0;coutr-total_num;r-next=L-next;L-next=r;coutsign;if(sign=n|sign=N)break;broot=L;savebooks();manager:delet_book()char deleted15;coutdeleted; books_node *node,*L;node=new books_node;L=new books_node;node=broot;while(node-next)if(strcmp(deleted,node-next-book_name)=0)br
13、eak;node=node-next;if(node-next=NULL) coutsorry!There is no the book!next-borrow_num=0)node-next=node-next-next;savebooks()elsecout对不起.暂时不能删除.因为还有没有归还的书next;ofstream outFile;outFile.open(c:Readers.dat,ios:binary);while(L)outFile.write(char*)L,sizeof(readers_node);L=L-next;outFile.close();manager:add
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 图书 管理 系统 实验 报告 源代码 24

限制150内