1、合肥学院计算机科学与技术系课 程 设 计 报 告2010 2011学 年 第 二 学 期课 程 C语 言 课 程 设 计课 程 设 计 名 称 图 书 管 理 系 统学 生 姓 名学 号专 业 班 级指 导 教 师 2011年 6月一 、 需 求 分 析为 了 满 足 图 书 管 理 的 要 求 , 通 过 计 算 机 技 术 给 图 书 管 理 人 员 和 读 者 借 、 还 书带 来 便 利 。 使 用 c语 言 编 写 了 图 书 管 理 系 统 。 本 系 统 主 要 实 现 图 书 信 息 管 理 的 功能 , 通 过 此 系 统 可 对 图 书 馆 库 存 图 书 信 息 进 行
2、管 理 和 维 护 操 作 。 实 现 了 图 书 馆 内管 理 的 一 般 功 能 , 包 括 查 询 、 借 书 、 还 书 、 添 加 、 删 除 、 修 改 图 书 信 息 等 。 所 设计 的 系 统 以 菜 单 方 式 工 作 , 为 用 户 提 供 清 晰 的 使 用 提 示 , 依 据 用 户 的 选 择 来 进 行各 种 处 理 , 并 且 在 此 过 程 中 能 够 尽 可 能 的 兼 容 用 户 使 用 过 程 中 可 能 出 现 的 异 常 情况 。 图 书 信 息 包 括 编 号 、 书 名 、 作 者 、 出 版 社 、 出 版 日 期 、 价 格 、 在 库 状
3、态 等 。图 书 信 息 的 录 入 和 显 示 要 求 有 一 定 的 规 范 格 式 , 录 入 的 图 书 信 息 用 文 件 形 式 保存 , 并 可 以 对 其 进 行 浏 览 、 查 询 、 修 改 、 删 除 等 基 本 操 作 。 整 个 程 序 实 现 链 表 操作 , 对 图 书 信 息 的 操 作 逐 个 地 进 行 , 一 个 图 书 信 息 的 更 改 不 应 影 响 其 他 的 图 书 记录 。二 、 算 法 设 计 :1 设 计 思 想 :整 个 系 统 制 造 的 而 过 程 中 , 涉 及 了 较 多 C语 言 知 识 点 , 对 于 不 同 的 数 据 类
4、型 、程 序 控 制 结 构 、 数 据 结 构 作 以 分 析 和 总 结 , 并 结 合 这 个 课 题 进 行 综 合 的 应 用 , 在一 定 程 度 上 做 到 了 对 所 学 知 识 融 会 贯 通 。 进 一 步 加 深 、 巩 固 了 所 学 的 专 业 的 基 本理 论 知 识 , 培 养 了 综 合 分 析 问 题 、 解 决 问 题 的 能 力 。 在 设 计 程 序 时 , 实 现 了 程 序的 模 块 化 、 结 构 化 。 在 主 函 数 中 调 用 各 种 子 函 数 , 操 作 界 面 简 单 , 易 操 作 。2, 设 计 表 示 :(1)、 整 个 系 统
5、除 了 主 函 数 外 , 另 外 还 有 各 种 功 能 子 函 数 , 利 用 无 限 次 循 环语 句 while()和 选 择 语 句 swithch()实 现 各 个 子 函 数 的 调 用 , 系 统 根 据 输 入 的 数字 选 项 来 调 用 相 应 的 函 数 , 以 实 现 相 应 的 功 能 。 主 要 实 现 了 图 书 的 录 入 、 存 储 、查 询 、 添 加 、 删 除 、 修 改 、 借 书 、 还 书 等 功 能 。(2)、 Cbook(); 这 是 一 个 指 针 函 数 , 它 主 要 实 现 了 链 表 的 创 建 , 并 且 在 创 建过 程 中 从
6、 文 件 读 取 信 息 到 链 表 中 , 以 用 于 后 面 其 他 函 数 的 操 作 。 它 返 回 的 时 一 个单 向 链 表 的 头 。 其 他 函 数 调 用 时 只 需 调 用 它 返 回 的 头 即 可 。(3)、 mainmenu();、 menu1();、 glmenu();、 cxmenu();、 jhmenu();这 五 个函 数 时 整 个 图 书 管 理 系 统 的 全 部 菜 单 函 数 , mainmenu();为 系 统 主 界 面 , 进 入 时可 选 择 进 入 程 序 和 退 出 程 序 。 menu1();为 进 入 程 序 时 显 示 的 功 能
7、 菜 单 , 在 此 菜 单可 以 选 择 录 入 、 保 存 图 书 信 息 , 也 可 选 择 进 入 其 他 子 系 统 。 glmenu();此 菜 单 为进 入 图 书 管 理 系 统 的 菜 单 , 在 此 可 以 选 择 添 加 、 删 除 、 修 改 图 书 等 操 作 。 cxmenu();为 查 询 系 统 的 菜 单 , 在 此 可 以 选 择 按 书 名 、 编 号 、 作 者 等 方 式 进 行 查 询 图 书 。jhmenu();为 借 书 还 书 的 子 菜 单 , 在 此 可 以 选 择 借 书 还 书 操 作 。 操 作 完 成 后 按 提示 信 息 进 行
8、文 件 的 保 存 操 作 。(4)、 print();这 个 函 数 为 链 表 的 输 出 函 数 , 把 链 表 的 头 传 给 函 数 后 , 可 输出 整 个 链 表 的 所 有 信 息 。 、(5)、 hold();这 个 函 数 为 保 存 信 息 到 文 件 的 函 数 , 使 用 时 将 链 表 的 头 传 给 函数 , 函 数 可 将 整 个 链 表 的 所 有 信 息 存 入 到 磁 盘 文 件 中 。 并 覆 盖 掉 源 文 件 , 以 便 以后 调 用 。(6) 、 holdcx();这 个 函 数 为 保 存 查 询 信 息 到 文 件 的 函 数 , 使 用 时
9、将 查 询 到的 节 点 指 针 传 给 函 数 , 函 数 会 将 该 节 点 所 有 信 息 保 存 到 文 件 中 去 , 文 件 写 入 是 以追 加 方 式 写 入 , 以 便 用 户 查 看 。(7)、 findnumber();findboookname();findauthor();这 三 个 函 数 为 查 询 图书 信 息 函 数 , findnumber();按 编 号 查 询 、 findboookname();按 书 名 查 询 、findauthor();按 作 者 查 询 。 查 询 到 信 息 后 返 回 信 息 所 在 节 点 , 查 询 不 到 则 返 回空
10、 指 针 。(8)、 add();sortnumber();delbook();revamp();这 四 个 函 数 为 功 能 函 数 ,add();添 加 一 本 图 书 信 息 、 sortnumber();将 图 书 按 编 号 排 序 、 delbook();删 除一 本 图 书 信 息 、 revamp();修 改 一 本 图 书 信 息 。 调 用 时 将 链 表 头 指 针 传 递 给 函 数 ,函 数 返 回 经 过 功 能 操 作 后 的 头 指 针 。(9)、 borrowbook();returnbook();这 两 个 函 数 是 借 书 还 书 的 函 数 ,bor
11、rowbook();借 书 returnbook();还 书 。 在 借 还 后 系 统 会 修 改 图 书 的 在 库 信 息 。调 用 时 将 链 表 头 指 针 传 递 给 函 数 , 函 数 返 回 经 过 功 能 操 作 后 的 头 指 针 。 并 会 出 提示 信 息 让 用 户 返 回 菜 单 保 存 信 息 。3 实 现 注 释 :这 个 实 用 的 小 型 图 书 管 理 程 序 程 序 以 链 表 操 作 完 成 , 并 实 现 文 件 信 息 的 录 入和 保 存 等 功 能 , 所 有 信 息 以 磁 盘 文 件 方 式 保 存 , 方 便 用 户 使 用 。 实 现
12、了 图 书 管 理的 基 本 功 能 , 包 括 了 图 书 的 录 入 、 存 储 、 查 询 、 添 加 、 删 除 、 修 改 、 借 书 、 还 书等 功 能 。 查 询 时 可 按 书 名 、 编 号 、 作 者 等 方 式 查 询 , 找 到 后 输 出 这 本 书 的 所 有 信息 。 在 添 加 图 书 信 息 后 , 还 增 加 了 链 表 排 序 操 作 , 并 输 出 整 个 链 表 , 方 便 用 户 检查 信 息 。 可 查 询 图 书 的 在 库 状 态 , 方 便 用 户 进 行 借 书 、 还 书 操 作 。 在 借 书 还 书 成功 后 图 书 的 在 库 状
13、 态 改 变 , 并 有 提 示 信 息 让 用 户 保 存 信 息 。 系 统 中 主 要 的 数 据 结构 就 是 图 书 的 信 息 , 包 含 编 号 、 书 名 、 作 者 、 出 版 社 、 出 版 时 间 、 价 格 、 在 库 状态 等 , 在 处 理 过 程 中 各 项 可 以 作 为 一 本 图 书 的 不 同 属 性 来 进 行 处 理 。4 结 构 体 系 设 计 :图 书 管 理 系 统 主 界 面 流 程 图图 书 管 理 系 统 流 程 图录入所有书籍信息 进入图书管理系统 显示菜单进入图书查询系统 进入图书借还系统 保存所有图书信息 返回上级菜单图 书 管 理
14、系 统 主 界 面开 始返回上级菜单显示所有图书信息 添加一本图书信息 修改一本图书信息 删除一本图书信息 保存所有图书信息图 书 管 理 系 统 主 界 面图 书 查 询 系 统 主 界 面 流 程 图图 书 借 还 系 统 主 界 面 流 程 图5 设 计 过 程 中 的 想 法 与 程 序 中 的 不 足 :作 为 学 期 末 的 一 项 课 程 , 主 要 靠 编 出 来 的 系 统 来 考 察 我 们 所 掌 握 的 基 本 理 论知 识 及 实 际 解 决 问 题 的 能 力 , 通 过 这 次 c语 言 课 程 设 计 , 很 大 程 度 上 锻 炼 了 我 们写 程 序 的 动
15、 手 能 力 和 自 主 思 考 能 力 。 利 用 所 学 知 识 , 开 发 小 型 实 用 的 应 用 系 统 ,掌 握 运 用 C语 言 编 写 调 试 应 用 系 统 程 序 , 对 于 我 们 独 立 开 发 应 用 系 统 并 进 行 数 据处 理 的 综 合 能 力 是 一 个 很 大 的 提 高 。显示所有图书信息 按编号查询图书 按书名查询图书 按作者查询图书 保存所查询图书的信息 返回上级菜单图 书 查 询 系 统 主 界 面借书 还书 返回上级菜单图 书 借 还 系 统总 的 来 说 这 个 程 序 大 致 实 现 了 题 目 的 要 求 , 但 是 这 套 程 序 仍
16、 然 存 在 着 很 多 的问 题 与 不 足 。 比 如 ,没 有 对 界 面 进 行 操 作 , 只 是 实 现 了 简 单 的 功 能 , 程 序 写 的 有点 繁 琐 , 不 是 那 么 井 然 有 序 , 条 理 清 晰 , 程 序 注 释 也 不 是 很 完 善 , 对 信 息 处 理 功能 还 有 些 不 足 之 处 , 提 示 信 息 不 明 确 , 对 于 数 据 的 错 误 输 入 处 理 不 是 很 完 善 等 等 。这 个 系 统 主 要 是 我 自 己 编 写 的 , 同 时 也 得 到 了 老 师 和 同 学 的 一 些 帮 助 。 我 在做 系 统 的 过 程 中
17、 也 遇 到 了 很 多 问 题 , 有 的 是 知 识 不 足 , 有 的 是 考 虑 不 够 周 全 , 。事 实 证 明 , 只 靠 自 己 的 知 识 面 还 是 很 窄 , 独 立 处 理 问 题 能 力 不 是 很 强 , 以 后 还 要加 强 对 c语 言 的 学 习 。我 认 为 对 于 C语 言 编 写 的 程 序 来 说 , 使 用 方 法 大 致 都 是 一 样 的 , 所 以 如 果 要改 进 的 话 , 就 是 要 改 进 一 些 算 法 , 尽 量 把 界 面 编 写 清 楚 , 提 示 信 息 全 面 , 方 便 易用 。三 、 用 户 手 册 :下 面 , 我
18、大 致 介 绍 一 下 我 的 系 统 的 主 要 功 能 和 注 意 事 项 :当 运 行 此 程 序 时 , 首 先 进 入 系 统 主 界 面 , 然 后 可 以 选 择 1.进 入 系 统 , 2.退出 系 统 。 选 择 1后 进 入 系 统 , 然 后 显 示 功 能 菜 单 按 数 字 键 选 择 所 需 服 务 。 功 能 菜单 中 , 1录 入 所 有 书 籍 信 息 , 2进 入 图 书 管 理 系 统 , 3进 入 图 书 查 询 系 统 , 4进 入图 书 借 还 系 统 , 5 保 存 所 有 图 书 信 息 , 6 显 示 菜 单 , 7 返 回 上 级 菜 单 。
19、 当 出 现 “请 选 择 “时 ,需 要 输 入 选 项 前 的 数 字 , 输 完 之 后 按 回 车 ( 下 同 ) 。 首 次 运 行 系 统 需要 先 选 择 1录 入 库 存 书 籍 信 息 , 然 后 再 选 择 其 他 操 作 。 当 选 择 2时 会 进 入 图 书 管理 系 统 , 在 这 里 可 以 选 择 添 加 、 修 改 信 息 等 操 作 , 需 要 注 意 的 是 每 次 执 行 完 添 加 、修 改 等 操 作 后 需 要 手 动 选 择 保 存 图 书 信 息 的 操 作 , 不 然 磁 盘 文 件 信 息 不 会 改 变( 下 同 ) 。 返 回 上 级
20、菜 单 进 入 图 书 查 询 系 统 、 图 书 借 还 系 统 的 操 作 和 管 理 系 统 的差 不 多 , 用 户 可 自 己 尝 试 使 用 , 所 有 信 息 最 后 均 以 磁 盘 文 件 方 式 保 存 , 而 且 格 式固 定 , 在 输 入 和 输 出 均 按 这 种 格 式 , 用 户 在 使 用 时 必 须 要 按 这 种 格 式 输 入 , 否 则会 出 现 文 件 信 息 错 误 。四 、 调 试 与 测 试 :上 机 操 作 ( 截 图 )系 统 主 界 面 ( 选 择 数 字 进 入 , 退 出 系 统 )选 择 1进 入 系 统 , 然 后 出 现 功 能
21、菜 单 ;选 择 3进 入 查 询 系 统 , 然 后 出 现 功 能 菜 单 ;选 择 2输 入 图 书 编 号 , 显 示 查 询 到 图 书 ;五 、 小 节 :在 这 一 个 星 期 的 实 践 中 , 通 过 编 写 这 个 图 书 管 理 系 统 , 我 体 会 到 了 c语 言 学习 的 实 用 性 。 将 理 论 和 实 践 结 合 在 一 起 , 用 先 进 的 计 算 机 工 具 方 便 人 们 的 生 活 。C语 言 程 序 的 编 写 首 先 要 从 大 局 考 虑 , 把 自 己 编 写 整 个 程 序 的 思 想 都 写 在 草 稿 上 ,这 样 有 助 于 自 己
22、 编 写 程 序 , 在 编 写 时 要 完 善 注 释 , 方 便 其 他 人 理 解 程 序 。 编 写 的程 序 从 理 论 上 来 说 并 没 有 错 , 但 以 上 机 就 问 题 不 断 。 甚 至 有 些 课 本 上 的 知 识 照 搬不 变 , 也 不 能 得 到 正 确 的 结 果 。 有 时 一 个 程 序 改 了 一 遍 又 一 遍 , 但 就 是 不 能 成 功 ,编 程 显 得 枯 燥 乏 味 , 看 似 简 单 的 程 序 题 , 在 调 试 时 却 屡 屡 出 错 。 经 反 复 的 修 改 后 ,结 果 正 确 了 , 这 时 所 有 的 乏 味 都 显 得 那
23、 么 无 力 , 一 切 都 是 值 得 的 。我 认 为 , 开 发 一 套 系 统 , 最 重 要 的 是 细 心 , 并 且 思 考 要 全 面 , 结 合 实 际 , 充分 考 虑 到 客 户 的 需 求 和 现 实 意 义 。 不 管 什 么 系 统 , 只 用 运 用 到 实 际 应 用 中 , 才 具有 先 现 实 意 义 。 所 以 c 语 言 程 序 的 实 用 性 很 强 , 我 们 以 后 还 要 更 加 努 力 认 真 地学 习 编 程 语 言 。参 考 文 献 :1 黄 明 等 编 著 C语 言 课 程 设 计 北 京 : 电 子 工 业 出 版 社2 郭 翠 英 编
24、 著 C语 言 课 程 设 计 案 例 精 编 北 京 : 中 国 水 利 水 电 出 版 社3 宁 正 元 数 据 结 构 ( c语 言 ) 南 京 : 东 南 大 学 出 版 社 。 2000年 6月 第 1版4 严 蔚 敏 等 数 据 结 构 ( c 语 言 版 ) 北 京 : 清 华 大 学 出 版 社 , 1997年 4月第 1版5 谭 浩 强 编 著 C程 序 设 计 题 解 与 上 机 指 导 (第 3版 ) 北 京 : 清 华 大 学 出 版 社6 谭 浩 强 编 著 C程 序 设 计 (第 3版 ) 北 京 : 清 华 大 学 出 版 社7 洪 国 胜 等 编 著 C+ Bu
25、ilder程 序 设 计 轻 松 上 手 北 京 : 清 华 大 学 出 版 社8 宁 正 元 数 据 结 构 ( c语 言 ) 南 京 : 东 南 大 学 出 版 社 。 2000年 6月 第 1版9 严 蔚 敏 等 数 据 结 构 ( c 语 言 版 ) 北 京 : 清 华 大 学 出 版 社 , 1997年 4月第 1版 。 10 明 日 科 技 编 著 VisualC+程 序 开 发 范 例 宝 典 北 京 : 人 民 邮 电出 版 社 。11 胡 学 钢 等 数 据 结 构 算 法 设 计 指 导 北 京 : 清 华 大 学 出 版 社 , 1999年 第 1版 。12 刘 大 有
26、数 据 结 构 ( 面 向 21世 纪 课 程 教 材 ) 北 京 : 高 等 教 育 出 版 社 。 2001年 6月 第 1版 。13 胡 学 钢 等 数 据 结 构 算 法 设 计 指 导 北 京 : 清 华 大 学 出 版 社 , 1999年 第 1版 。附 录 :源 程 序 代 码#include#include#includetypedefstructlinkcharnumber100;/编 号charbookname100;/书 名charauthor100;/作 者charpublish100;/出 版 社chartime100;/出 版 时 间floatprice;/价 格c
27、harstatus100;/在 库 状 态structlink*next;link;/函 数 声 明link*Cbook();voidmainmenu();voidmenu1();voidglmenu();voidcxmenu();voidjhmenu();voidprint(link*head);void hold(link*head);voidholdcx(link*t);link*findnumber(link*head);link*findboookname(link*head);link*findauthor(link*head);link*add(link*head);link*s
28、ortnumber(link*head);link*delbook(link*head);link*revamp(link*head);link*borrowbook(link*head);link*returnbook(link*head);/主 函 数main()inta,b,c,d,e;link*h,*t;L:system(“cls“);/L为 一 个 标 志 位 , 用 于 从 子 函 数 返 回 主 界 面mainmenu();while(1)/主 程 序 循 环 运 行scanf(“%d“,switch(a)case1:/进 入 主 系 统B:system(“cls“);/B为 一
29、 个 标 志 位 , 用 于 从 子 函 数 返 回 主 功 能 界 面menu1();while(1)scanf(“%d“,switch(b)case1:/图 书 信 息 的 录 入 h=Cbook();break;case2:/进 入 图 书 管 理 的 子 系 统system(“cls“);glmenu();while(1)scanf(“%d“,switch(c) case1:/显 示 所 有 图 书 信 息print(h);break;case2:/添 加 一 本 图 书 信 息h=add(h);h=sortnumber(h);print(h);break;case3:/修 改 一 本
30、 书 的 信 息revamp(h);break;case4:/删 除 一 本 图 书 信 息h=delbook(h);print(h);break;case5:/保 存 图 书 信 息hold(h);break;case6: gotoB;break;break;case3:/进 入 图 书 查 询 的 子 系 统system(“cls“);cxmenu();while(1) scanf(“%d“,switch(d) case1:/显 示 所 有 图 书 信 息print(h);break;case2:/按 编 号 查 询 图 书t=findnumber(h);if(t=NULL)printf(
31、“没 有 要 查 询 的 图 书 ! ! ! “);if(t!=NULL)printf(“查 询 的 图 书 为 : “);printf(“n“);printf(“n*n“);printf(“n编 号 tt书 名 tt作 者 tt出 版 社 tt 出 版 时 间 tt价 格 tt状 态 n“);printf(“n“);printf(“%st%st%st%st%s“,t-number,t-bookname,t-author,t-publish,t-time);printf(“tt%.2f“,t-price);printf(“tt%s“,t-status);printf(“n“);break;ca
32、se3:/按 书 名 查 询 图 书t=findboookname(h);if(t=NULL)printf(“没 有 要 查 询 的 图 书 ! ! ! “);if(t!=NULL)printf(“查 询 的 图 书 为 : “);printf(“n“);printf(“n*n“);printf(“n编 号 tt书 名 tt作 者 tt出 版 社 tt 出 版 时 间 tt价 格 tt状 态 n“);printf(“n“);printf(“%st%st%st%st%s“,t-number,t-bookname,t-author,t-publish,t-time);printf(“tt%.2f“
33、,t-price);printf(“tt%s“,t-status);printf(“n“);break;case4:/按 作 者 查 询 图 书t=findauthor(h);if(t=NULL)printf(“没 有 要 查 询 的 图 书 ! ! ! “);if(t!=NULL)printf(“查 询 的 图 书 为 : “);printf(“n“);printf(“n*n“);printf(“n编 号 tt书 名 tt作 者 tt出 版 社 tt 出 版 时 间 tt价 格 tt状 态 n“);printf(“n“);printf(“%st%st%st%st%s“,t-number,t-
34、bookname,t-author,t-publish,t-time);printf(“tt%.2f“,t-price);printf(“tt%s“,t-status);printf(“n“);break;case5:/保 存 查 询 信 息holdcx(t);break;case6:/返 回 上 级 菜 单 gotoB;break;break;case4:/图 书 借 还 系 统system(“cls“);jhmenu();while(1)scanf(“%d“,switch(e) case1:/借 书borrowbook(h);break;case2:/还 书returnbook(h);br
35、eak;case3:/返 回 上 级 菜 单gotoB;break;break;case5:/ 保 存 图 书 信 息 到 文 件hold(h);break;case6:/显 示 主 功 能 菜 单system(“cls“);menu1();break;case7:/返 回 系 统 主 界 面gotoL;break;break;case0:/退 出 系 统printf(“ttt感 谢 使 用 , 再 见 ! ! ! “);exit(0);/链 表 的 创 建 和 信 息 的 录 入link*Cbook()intn=0;link*p,*q,*head;FILE*fp;fp=fopen(“图 书
36、信 息 .txt“,“r+“);if(fp=NULL)printf(“没 有 找 到 文 件 , 请 检 查 “);p=(link*)malloc(sizeof(link);if(p=NULL)printf(“申 请 内 存 出 错 ! ! ! n“);fscanf(fp,“%s%s%s%s%s“,p-number,p-bookname,p-author,p-publish,p-time);fscanf(fp,“%f“,fscanf(fp,“%s“,p-status);while(feof(fp)=0)n+;if(n=1) head=p;elseq=p;p=(link*)malloc(size
37、of(link);if(p=NULL)printf(“申 请 内 存 出 错 ! ! ! n“);fscanf(fp,“%s%s%s%s%s“,p-number,p-bookname,p-author,p-publish,p-time);fscanf(fp,“%f“,fscanf(fp,“%s“,p-status);q-next=p;p-next=NULL;fclose(fp);printf(“信 息 已 录 入 ! ! ! “);returnhead;/系 统 主 界 面voidmainmenu()printf(“n*n“);printf(“n* 欢 迎 使 用 图 书 管 理 系 统 *n
38、“);printf(“n* 1.进 入 系 统 “);printf(“t0.退 出 系 统 *n“);printf(“n*n“);printf(“n 请 选 择 “);/功 能 菜 单voidmenu1()printf(“n*n“);printf(“n* 1.录 入 所 有 书 籍 信 息 *n“);printf(“n* 2.进 入 图 书 管 理 系 统 *n“);printf(“n* 3.进 入 图 书 查 询 系 统 *n“);printf(“n* 4.进 入 图 书 借 还 系 统 *n“);printf(“n* 5.保 存 所 有 图 书 信 息 *n“);printf(“n* 6.
39、显 示 菜 单 *n“);printf(“n* 7.返 回 上 级 菜 单 *n“);printf(“n*n“);printf(“n请 选 择 “);/管 理 系 统 菜 单voidglmenu()printf(“n*n“);printf(“n* 1.显 示 所 有 图 书 信 息 *n“);printf(“n* 2.添 加 一 本 图 书 信 息 *n“);printf(“n* 3.修 改 一 本 图 书 信 息 *n“);printf(“n* 4.删 除 一 本 图 书 信 息 *n“);printf(“n* 5.保 存 所 有 图 书 信 息 *n“);printf(“n* 6.返 回
40、上 级 菜 单 *n“);printf(“n*n“);printf(“n 请 选 择 “);/查 询 系 统 菜 单voidcxmenu()printf(“n*n“);printf(“n* 1.显 示 所 有 图 书 信 息 *n“);printf(“n* 2.按 编 号 查 询 图 书 *n“);printf(“n* 3.按 书 名 查 询 图 书 *n“);printf(“n* 4.按 作 者 查 询 图 书 *n“);printf(“n* 5.保 存 所 查 询 图 书 的 信 息 *n“);printf(“n* 6.返 回 上 级 菜 单 *n“);printf(“n*n“);prin
41、tf(“n 请 选 择 “);/借 还 系 统 菜 单voidjhmenu()printf(“n*n“);printf(“n* 1.借 书 *n“);printf(“n* 2.还 书 *n“);printf(“n* 3.返 回 上 级 菜 单 *n“);printf(“n*n“);printf(“n请 选 择 “);/输 出 链 表 函 数voidprint(link*head) link*p;p=head;if(p=NULL)printf(“文 件 中 没 有 图 书 信 息 n“);elseprintf(“n“);printf(“n*n“);printf(“n编 号 tt书 名 tt作 者
42、 tt出 版 社 tt 出 版 时 间 tt价 格 tt状 态 n“);while(p!=NULL) printf(“n“);printf(“%st%st%st%st%s“,p-number,p-bookname,p-author,p-publish,p-time);printf(“tt%.2f“,p-price);printf(“tt%s“,p-status);printf(“n“);p=p-next;/保 存 信 息 到 文 件 子 函 数void hold(link*head)link*p;FILE*fp;fp=fopen(“图 书 信 息 .txt“,“w+“);if(fp=NULL)
43、printf(“文 件 操 作 出 错 ! ! ! “);exit(1);p=head;for(;p!=NULL;p=p-next) fprintf(fp,“n“);fprintf(fp,“%st%st%st%st%s“,p-number,p-bookname,p-author,p-publish,p-time);fprintf(fp,“tt%.2f“,p-price);fprintf(fp,“tt%s“,p-status);fclose(fp);printf(“信 息 已 保 存 。 “);/子 函 数 保 存 查 询 的 信 息 到 文 件voidholdcx(link*t) link*p
44、=NULL;FILE*fp;fp=fopen(“查 询 .txt“,“a+“);p=t;fprintf(fp,“查 询 到 的 信 息 为 : n“);fprintf(fp,“n“);fprintf(fp,“n*n“);fprintf(fp,“n 编 号 tt书 名 tt作 者 tt出 版 社 tt出 版 时 间 tt 价 格 tt状 态 n“);fprintf(fp,“n“);fprintf(fp,“%st%st%st%st%s“,p-number,p-bookname,p-author,p-publish,p-time);fprintf(fp,“tt%.2f“,p-price);fprin
45、tf(fp,“tt%s“,p-status);fprintf(fp,“n“);fclose(fp);printf(“信 息 已 保 存 !“);/子 函 数 按 编 号 查 询link*findnumber(link*head)charkey100;link*h,*t1=NULL;printf(“请 输 入 图 书 的 编 号 : “);getchar();gets(key);for(h=head;h!=NULL;h=h-next) if(strcmp(key,h-number)=0) t1=h;break;returnt1;/子 函 数 按 书 名 查 询link*findboookname(link*head)charkey100;link*h,*t2=NULL;printf(“请 输 入 图 书 的 书 名 : “);getchar();gets(key);for(h=head;h!=NULL;h=h-next) if(strcmp(key,h-bookname)=0) t2=h;break;return t2;/子 函 数 按 作 者 查 询link*findauthor(li