图书管理系统++C++课程设计报告

上传人:飞****9 文档编号:143929920 上传时间:2020-09-03 格式:DOC 页数:19 大小:89KB
返回 下载 相关 举报
图书管理系统++C++课程设计报告_第1页
第1页 / 共19页
图书管理系统++C++课程设计报告_第2页
第2页 / 共19页
图书管理系统++C++课程设计报告_第3页
第3页 / 共19页
图书管理系统++C++课程设计报告_第4页
第4页 / 共19页
图书管理系统++C++课程设计报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《图书管理系统++C++课程设计报告》由会员分享,可在线阅读,更多相关《图书管理系统++C++课程设计报告(19页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计课程设计报告设计题目 图书管理系统 专 业 计算机科学与技术 班 级 姓 名 学 号 2007 年6 月 5 日目 录1.设计目标32.设计思想33.类及对象设计44.程序源代码55.调试记录166.总结18图书管理系统1设计目标设计一个小型的图书管理系统,用链表来存储读者的基本信息(包括姓名、读者编号、读者借书情况等),完成借书、还书、图书维护、读者维护、离开等功能。2设计思想(1) 设计class Reader读者信息库,实现对读者信息的描叙; class RDatabase读者类库实现建立读者的个人资料;class Book图书类,实现对图书的描述,图书的编号,书名,借出

2、,还入等;class BDatabase图书库类,实现对图书的维护,查找,删除等。以下是函数功能表: 函数功能char *getname()获取姓名int gettag()获取删除标记int getno()获取读者编号void setname(char na)设置姓名以及编号void addreader(int n,char *na)增加读者void delbook()设置删除标记void borrowbook(int bookid)借书操作int retbook(int bookid)还书操作void disp()读出读者信息BDatabase()构造函数,将book.txt读到book中i

3、nt addbook(int n,char *na)增加图书Book *query(int bookid)查找图书void bookdata()图书库维护BDatabase()析构函数,将book写到book.txt文件(2)用类的成员函数对链表的数据进行操作,其功能如上表所列。(3)设计菜单来实现功能设计 1、 借 书 2、 还 书 3、 图 书 维 护 4 、读 者 维 护 0 、离 开3设计类及对象(1) 本程序定义了三个类,定义如下:class Reader private: char *getname() return name; /获取姓名 int gettag() return

4、tag; /获取删除标记 int getno() return no; /获取读者编号 void setname(char na) /设置姓名 void delbook() tag=1; /设置删除标记 1:已删 0:未删 void addreader(int n,char *na)/增加读者 int retbook(int bookid)/还书操作void disp()/读出读者信息;class RDatabase private: int top; /读者记录指针 Reader readMaxr;/读者记录 public: RDatabase() /构造函数,将reader.txt读到re

5、ad中void clear()/删除所有读者信息int addreader(int n,char *na)/添加读者时先查找是否存在 Reader *query(int readerid)/按编号查找void disp() /输出所有读者信息void readerdata();/读者库维护RDatabase() /析构函数,将read写到reader.txt文件中;class Book private: char *getname() return name; /获取姓名 int getno() return no; /获取图书编号 int gettag() return tag; /获取删除

6、标记 void setname(char na)/设置书名 void delbook() tag=1;/删除图书 void addbook(int n,char *na)/增加图书int borrowbook()/借书操作 void retbook()/还书操作 void disp()/输出图书class BDatabase private: BDatabase()/构造函数,将book.txt读到book中 void clear()/全删 int addbook(int n,char *na)/增加图书 Book *query(int bookid)/查找图书 void bookdata()

7、;/图书库维护 BDatabase()/析构函数,将book写到book.txt文件中;(2)分别利用类class Reader 、class RDatabase、class Book 、class BDatabase 定义了各自的对象Book bookMaxb、RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b;对其函数进行调用实现各种功能。(3)主函数实现,调用各种函数。4程序源代码#include #include #include #include /输入/输出文件流类 using namespace std; const

8、int Maxr=100;/最多的读者 const int Maxb=100;/最多的图书 const int Maxbor=5;/每位读者最多借五本书 /读者类,实现对读者的信息的描述 class Reader private: int tag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor;/所借图书 public: Reader() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记 int getno() retur

9、n no; /获取读者编号 void setname(char na) /设置姓名 strcpy(name,na); void delbook() tag=1; /设置删除标记 1:已删 0:未删 void addreader(int n,char *na)/增加读者 tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid)/借书操作 for(int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; i

10、nt retbook(int bookid)/还书操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp()/读出读者信息 cout setw(5) no setw(10) name借书编号:; for(int i=0;iMaxbor;i+) if(borbooki!=0) cout borbooki |; cout endl; ; /读者类库,实现建立读者的个人资料 class RDatabase private: int top; /读者记录指针 Reader read

11、Maxr;/读者记录 public: RDatabase() /构造函数,将reader.txt读到read中 Reader s; top=-1; fstream file(reader.txt,ios:in);/打开一个输入文件 while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); /关闭 reader.txt void clear()/删除所有读者信息 top=-1; int addreader(int n,char *na)/添加读者时先查找是否存在 Reader

12、*p=query(n); if (p=NULL) top+; readtop.addreader(n,na); return 1; return 0; Reader *query(int readerid)/按编号查找 for (int i=0;i=top;i+) if (readi.getno()=readerid & readi.gettag()=0) return &readi; return NULL; void disp() /输出所有读者信息 for (int i=0;i=top;i+) readi.disp(); void readerdata();/读者库维护 RDatabase() /析构函数,将read写到reader.txt文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(readi); file.close(); ; void RDatabas

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号