1、数据结构程序设计作业报告作业名称: 图书信息管理程序 学 院 计算机科学与工程学院 专 业 计算机软件 学生姓名 梁 强 学 号 200931581269 任课教师 张见威 提交日期 201191 一、问题描述1.1 需求分析随着互联网发展电脑走进了千家万户,而同学在学习的过程中都会买很多的书,如何管理好自己的书,这是个现实的问题。为了方便自己的图书管理,设计一个简单实用的图书管理系统。本程序基本实现了总基本设计要求,并在基本设计要求上实现了更多功能。使用了结构与类,并对其进行了合理设计使用了文件类对文件进行操作,程序中设计了文本文件与二进制文件该图书系统使用双文件保存,一个 reader 文
2、件保存用户的信息,一个文件 book 保存图书信息。在修改信息时实现了先对内存的修改,再实现对文件的修改。实现了对信息的查询同时在程序操作过程中有合理的中文提示,每个功能都设立了菜单,使得界面更加直观友好该系统主要有三个主界面 。第一个界面可以选择借书,还书,读者维护,图书管理功能;第二个主要界面是进入读者维护界面,可以选择增加读者,更改姓名,查找等功能。第三个界面体现图书管理功能,可以添加图书,删除图书,查看所有图书等功能。特点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。1.2 实验环境及实验语言实验环境 Windows07
3、,VS2008实验语言 C+1.3 实验原理采用二进制文件进行存储以及数据的处理,使用了文件数据交互,通过二进制文件操作实现数据的写入与输出。使用结构存储数据,使用类函数实现数据的操作。类使用了三个类结构。实用数组来对图书,姓名等信息的存储。文本文件建立后将二进制文件内容读出后写入文本文件中。二、系统设计2.1 类体系设计定义了 3 个类结构:1. class Reader 读者类,实现对读者的信息的描述2. class RDatabase 读者基本信息类 实现建立读者的个人资料3. class Book 图书类,实现对图书的描述,图书的编号,书名,借出,还入等2.1.1 各类定义的基本功能,
4、即主要属性(数据成员)和行为功能(函数)描述。1. class Reader 读者类,实现对读者的信息的描述int reader_num; 读者编号char name10; 读者姓名int borbookMaxbor; 所借图书功能函数 :char *getname() return name; 获取姓名int gettag() return tag; 获取删除标记int getno() return reader_num; 获取读者编号void setname(char na) 设置姓名void borrowbook(int bookid) 借书操作int retbook(int booki
5、d) 还书操作void disp() 读出读者信息2. class RDatabase 读者基本信息类 实现建立读者的个人资料int top; 读者记录指针Reader readMaxr; 读者记录主要功能函数:RDatabase() 构造函数,将reader.txt 读到 read中int addreader(int n,char *na) 添加读者时先查找是否存在void clear() 删除所有读者信息Reader *query(int readerid) 按编号查找void disp() 输出所有读者信息RDatabase() 析构函数,将read写到 reader.txt 文件中3.
6、 class Book 图书类,实现对图书的描述,图书的编号,书名,借出,还入等nt tag; 删除标记1:已删0:未删int reader_num; 图书编号char name20; 书名int onshelf; 是否再架 1:在架2:已借主要功能函数:Book() char *getname() return name; 获取姓名int getno() return reader_num; 获取图书编号int gettag() return tag; 获取删除标记void setname(char na) 设置书名void delbook() tag=1; 删除图书void addbook
7、(int n,char *na) 增加图书int borrowbook() 借书操作void retbook() 还书操作void disp() 显示图书2.2.1 应用设计采用二进制文件存储以及调用实现文件的创建以及功能的实现,使用二进制文件的数据交互。change(fstream)通过文件的 read 函数读出以及 write 函数写入实现对记录的改写。Append(fstream)通过对第一个数据的建立然后存入文件实现文件的创建。del(fstream)通过 read 函数读出后再将其赋空后通过 write 函数写入实现记录的删除2.2.2 界面设计主要有三个界面来表现系统的功能 :1.
8、 主界面:华南理工大学 图书管理系统1 借书2 还书3 图书维护4 读者维护0 离开2. 读者维护界面 :欢迎进入读者维护界面1 新增读者2 更改读者姓名3 删除读者4 查找读者5 显示所有读者6 全删0 退出3图书维护界面欢迎进入图书维护界面1 新增图书2 更改书名3 删除一本图书4 查找5 显示所有藏书6 全部删除0 退出2.3.使用向导:进入图书管理系统图书维护还书 读者维护新增图书 更改书名删除查找显示所有藏书全部删除离开操作成功,任意键退出退出借书输入读者编号 输入图书编号 新增图书 新增读者 更改读者姓名 删除读者 查找读者 显示全部读者信息三、程序测试1.进 入主界面2. 进入图书维护界面3. 首先添加自己的图书 :如;gaoshu wuli c+ lisan 添加后如图所示:4.删除一本图书 如:删除 gaoshu