没有合适的资源?快使用搜索试试~ 我知道了~
首页数据结构图书管理系统实验报告,一起分享
1)每种书的登记内容包括书号、书名、著作者、现存量和库存量; 2)对书号建立索引表(线性表)以提高查找效率; 3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 4)图书信息存入到book.txt中
资源详情
资源推荐
题目: 图书管理系统
学号:
姓名:
班级:
指导教师:
日期: 2010
年
1
月
1
日
第 1 页 共 27 页
.问题描述:
设计一个计算机管理系统完成图书管理基本业务
基本要求:
每种书的登记内容包括书号、书名、著作者、现存量和库存量;
对书号建立索引表(线性表)以提高查找效率;
系统主要功能如下:
采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,
则只将库存量增加;
借阅:如果一种书的现存量大于 ,则借出一本,登记借阅者的书证号和归还期
限,改变现存量;
归还:注销对借阅者的登记,改变该书的现存量。
)图书信息存入到 中
数据结构:
定义读者链表和图书链表
!!定义图书数量
!!定义图书名称
"# !!定义图书作者
# !!定义图书库存量
# !!定义图书现有量
!!定义指向图书的指针
$%&
"
" !!定义读者借书的图书编号
' !!定义读者的还书日期
$%(
!!定义读者编号
!!定义姓名
#)#
%("* !!读者最大借书量
!!定义指向读者指针
$+,
%& !!定义图书链表
第 2 页 共 27 页
RD *h_reader; !!定义读者链表
总体设计:
第 3 页 共 27 页
-详细设计:
主函数 #.
主函数通过创建 和 两个文件,从而达到对图书信息和读者信
息的保存,方便用户下一次的操作。通过 # 语句判断读者是否是第一次登陆,若是首
次登陆,则要进行初始化,否则直接进入主菜单进行功能选择。
初始化读者信息函数 /#.
若读者是第一次进入此系统,则首先对读者的信息进行初始化,通过
0.+,11.#).+,为读者申请读者链表节点空间,并初始化读者链表,
包括读者的图书证号,姓名。并把所接图书量置为零。
初始化图书信息函数 /#.
若读者是第一次进入此系统,则首先对读者的图书信息进行初始化,通过
0.%&11.#).%&为图书申请图书链表节点空间,并对图书链表中的图
书编号、图书名称、图书作者、图书数量进行初始化,开始时,图书的现存量等于库
存量。
主菜单选择函数 *1.
此函数包括退出系统,新书入库,查询信息,借书登记和还书管理五个函数,通过
调用主菜单函数判断用户做出的选择,从而进行相应的操作。
新书入库函 /2"%.
此函数通过的创建一个图书链表,达到对新进书判断,若在现有的图书中找到该书,
则直接进行入库,并记录下图书的数量,若找完整个图书量表也没找到该书,则要记
录下新进图书的名称,作者,数量,并把该书插入到已有数中,方便下次对新书的判
断。
查找菜单选择函数 3#41.
此函数包括查找图书,查找读者,显示图书和显示读者以及返回上级五个功能,通
过调用 5.函数,判断用户的选择,从而进行相关功能的操作。
查找读者函数 3#+.
此函数通过读者的图书证号对读者链表从头至尾进行查找,若找到读者,则显示读
者图书证号以及姓名,然后利用 循环和指针,对读者所借图书进行查找并显示。若
找不到读者,显示读者标号不存在,按任意键回到查找菜单选择函数界面。
查找图书函数 3#%.
此函数根据用户输入的图书编号,利用 "#1..6
78590::67 067 语句,对现有图书进行查
找,若找到,则显示图书的编号、名称、作者、现有量以及库存量。否则显示此图书
编号不存在,按任意键回到查找菜单选择函数界面。
第 4 页 共 27 页
显示读者函数 ;#.
此函数利用定义指针 +, 0 利用 "#1.902<==循环,以及利用
067 语句对读者的图书信息链表进行遍历,然后显示读者的借书编号和还书时
间。
显示图书信息 ;#.
此函数利用定义指针 %& 0 利用 "#1.902<==循环,以及利用
067 语句对现存图书的链表进行遍历,显示所有现存图书的编号、名称、作者、
现有量以及库存量信息。
借书函数 %"%.
此函数利用图书链表和读者链表对读者的借书进行操作,根据读者输入的图书证号,
利用 "#1 循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示
该读者的图书证号不存在,若读者存在,根据读者输入的要借的图书编号,再利用
"#1 循环遍历是否存在该书,若该书不存在,则显示此书不存在,若该书存在,再
利用 # 判断是否还有现存,若无现存,在提示此书已借完,若还有现存,再利用 # 语
句判断该读者是否已达到最大借书量,若已达最大量,则提示读者,借书已满,若还
未达到最大量,再利用 # 语句判断该读者是否已借书,若从未借过书,则直接借书,
若已借书,然后利用 循环和 # 语句判断此次借书是否和以前借书有重复,若重复,
则提示读者不能借两本相同的书,若不重复,则让读者输入还书的日期,并把读者的
所借图书量加一,并把图书的现存量减一。
还书函数 +%.
此函数也是以用图书链表和读者链表对读者还书进行操作,根据读者输入的图书证号,
利用 "#1 循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示
该读者的图书证号不存在,若读者存在,根据读者输入的要还的图书编号,再利用
"#1 循环遍历是否存在该书,若该书不存在,则显示此书编号不存在,若该书存在,
则利用 循环把读者的图书链表中要还书后面的书向前移一个单位,覆盖掉链表中该
书的信息,并把读者的借书量减一,把图书的现存量加一。
保存图书函数 4>%.
此函数首先创建文件指针 3/=?,然后创建文件,把图书链表中的图书信
息写进文件,写入成功,则对图书信息进行保存,若写入失败,则释放所有节点。
加载图书信息 =%.
若读者是再次登录图书系统,则进行对读者的图书信息进行加载。通过
0.@%@8@@打开图书文件,读出读者的信息,重新链入链表,从而
达到对读者图书信息的加载。
保存读者函数 4>+.
此函数首先创建文件指针 3/=?,然后创建文件,把读者链表中的读者
信息写进文件,写入成功,则对读者信息进行保存,若写入失败,则释放所有节点。
第 5 页 共 27 页
剩余26页未读,继续阅读
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功