1、密 级 :XXXXXX UNIVERSITY本 科 毕 业 论 文 ( 设 计 )题 目 : 基 于 C 语 言 的 图 书 管 理 系 统 的 设 计 与 实 现学 院 XXXXXXXXXXXXXX 学 院专 业 xxxxxxxxxxxxxxxx姓 名 XXXXXX班 级 XXXXXXXXXXXXXX学 号 000000000指 导 教 师 XXXXXX起 讫 时 间 XXXXXXXXXXXXXXX基 于 C 语 言 的 图 书 管 理 系 统 的 设 计 与 实 现摘 要 随 着 新 世 纪 的 到 来 , 人 类 正 在 进 入 信 息 化 时 代 。 信 息 化 浪 潮 、 网 络 革
2、 命 在 给 社 会带 来 冲 击 的 同 时 , 也 使 图 书 馆 业 务 受 到 了 强 烈 的 冲 击 , 图 书 馆 传 统 的 管 理 和 服 务 方 式 已不 能 适 应 读 者 对 日 益 增 长 的 文 献 信 息 的 需 求 。 随 着 馆 藏 量 的 不 断 增 加 , 图 书 资 料 的 录 入和 查 询 的 难 度 也 就 相 应 增 加 , 数 据 处 理 手 工 操 作 , 工 作 量 大 , 出 错 率 高 , 出 错 后 不 易 更改 的 手 工 方 式 , 已 经 不 能 满 足 要 求 。基 于 此 问 题 , 建 立 一 个 规 范 化 , 系 统 化
3、, 程 序 化 的 图 书 管 理 系 统 迫 不 急 待 。 为 方 便 对 图书 馆 书 籍 、 读 者 资 料 、 借 还 书 等 进 行 高 效 的 管 理 , 特 编 写 程 序 以 提 高 图 书 馆 的 管 理 效 率 。使 用 程 序 之 后 , 工 作 人 员 可 以 查 询 某 位 读 者 、 某 种 图 书 的 借 阅 情 况 , 还 可 以 对 当 前 图 书借 阅 情 况 进 行 一 些 统 计 , 以 便 全 面 掌 握 图 书 的 流 通 情 况 等 等 。关 键 词 C语 言 、 图 书 管 理 、 数 据 处 理 、 信 息 技 术Design and Imp
4、lementation of Book Management System based on C languageAbstract With the advent of the new century, mankind is entering the information age.Waveofinformationtechnology,networkingrevolutiontoimpactonsociety,butalsotomakethe library business has been badly hit, traditional library management and ser
5、vice methodscan not meet the growing needs of readers of literature information. With the increasingamount of collection, data entry and query books difficulty will increase accordingly, manualdata processing, workload, error rate, manually after an error is not easy to change, can notmeettherequire
6、ments.Based on this problem, establish a standardized, systematic, and procedures of librarymanagement system can not wait. To facilitate the efficient management of library books,readers information, borrowing books and other special programming to improvemanagement efficiency Library. After using
7、the program, staff can query Reviewed readerssome cases borrow books, you can also borrow books on the current situation of somestatistics,inordertofullygraspthecirculationofbooksandthelike. K ey words C language, library management, data processing, information technologyi目 录第 一 章 绪 论 .11.1 选 题 背 景
8、 和 选 题 意 义 .11.2 图 书 管 理 系 统 简 介 .11.3 图 书 管 理 系 统 需 求 分 析 .1第 二 章 系 统 分 析 .22.1 题 目 分 析 .22.2 系 统 分 析 .2第 三 章 管 理 系 统 的 总 体 设 计 与 详 细 设 计 .33.1 总 体 设 计 .33.2 详 细 设 计 .4第 四 章 调 试 与 测 试 .13第 五 章 编 码 实 现 .14结 论 .18致 谢 .19主 要 参 考 文 献 .19附 录 程 序 源 代 码 .201第 一 章 绪 论1.1 选 题 背 景 和 选 题 意 义随 着 社 会 的 发 展 及 知
9、识 经 济 时 代 的 到 来 , 信 息 管 理 系 统 在 各 行 各 业 发 挥 着 越 来 越 重 要的 作 用 。 而 在 高 校 的 图 书 管 理 中 , 避 免 了 手 工 操 作 而 带 来 的 一 些 不 必 要 的 问 题 。图 书 馆 作 为 一 种 信 息 资 源 的 集 散 地 , 图 书 和 用 户 借 阅 资 料 繁 多 , 包 含 很 多 的 信 息 数 据的 管 理 , 现 今 , 有 很 多 的 图 书 馆 都 是 初 步 开 始 使 用 , 甚 至 尚 未 使 用 计 算 机 进 行 信 息 管 理 。根 据 调 查 得 知 , 他 们 以 前 对 信
10、息 管 理 的 主 要 方 式 是 基 于 文 本 , 表 格 等 纸 介 质 的 手 工 处 理 ,数 据 处 理 工 作 量 大 ,容 易 出 错 。 由 于 数 据 繁 多 ,容 易 丢 失 ,且 不 易 查 找 。 总 的 来 说 , 缺 乏 系统 规 范 的 信 息 管 理 手 段 。 尽 管 有 的 图 书 馆 有 计 算 机 , 但 是 尚 未 用 于 信 息 管 理 , 没 有 发 挥 它的 效 力 , 资 源 闲 置 比 较 突 出 , 这 就 是 管 理 信 息 系 统 的 开 发 的 基 于 环 境 。1.2 图 书 管 理 系 统 简 介图 书 管 理 系 统 是 图
11、书 馆 的 重 要 组 成 部 分 , 图 书 是 我 们 最 好 的 获 取 信 息 的 方 式 , 但 由 于图 书 馆 图 书 收 藏 量 大 大 增 加 , 使 传 统 的 图 书 管 理 员 的 工 作 日 益 繁 重 起 来 , 迫 使 人 们 起 用 新的 管 理 方 法 来 管 理 图 书 。 本 文 通 过 设 计 和 开 发 图 书 馆 管 理 系 统 的 实 践 , 阐 述 了 图 书 管 理 软件 中 所 应 具 有 的 功 能 、 设 计 、 实 现 。 介 绍 了 图 书 管 理 系 统 的 设 计 和 系 统 功 能 的 实 现 过 程 。该 系 统 可 以 运
12、用 于 高 校 的 图 书 管 理 , 由 图 书 借 阅 , 图 书 归 还 , 图 书 查 询 , 图 书 信 息 修 改 ,等 多 个 模 块 组 成 , 实 现 了 图 书 资 料 的 计 算 机 网 络 管 理 。一 般 通 用 的 图 书 馆 管 理 系 统 通 常 包 括 系 统 管 理 、 读 者 管 理 、 编 目 、 图 书 流 通 、 统 计 、查 询 等 功 能 。 比 较 先 进 的 系 统 能 够 在 一 个 界 面 下 实 现 图 书 、 音 像 、 期 刊 的 管 理 , 设 置 假 期 、设 置 暂 离 锁 、 暂 停 某 些 读 者 的 借 阅 权 、 导
13、入 导 出 读 者 资 料 、 交 换 MARC(Machine ReadableCatalogue)数 据 、 升 级 辅 助 编 目 库 、 征 订 图 书 等 。 此 外 , 随 着 工 Internet 应 用 的 发 展 ,一 个 完 善 的 系 统 还 应 提 供 无 缝 接 入 Internet的 功 能 , 通 过 IE浏 览 器 让 读 者 使 用 借 阅 资 料查 询 、 更 换 密 码 、 预 约 、 资 料 检 索 等 功 能 。 有 些 系 统 还 能 提 供 读 者 自 助 服 务 , 可 以 开 放 一些 客 户 机 让 读 者 自 行 管 理 密 码 、 查 询
14、 自 己 的 借 阅 史 、 预 约 资 料 、 检 索 资 料 等 。1.3 图 书 管 理 系 统 需 求 分 析为 满 足 图 书 管 理 现 代 化 的 需 求 , 国 内 软 件 商 已 开 发 出 很 多 商 品 化 图 书 管 理 软 件 , 但 他们 大 多 是 面 向 大 型 专 业 图 书 馆 而 开 发 的 , 专 业 性 强 , 操 作 和 使 用 比 较 复 杂 , 难 以 掌 握 。 而国 内 很 多 中 小 型 图 书 馆 由 于 管 理 人 员 不 多 且 大 多 数 不 是 图 书 管 理 业 务 的 专 业 人 员 、 业 务 分2工 也 不 是 很 详 细
15、 、 明 确 , 这 样 的 软 件 对 于 他 们 而 言 太 复 杂 , 所 以 应 用 效 果 并 不 是 很 好 。目 前 在 大 的 图 书 馆 己 经 有 一 整 套 比 较 完 善 的 信 息 管 理 系 统 , 而 在 一 般 小 型 图 书 馆 中 大部 分 工 作 还 是 进 行 手 工 管 理 , 工 作 效 率 低 , 并 不 能 即 时 了 解 图 书 馆 各 类 图 书 的 库 存 , 读 者比 较 需 求 的 图 书 难 以 在 短 时 间 内 找 到 , 图 书 的 入 库 和 更 新 比 较 麻 烦 等 等 , 不 便 于 动 态 及 时调 整 图 书 结 构
16、 。 同 时 由 于 不 可 避 免 的 人 为 因 素 , 造 成 数 据 的 遗 漏 、 误 报 等 。 为 了 更 好 的 适应 当 前 中 小 型 图 书 馆 的 读 者 借 阅 需 求 , 缓 解 手 工 管 理 存 在 的 各 种 弊 端 , 因 此 开 发 了 面 向 中小 型 图 书 馆 的 图 书 管 理 系 统 , 为 用 户 提 供 全 方 位 的 信 息 服 务 。通 过 对 中 小 型 图 书 馆 的 调 查 、 分 析 发 现 , 用 户 的 需 求 可 分 为 4 个 方 面 :第 一 是 图 书 馆的 工 作 人 员 通 过 计 算 机 来 管 理 各 类 图
17、书 , 分 类 编 号 、 调 整 图 书 结 构 、 增 加 图 书 库 存 , 适 应读 者 的 需 求 。 第 二 是 读 者 能 通 过 计 算 机 来 查 询 浏 览 图 书 馆 中 的 图 书 , 来 确 定 自 己 需 要 的 书籍 , 为 借 阅 做 好 准 备 。 第 三 是 工 作 人 员 对 读 者 的 借 书 情 况 能 够 作 好 全 面 掌 握 , 能 及 时 得 到每 个 读 者 的 当 前 借 阅 状 态 和 历 史 借 阅 记 录 。 第 四 也 是 图 书 馆 的 核 心 工 作 , 对 图 书 的 借 阅 管理 。 在 软 、 硬 件 方 面 对 系 统
18、的 需 求 是 软 件 要 易 学 , 容 易 掌 握 , 可 以 很 简 单 方 便 地 管 理 各 种图 书 信 息 。 硬 件 的 配 置 要 求 不 能 太 高 , 这 样 可 以 适 应 中 小 型 图 书 馆 的 经 济 条 件 。总 之 , 中 小 型 图 书 馆 管 理 信 息 系 统 旨 在 提 供 一 个 可 以 操 作 的 , 方 便 查 询 的 , 易 于 修 改的 辅 助 管 理 系 统 。 同 时 提 供 了 系 统 智 能 辅 助 与 用 户 自 主 选 择 的 两 种 方 式 , 提 高 查 询 效 率 。第 二 章 系 统 分 析2.1 题 目 分 析本 课
19、程 设 计 任 务 的 目 的 是 要 求 学 生 按 照 分 析 、 设 计 、 编 码 、 调 试 和 测 试 的 软 件 开 发 过程 独 立 完 成 管 理 系 统 设 计 , 以 及 C语 言 算 法 的 掌 握 ,并 能 最 终 实 现 本 系 统 的 功 能 要 求 , 通 过这 个 程 序 可 以 学 习 到 以 前 调 试 短 程 序 没 有 的 的 经 验 。要 求 为 各 项 操 作 功 能 设 计 一 个 菜 单 。 应 用 程 序 运 行 后 , 先 显 示 这 个 菜 单 , 然 后 用 户 通过 菜 单 项 选 择 希 望 进 行 的 操 作 项 目 ; 要 求
20、以 上 功 能 分 别 用 函 数 实 现 。2.2 系 统 分 析图 书 馆 管 理 系 统 包 括 : 录 入 : 新 进 图 书 及 基 本 信 息 输 入 删 除 : 旧 图 书 及 基 本 信 息 删 除 查 询 : 查 询 要 借 阅 的 图 书 信 息3 修 改 : 修 改 已 有 的 图 书 信 息 借 书 : 实 现 用 户 办 理 借 书 手 续 还 书 : 实 现 用 户 .办 理 还 书 手 续系 统 以 菜 单 方 式 工 作 , 界 面 友 好 , 易 于 操 作 。系 统 的 程 序 设 计 环 境 :本 系 统 使 用 Visual C+ 作 为 程 序 开 发
21、 工 具 。 Visual C+是 基 于 对 象 的 快 速 应 用 程 序开 发 工 具 , 是 当 今 最 强 大 、 最 灵 活 的 应 用 程 序 开 发 工 具 之 一 , 具 有 良 好 的 可 视 化 应 用 程 序开 发 环 境 和 强 大 的 可 扩 展 数 据 库 功 能 。 利 用 Visual C+提 供 的 可 视 化 组 件 库 进 行 编 程 , 可以 快 速 、 高 效 地 开 发 出 基 于 Windows环 境 的 各 类 应 用 程 序 。 Visual C+语 言 的 特 点 是 面 向对 象 设 计 的 程 序 语 言 , Visual C+的 基
22、础 编 程 语 言 是 具 有 面 向 对 象 特 性 的 语 言 , 具 有 代 码稳 定 、 可 读 性 好 、 编 译 速 度 快 等 优 点 , 并 将 面 向 对 象 的 概 念 移 植 到 了 C语 言 中 , 使 这 种 基础 语 言 有 了 新 的 发 展 空 间 。 与 其 它 编 程 软 件 相 比 , 特 别 是 在 数 据 库 和 网 络 应 用 方 面 , VisualC+具 有 简 便 易 用 、 灵 活 高 效 的 特 点 。开 发 软 件 通 常 要 经 过 修 改 源 代 码 、 编 译 、 测 试 、 再 修 改 、 再 编 译 、 再 测 试 等 操 作
23、, 这些 操 作 形 成 了 一 个 开 发 循 环 , 所 以 快 速 的 编 译 器 可 以 大 大 地 降 低 开 发 周 期 。 Visual C+正是 建 立 在 这 种 高 效 编 译 器 的 基 础 之 上 , 是 针 对 Windows的 最 快 的 高 级 语 言 代 码 编 译 器 , 因此 生 成 的 代 码 十 分 精 练 高 效 , 使 Visual C+程 序 的 运 行 速 度 更 快 。 这 也 是 本 人 使 用 VisualC+作 为 程 序 设 计 开 发 语 言 的 重 要 原 因 。第 三 章 管 理 系 统 的 总 体 设 计 与 详 细 设 计3.
24、1 总 体 设 计总 体 设 计 目 标 : 使 用 者 可 以 利 用 本 系 统 进 行 对 图 书 馆 借 阅 的 各 项 运 算 操 作 , 如 根 据 用户 的 需 求 自 动 的 进 行 添 加 图 书 , 删 除 图 书 , 借 书 还 书 。 查 找 所 要 的 图 书 , 查 阅 图 书 的 详 细资 料 , 查 阅 读 者 的 详 细 资 料 。 最 后 清 晰 完 整 的 结 果 于 屏 幕 中 。 大 大 方 便 使 用 者 对 图 书 借 阅的 操 作 , 不 仅 节 省 时 间 , 而 且 提 高 准 确 性 , 可 以 达 到 事 半 功 倍 的 效 果 。总 体
25、 设 计 策 略 : 本 系 统 采 用 的 是 自 顶 向 下 、 层 次 化 的 模 块 结 构 。 对 高 层 模 块 , 采 用 以事 务 为 中 心 的 设 计 策 略 , 把 一 个 大 的 模 块 逐 步 分 解 成 较 小 的 相 对 简 单 的 模 块 。 对 低 层 模 块 ,采 用 以 变 换 为 中 心 的 设 计 策 略 。 为 了 提 高 每 个 模 块 的 内 聚 性 、 降 低 模 块 间 的 耦 合 性 , 将 每个 模 块 设 计 成 具 有 单 一 功 能 的 模 块 ( 即 功 能 内 聚 ) , 使 模 块 间 的 联 系 完 全 是 通 过 主 模
26、块 的控 制 和 调 用 来 实 现 ( 即 非 直 接 耦 合 ) 。4结 合 上 述 分 析 该 系 统 应 包 括 以 下 模 块 : 信 息 输 入 、 信 息 删 除 , 信 息 查 询 , 信 息 显 示 ,信 息 修 改 , 图 书 借 出 、 图 书 归 还 。结 构 如 图 :图 1 结 构 框 图图 书 数 据 : 序 号 、 书 名 、 作 者 、 出 版 社 、 存 数 、 总 数 。3.2 详 细 设 计 主 函 数主 函 数 要 求 设 计 比 较 简 洁 , 只 提 供 设 输 入 , 处 理 和 输 出 部 分 的 函 数 调 用 。 其 中 各 功 能模 块
27、用 菜 单 方 式 选 择 。流 程 如 图 :图 2 主 函 数 流 程 图5主 函 数 程 序 代 码 :voidmain(void)menu:page_title(“操 作 选 单 “);printf(“请 用 数 字 键 选 择 操 作 nn“);printf(“ttt1 注 册 新 书 ttt2 借 阅 图 书 n“);printf(“ttt3 查 询 图 书 信 息 ttt4 修 改 图 书 信 息 n“);printf(“ttt5 归 还 图 书 ttt6 删 除 图 书 n“);printf(“ttt7 显 示 图 书 ttt8 退 出 系 统 n“);printf(“请 按
28、数 字 键 :n“);switch(getch()case1:book_add();break;case2:book_out();break;case3:book_search();break;case4:book_change();break;case5:book_in();break;case6:book_del();break;case7:book_show();break;case8:exit(0);gotomenu; 输 入 模 块分 析 : 该 模 块 的 功 能 是 假 如 用 户 需 要 新 加 入 新 的 图 书 信 息 , 通 过 键 盘 输 入 将 新 信 息 逐条 加
29、在 原 来 输 入 文 件 上 但 不 能 覆 盖 原 有 信 息 。流 程 如 图 :图 3 输 入 模 块 流 程 图6输 入 模 块 程 序 代 码 :voidbook_add(void)intn;system(“cls“);page_title(“注 册 新 书 “);for(n=0;n0)printf(“请 输 入 借 书 证 序 号 :“);scanf(“%d“,printf(“请 输 入 可 借 天 数 :“);scanf(“%d“,for(l=0;l#include#include#includestructBOOKintid,usr10,total,store,days10;
30、charname30,author20,publish40;books100;voidpage_title(char*menu_item)printf(“ttt*欢 迎 使 用 图 书 馆 管 理 系 统 *nn-%s-nn“,menu_item);voidreturn_confirm(void)printf(“n按 任 意 键 返 回 n“);getch();intsearch_book(void) intn,i;printf(“请 输 入 图 书 序 号 :“);scanf(“%d“,for(n=0;n0)printf(“请 输 入 借 书 证 序 号 :“);scanf(“%d“,pri
31、ntf(“请 输 入 可 借 天 数 :“);scanf(“%d“,for(l=0;l10;l+)if(booksn.usrl=0) booksn.usrl=s;booksn.daysl=d;break; booksn.store-; if(n!=-1return_confirm();voidbook_in(void)intn,s,l;system(“cls“);page_title(“归 还 图 书 “);if(n=search_book()!=-1for(l=0;l10;l+)if(booksn.usrl!=0)printf(“%d-%d天 n“,booksn.usrl,booksn.da
32、ysl);printf(“请 输 入 借 书 证 序 号 :“);scanf(“%d“,for(l=0;l10;l+)if(booksn.usrl=s) booksn.usrl=0;booksn.daysl=0; break; booksn.store+; if(n!=-1return_confirm();voidbook_add(void)24intn;system(“cls“);page_title(“注 册 新 书 “);for(n=0;n100;n+)if(booksn.id=0)break;printf(“序 号 :“);scanf(“%d“,printf(“书 名 :“);scan
33、f(“%s“,printf(“作 者 :“);scanf(“%s“,printf(“出 版 社 :“);scanf(“%s“,printf(“数 量 :“);scanf(“%d“,booksn.store=booksn.total;return_confirm();intbook_del(void) intn,num,i;system(“cls“);page_title(“删 除 图 书 “);printf(“请 输 入 所 要 删 除 的 书 的 编 号 : “);scanf(“%d“,for(n=0;n100;n+) if(booksn.id=num)for(i=n;i100;i+) bo
34、oksi.id=booksi+1.id;strcpy(booksi.name,booksi+1.name);strcpy(booksi.publish,booksi+1.publish);printf(“该 书 已 删 除 .n“);returnn;25printf(“没 有 找 到 相 关 记 录 n“);return-1;voidmain(void)menu:page_title(“操 作 选 单 “);printf(“请 用 数 字 键 选 择 操 作 nn“);printf(“ttt1 注 册 新 书 ttt2 借 阅 图 书 n“);printf(“ttt3 查 询 图 书 信 息
35、ttt4 修 改 图 书 信 息 n“);printf(“ttt5 归 还 图 书 ttt6 删 除 图 书 n“);printf(“ttt7 显 示 图 书 ttt8 退 出 系 统 n“);printf(“请 按 数 字 键 :n“);switch(getch() case1:book_add();break;case2:book_out();break;case3:book_search();break;case4:book_change();break;case5:book_in();break;case6:book_del();break;case7:book_show();break;case8:exit(0); gotomenu;