小小图书馆程序设计基础C实验报告

上传人:ni****g 文档编号:422955961 上传时间:2023-07-16 格式:DOC 页数:19 大小:233.50KB
返回 下载 相关 举报
小小图书馆程序设计基础C实验报告_第1页
第1页 / 共19页
小小图书馆程序设计基础C实验报告_第2页
第2页 / 共19页
小小图书馆程序设计基础C实验报告_第3页
第3页 / 共19页
小小图书馆程序设计基础C实验报告_第4页
第4页 / 共19页
小小图书馆程序设计基础C实验报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《小小图书馆程序设计基础C实验报告》由会员分享,可在线阅读,更多相关《小小图书馆程序设计基础C实验报告(19页珍藏版)》请在金锄头文库上搜索。

1、程序设计基础C+实验报告实验项目: 小小图书馆 实验人姓名: 实验人学号: 200724133 实验地点: 实验楼214 一、 目标与要求要求程序是一个简单的图书管理系统。主要完成的工作:借书还书图书管理读者维护其中,图书管理和读者维护功能中可以进行日常的数据添加、删除、查找、显示等功能,使日常图书借阅工作能正常进行。二、 分析根据该系统的需求分析,程序所处理的对象主要有图书和读者,还要存储图书和读者的信息,可抽象出读者信息库类和图书信息库类。程序主要由4个类组成,如表3.13所示。 表3.13 “小小图书馆”程序中的类类基类说明Reader无读者类Rdatabase无读者信息库类Book无图

2、书类Bdatabase无图书信息库类读者类和读者信息类库以及图书类和图书信息库类使用类的嵌套方式,读者类和图书类对象分别作为读者信息类库和图书信息库类的成员,库类中使用数组存储读者和图书对象。读者类包括一个读者基本的管理功能,它和图书类结构相仿,功能相似。而读者信息库类和图书信息库类具有相似的结构,执行的功能也有类似的部分,都是数据的添加、删除、查找、显示等功能。在这两个库类中都可以使用构造函数从文件中读取记录,处理完毕后使用析构函数写文件。各类关系简单,为了简便起见,将各类的数据成员声明成类的私有成员,函数成员声明为类的公有成员。各类的成员如表3.143.17所示。表3.14 Reader类

3、成员说明int note删除标记(1:已删,0:未删)int number读者编号char name10读者姓名int borbookMaxbor所借图书Reader( )构造函数char *getname()取得姓名int getnote()取得删除标记int getnumber() 取得读者编号void setname(char na )设置读者姓名void delbook() 设置删除标记void addreader(int n, char *na) 添加读者void borrowbook(int bookid) 借书操作int retbook(int bookid) 还书操作void

4、list() 输出读者信息表3.15 Rdatabase类成员说明int top 读者记录指针Reader readMaxr读者记录RDatabase() 构造函数:读入数据文件void clear()删除所有读者信息int addreader(int n, char *na)添加读者记录。添加时先确定读者是否已经存在Reader *query(int readerid)按编号查找读者void list()输出所有读者信息void readerdata()读者库维护RDatabase()析构函数:写数据文件表3.16 Book类成员说明int note删除标记(1:已删,2:未删)int nu

5、mber图书编号char name10书名int onshelf上架标志Book( )构造函数char *getname()取得书名int getnote()取得删除标记int getnumber() 取得图书编号void setname(char na )设置书名void delbook() 删除图书void addbook(int n, char *na) 添加图书void borrowbook(int bookid) 借书操作int retbook(int bookid) 还书操作void list() 输出图书信息表3.17 Bdatabase类成员说明int top 图书记录指针Bo

6、ok bookMaxr图书记录BDatabase() 构造函数:读入数据文件void clear()删除所有图书信息int addbook(int n, char *na)添加图书记录Book *query(int bookid)按编号查找图书void list()输出图书信息void bookdata()图书库维护BDatabase()析构函数:写数据文件 读者信息类库和图书信息库类的构造函数以及析构函数都要从文件中读写数据。假定读者信息记录在reader.txt文件中, 而图书信息记录在book.txt文件中。使用程序的“新增”功能,可添加读者和图书。当结束运行时,由RDatabase类和

7、BDatabase类的析构函数把各处管理的读者信息和图书信息写入到相应的文本文件中。三、 系统实现步骤 根据以上3.1的分析和设计,下面实现程序。1. 新建控制台项目,保存项目名为library.2. 新建头文件reader.h,定义读者类Reader. #ifndef _reader_h_#define _reader_h_#include using namespace std;const int Maxbor = 5; / 最大借阅量class Reader / 读者类private:int note; / 删除标号(1:已删,0:未删)int number; / 读者编号char na

8、me10; / 读者姓名int borbookMaxbor; / 所借图书public:Reader() char *getname(); / 获得姓名int getnote(); /获得删除标记int getnumber(); / 获得读者编号void setname(char na); / 设置姓名void delbook(); / 设置删除标记void addreader(int n, char *na); / 添加读者void borrowbook(int bookid); / 借书操作int retbook(int bookid); / 还书操作void list(); / 输出读者

9、信息;#endif3. 新建cpp文件reader.cpp,实现Reader类。 #include #include reader.hchar *Reader:getname()return name;int Reader:getnote()return note;int Reader:getnumber()return number;void Reader:setname(char na)strcpy(name, na);void Reader:delbook()note = 1;void Reader:addreader(int n, char *na)note = 0;number =

10、n;strcpy(name, na);for (int i = 0; i Maxbor; i+)borbooki = 0;void Reader:borrowbook(int bookid)for (int i = 0; i Maxbor; i+)if (borbooki = 0)borbooki = bookid;return;int Reader:retbook(int bookid)for (int i = 0; i Maxbor; i+)if (borbooki = bookid)borbooki = 0; return 1;return 0;void Reader:list()if

11、(note = 0)cout setw(5) number setw(10) name 借书编号:;for (int i = 0; i Maxbor; i+)if (borbooki != 0)cout borbooki |;cout endl;4. 新建头文件rdatabase.h, 定义读者信息库类Rdatabase。/#ifdef _rdatabase_h_ /#define _rdatabase_h_#include #include reader.husing namespace std;const int Maxr = 100; / 最大读者数class RDatabasepriv

12、ate:int top; / 读者记录指针Reader readMaxr; / 读者记录public:RDatabase(); / 构造函数初始化:读入文件void clear(); / 删除所有读者信息int addreader(int n, char *na); / 添加读者记录时,先确定它是否已经存在Reader *query(int readerid); / 按编号查找void list(); / 输出所有读者信息void readerdata(); / 读者库维护RDatabase(); / 析构函数:写文件;/#endif5. 新建cpp文件rdatabase.cpp, 实现Rdatabase类。#include #include #include reader.h#include rdatabase.husing namespace std;RDatabase:RDatabase()Reader s;top = -1;fstream file(reader.txt, ios:in);while (1)file.read(char *)&s, sizeof(s);if (!file)break;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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