数据结构程序设计作业报告.docx
- 文档编号:14892542
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:16
- 大小:352.52KB
数据结构程序设计作业报告.docx
《数据结构程序设计作业报告.docx》由会员分享,可在线阅读,更多相关《数据结构程序设计作业报告.docx(16页珍藏版)》请在冰点文库上搜索。
数据结构程序设计作业报告
《数据结构程序设计》作业报告
作业名称:
图书信息管理程序
学院计算机科学与工程学院
专业计算机软件
学生姓名梁强
学号200931581269
任课教师张见威
提交日期2011-9-1
一、问题描述
1..1需求分析
随着互联网发展电脑走进了千家万户,而同学在学习的过程中都会买很多的书,如何管理好自己的书,这是个现实的问题。
为了方便自己的图书管理,设计一个简单实用的图书管理系统。
本程序基本实现了总基本设计要求,并在基本设计要求上实现了更多功能。
使用了结构与类,并对其进行了合理设计
使用了文件类对文件进行操作,程序中设计了文本文件与二进制文件该图书系统使用双文件保存,一个reader文件保存用户的信息,一个文件book保存图书信息。
在修改信息时实现了先对内存的修改,再实现对文件的修改。
实现了对信息的查询同时在程序操作过程中有合理的中文提示,每个功能都设立了菜单,使得界面更加直观友好
该系统主要有三个主界面。
第一个界面可以选择借书,还书,读者维护,图书管理功能;第二个主要界面是进入读者维护界面,可以选择增加读者,更改姓名,查找等功能。
第三个界面体现图书管理功能,可以添加图书,删除图书,查看所有图书等功能。
特点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。
经过实践证明,该划分是合理的,极大得提高了本系统的实现。
1.2实验环境及实验语言
实验环境Windows07,VS2008
实验语言C++
1.3实验原理
采用二进制文件进行存储以及数据的处理,使用了文件数据交互,通过二进制文件操作实现数据的写入与输出。
使用结构存储数据,使用类函数实现数据的操作。
类使用了三个类结构。
实用数组来对图书,姓名等信息的存储。
文本文件建立后将二进制文件内容读出后写入文本文件中。
二、系统设计
2.1类体系设计
定义了3个类结构:
1.classReader读者类,实现对读者的信息的描述
2.classRDatabase读者基本信息类实现建立读者的个人资料
3.classBook图书类,实现对图书的描述,图书的编号,书名,借出,还入等
2.1.1各类定义的基本功能,即主要属性(数据成员)和行为功能(函数)描述。
1.classReader读者类,实现对读者的信息的描述
intreader_num;读者编号
charname[10];读者姓名
intborbook[Maxbor];所借图书
功能函数:
char*getname(){returnname;}获取姓名
intgettag(){returntag;}获取删除标记
intgetno(){returnreader_num;}获取读者编号
voidsetname(charna[])设置姓名
voidborrowbook(intbookid)借书操作
intretbook(intbookid)还书操作
voiddisp()读出读者信息
2.classRDatabase读者基本信息类实现建立读者的个人资料
inttop;读者记录指针
Readerread[Maxr];读者记录
主要功能函数:
RDatabase()构造函数,将reader.txt读到read[]中
intaddreader(intn,char*na)添加读者时先查找是否存在
voidclear()删除所有读者信息
Reader*query(intreaderid)按编号查找
voiddisp()输出所有读者信息
~RDatabase()析构函数,将read[]写到reader.txt文件中
3.classBook图书类,实现对图书的描述,图书的编号,书名,借出,还入等
nttag;删除标记1:
已删0:
未删
intreader_num;图书编号
charname[20];书名
intonshelf;是否再架1:
在架2:
已借
主要功能函数:
Book(){}
char*getname(){returnname;}获取姓名
intgetno(){returnreader_num;}获取图书编号
intgettag(){returntag;}获取删除标记
voidsetname(charna[])设置书名
voiddelbook(){tag=1;}删除图书
voidaddbook(intn,char*na)增加图书
intborrowbook()借书操作
voidretbook()还书操作
voiddisp()显示图书
2.2.1应用设计
采用二进制文件存储以及调用实现文件的创建以及功能的实现,使用二进制文件的数据交互。
change(fstream)通过文件的read函数读出以及write函数写入实现对记录的改写。
Append(fstream)通过对第一个数据的建立然后存入文件实现文件的创建。
del(fstream)通过read函数读出后再将其赋空后通过write函数写入实现记录的删除
2.2.2界面设计
主要有三个界面来表现系统的功能:
1.主界面:
华南理工大学图书管理系统
1借书
2还书
3图书维护
4读者维护
0离开
2.读者维护界面:
欢迎进入读者维护界面
1新增读者
2更改读者姓名
3删除读者
4查找读者
5显示所有读者
6全删
0退出
3.图书维护界面
欢迎进入图书维护界面
1新增图书
2更改书名
3删除一本图书
4查找
5显示所有藏书
6全部删除
1退出
2.3.使用向导:
三、程序测试
1.进入主界面
2.进入图书维护界面
3.首先添加自己的图书:
如;gaoshuwulic++lisan
添加后如图所示:
4.
删除一本图书
如:
删除gaoshu
5.进入读者维护界面:
6.先添加几个读者
如lqhszlz;
7.借书操作:
如:
编号为1的读者借编号为1的图书
之后查看读者信息
8.多个读者借书后:
9.图书被借后显示已借未借出则显示在架:
10.如果不存在该图书则提示不存在不能借书:
11.还书
12.还书后查看所有书可见还后显示在架
四、使用说明
该程序功能有限,使用时可能还存在一些漏洞。
正进一步完善中。
五、收获体会及建议
在这次编程过程中,我先完成类以及对应的函数后再对主函数进行编码,但后来才发现函数其实存在很多问题,而且是一次凸显出来,所以我觉得编码过程中还是先从主函数出发,再由主函数扩展开来,这样可以马上测试函数是否能够实现以及一次不会出现太多问题,可以慢慢解决,做起来对于时间的分配也好很多。
同时我遇到了很多问题,多文件编程以及使用文件,二进制文件数据交互,文件的创建,但通过学习课本以及网上查询错误原因,把问题一一攻破。
通过这次大作业,我对类的各种应用有了更深的理解,也加强了我独立编程的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序设计 作业 报告