c图书管理系统实验报告和源代码.doc
文本预览下载声明
课程名称: 程序设计综合实训 设计题目: 图书管理系统
姓 名: 学 号: 专业班级: 指导老师: 完成日期:
1 设计任务
1.1 设计目的
运用所学知识,完成图书馆管理系统,通过实践加强对所学知识的理解和巩固
1.2设计内容
建立图书馆管理系统,用户分为图书管理人员,读者。管理人员可以增加删除查看图书、读者。读者只能查看自身信息,和借还书
1.3设计指标或者要求
管理人员可以访问任意图书和读者,而读者只能借还图书馆存在的图书和查看自己的信息。
2 设计过程
分析:由于管理系统用户有图书管理员和读者,但两者的权限不同,管理员有权访问所有图书信息和管理员信息,而读者只能访问所有图书信息和自身的信息。所以他们的相同点:都能访问所有图书信息
不同点:管理员能访问所有读者信息而管理员只能访问自身信息而不能访问其它读者信息;故此设计了三个类
程序包含三个类:图书类(books),管理员类(manager),读者类reader,books类为抽象类,manager,和reader类为books类的派生类。为了能让管理员和读者访问所有图书信息,所有都继承了books类;而为了分出两者的权限的不同,所以把所有读者的信息做为一个链表作为管理员的一个私有成员,而读者却只能放一个自身节点作为读者的私有成员,然后分别设计各个类的成员函数。
2.1 程序功能
Class books ///虚基类
{
protected:
books_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();//添加图书信息
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_readers(readers_node*);
};
2.2程序流程图
3软件运行或者测试结果(1)管理员身份登录:
(2)读者身份登录:
4 软件设计过程中遇到的问题以及解决办法
由于编写前期做了大量的设计工作,在编写过程中基本没有遇到难解决的问题提,倒是在设计类时有些茫然,经过反复斟酌还是做了一些取舍,比如把读取读者文件放在了类的外面等。。
5 总结
通过本次课程设计学到了很多东西,对于c++对象的含义有了进一步的认识,从而对类的封装和设计有了一种新的认识,不只是停留在表面,为以后的学习积累了经验,设计不比编写容易,类设计好是整个程序写好的前提,只有一个好的规划才能写出好的程序。不过也通过本次发现了自己的不足之处。总是:本次课程设计受益匪浅,动手能力大大增强;
附录(程序源代码)
#includeiostream.h
#includefstream.h
#includestring.h
#includestdio.h
#includeconio.h
#define max 3
typedef struct Books{
char book_
显示全部