《数据结构程序设计作业报告(共16页).doc》由会员分享,可在线阅读,更多相关《数据结构程序设计作业报告(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构程序设计作业报告作业名称: 图书信息管理程序 学 院 计算机科学与工程学院 专 业 计算机软件 学生姓名 梁 强 学 号 9 任课教师 张见威 提交日期 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 book
5、id) 还书操作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. cl
6、ass 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(int
7、 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. 首
9、先添加自己的图书 :如;gaoshu wuli c+ lisan 添加后如图所示:4.删除一本图书 如:删除gaoshu 5.进入读者维护界面 :6.先添加几个读者 如 lq hsz lz ;7.借书操作 :如:编号为1的读者借编号为1的图书 之后查看读者信息 8. 多个读者借书后 :9.图书被借后显示 已借 未借出则显示 在架 :10.如果不存在该图书则提示不存在 不能借书 :11.还书 12.还书后查看所有书可见还后显示在架 四、使用说明 该程序功能有限,使用时可能还存在一些漏洞。正进一步完善中 。五、收获体会及建议 在这次编程过程中,我先完成类以及对应的函数后再对主函数进行编码,但后来才发现函数其实存在很多问题,而且是一次凸显出来,所以我觉得编码过程中还是先从主函数出发,再由主函数扩展开来,这样可以马上测试函数是否能够实现以及一次不会出现太多问题,可以慢慢解决,做起来对于时间的分配也好很多。同时我遇到了很多问题,多文件编程以及使用文件,二进制文件数据交互,文件的创建,但通过学习课本以及网上查询错误原因,把问题一一攻破。通过这次大作业,我对类的各种应用有了更深的理解,也加强了我独立编程的能力。 专心-专注-专业
限制150内