当前位置:首页 >> 其它课程 >> C语言程序设计 图书馆管理系统

C语言程序设计 图书馆管理系统


实训报告
题 院 专 姓 学 目: 系: 业: 名: 号: 图书馆管理系统 信息科技学院

指导教师: 日 期: 2015 年 7 月 15 日

桂林电子科技大学信息科技学院

目 录
1 问题定义 =================================1 2 系统设计 -------

--------------------------5 2.1 总体设计 ---------------------------------5 2.2 详细设计 ---------------------------------6 2.2.1 数据结构设计 ---------------------------------6 2.2.2 主控流程 ---------------------------------8 2.2.3 增加信息模块 ---------------------------------7 2.2.4 查找信息模块 ---------------------------------7 2.2.7 删除信息模块 ---------------------------------7 2.2.8 修改信息模块 ---------------------------------7 2.2.8 数据功能描述 ---------------------------------7 3 系统实现 ================================ 2 3.1 编码 -------------------------------- 8 3.1.1 程序预处理 -------------------------------- 9 3.1.2 主函数 main() --------------------------------- 9 3.1.3 主菜单界面 -------------------------------- 11 3.1.7 增加图书信息 -------------------------------- 14 3.1.8 查询图书信息 -------------------------------- 14 3.1.9 删除图书信息 -------------------------------- 15 3.2.0 修改图书信息 -------------------------------- 15 3.2 测试与调试 -------------------------------- 13 3.2.1 概述 -------------------------------- 14 3.2.2 程序测试 -------------------------------- 14 5 归纳总结 ============================================== 3 5.1 开发经验 -------------------------------- 16 5.2 实训中遇到的问题及解决方法------------------------- 16 5.3 设计中的不足之处 --------------------------------- 16 5.4 感想和心得体会 --------------------------------- 16 6 参考资料 ================================= 16

前 言
课程设计环节是应用型本科院校非常重要的一个教学环节, 是学完一门课后应用本课知 识及以前的知识积累而进行的综合性、开放性的训练。通过课程设计,不仅能够使学生得到 系统的技能训练, 巩固和加强所学得专业理论知识, 而且能够培养学生工程意识、 创新能力、 团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。 C 语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自 1972 年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是 人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。 我们通过《C 语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序 的开发也有了初步的认识,还掌握了 C 语言的基本语法,这一过程确确实实令我们感到欣 喜,有点计算机可以完成自我任务的成就感。但是,对于程序设计而言,学习 C 的步伐不 应该停留于此。 我们最终的目的应该是掌握开发大型综合程序的方法, 即遵循软件工程的开 发步骤和结构化程序设计思想,用 C 语言开发出解决复杂问题的大型综合程序。可是对于 多数学生来说,学习了 C 语言后,除了应付各种考试之外,别无它用,对 Turbo C 语言丰富 的函数知之甚少, 加上 DOS 环境所限, 因而对 C 语言兴趣不大, 也感到 C 语言比较难以掌握。 本实训就是为了让学生在学完 C 语言后进一步了解 C 语言的知识, 掌握 C 语言在软件开 发方面的使用方法,希望通过此次实训,不仅能提高学生学习 C 语言的兴趣,更为今后学习 其它专业知识及开发程序打下坚实的基础。 本指导书中有些内容借鉴了互联网上相关程序的设计思想, 在此对相关者表示衷心的感 谢。 由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。 编者

图书馆管理系统
一. 实训目的:

1. 巩固 C 语言的三种基本结构、数组、函数调用的基本知识; 2. 掌握利用 C 语言编写程序的基本方法,提高 C 语言编程技巧,培养分析问题、解决问题
的能力;

3. 熟练掌握 C 语言的编译、调用方法。
二. 实验内容 主菜单

增加图 书信息

查找图 书信息 删除图 书信息

修改图 书信息

退出图 书管理

1、问题定义
创建一个图书馆管理系统。假设系统中每本图书只包括图书名字、图书书号、图书出版 社、图书作者等信息。程序的运行效果如图 1.1 所示,选择任意菜单中的数字,实现相应功 能 。

图 1.1 图书管理系统功能需求 在问题定义阶段要考虑题目的可行性和需求分析, 接下来进入开发阶段, 完成系统设计 和系统实现的任务。

2.

系统设计

2. 1 总体设计 采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务, 然后分别设计各个小任务。 需要注意的是划分出来的模块应该相对独立但又相关, 且容易理 解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上 面一层是主模块,下面各层是其上一层模块的逐步细化描述。 本图书管理系统采用了数组来实现,如下图 1.2 所示,它由五大功能模块组成:

?增加图书信息模块。通过输入图书的书名、书号、出版社、作者来实现增加信息。 ?查找图书信息模块。根据增加的图书的书名来查找图书的信息。 ?删除图书信息模块。根据增加的图书信息记录通过查找定位找到信息进行删除。 ?修改图书信息模块。根据增加的图书信息记录通过查找找到该书信息进行修改。
2.2 详细设计 2.2.1 数据结构设计 ? 图书馆信息结构体 结构体 struct book 将用于储存图书的基本信息,它将作为文件的数据域。 ?
{ char Name[20]; char Number[20]; char publish[20]; char author[10]; /* /* /* /* 书名 */ 书号 */ 出版社 */ 作者 */

Struct book

/* 定义结构体 */

} book[500];

这样就定义了一个数组的结构

?

2.2.2 主控 main()函数执行流程

2.2.3 增加信息模块:主要实现图书信息的增加功能。 2.2.4 查找信息模块:主要实现图书查找书籍的功能。 2.2.5 删除信息模块:主要实现图书删除图书记录的功能 2.2.6 修改信息模块:主要实现修改增加后的图书信息功能。

2.2.7 函数功能述

?add()
函数原型:void add(); add()函数用于在增加图书信息的功能。

?chazhao()
函数原型:chazhao(); chazhao()函数用于在查找图书信息的功能。

?del()
函数原型:del(); del()函数用于在删除图书信息的功能。

?xiugai()
原型函数:xiugai(); xiugai()函数用于在修改图书信息的功能。

?

主函数 main() 整个成绩管理系统控制部分。 void main() /* 整个图书管理系统控制部分 */ { int i; do /* 控制返回菜单 */ { Menu(); printf("请输入要实现的功能"); scanf("%d",&i); if(i<=4&&i>=0) /*请输入 0 到 4 之间的数字*/ switch(i) { case 1 : add() ;break; case 2 : chazhao() ;break; case 3 : del() ;break; case 4 : xiugai() ;break; case 0 : exit(0) ;break; } else printf("对不起,请重新输入并按回车确定\n\n");

}while(1); } 注:图书馆信息管理系统的控制部分。

3、系统实现 3.1 编码 3.1.1 程序预处理 包括定义结构体、常量和变量、声明部分,并对它们进行初始化工作。
#include <stdio.h> /*标准函数输入输出函数库*/

#include <stdlib.h> /*标准函数库*/ #include <string.h> /*字符串函数库*/

/*^TTT^TTT^^TT^TT^TT^T 函数声明部分 T^TTT^T^TT^TT^TT^TT^T*/

void add(); void chazhao(); void del(); void xiugai(); void exti(); void Menu();

/* 增加 */ /* 查找 */ /* 删除 */ /* 修改 */ /* 退出 */ /* 菜单 */

/*T^^TT^TT^TT^TT^T 定义结构体部分 T^TTT^TT^TT^TT^TT^TT^T*/

struct book /* 定义结构体 */ { char Name[20]; char Number[20]; char publish[20]; char author[10]; } book[500];

/* /* /* /*

书名 */ 书号 */ 出版社 */ 作者 */

#include <stdio.h> /*标准函数输入输出函数库*/ #include <stdlib.h> /*标准函数库*/ #include <string.h> /*字符串函数库*/

/*^TTT^TTT^^TT^TT^TT^T 函数声明部分 T^TTT^T^TT^TT^TT^TT^T*/

void add(); void chazhao(); void del(); void xiugai(); void exti(); void Menu();

/* 增加 */ /* 查找 */ /* 删除 */ /* 修改 */ /* 退出 */ /* 菜单 */

/*T^^TT^TT^TT^TT^T 定义结构体部分 T^TTT^TT^TT^TT^TT^TT^T*/

struct book /* 定义结构体 */ { char Name[20]; char Number[20]; char publish[20]; char author[10]; } book[500];

/* /* /* /*

书名 */ 书号 */ 出版社 */ 作者 */

3.1.2 主函数 main()
main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。 void main() /* 整个图书管理系统控制部分 */ { int i; do /* 控制返回菜单 */ { Menu(); printf("请输入要实现的功能"); scanf("%d",&i); if(i<=4&&i>=0) /*请输入 0 到 4 之间的数字*/ switch(i) { case 1 : add() ;break; case 2 : chazhao() ;break; case 3 : del() ;break; case 4 : xiugai() ;break;

case 0 : exit(0) } else

;break;

printf("对不起,请重新输入并按回车确定\n\n");

}while(1); }

3.1.3 主菜单界面
{ printf("━━━━━━━━━━━━欢迎使用图书管理系统━━━━━━━━\n"); printf("┏———————————————菜单—————————————┓\n"); printf("│ │\n"); printf("│按 '1': 增加图书信息 │\n"); printf("│ │\n"); printf("│ │\n"); printf("│按 '2': 查找图书信息 │\n"); printf("│ │\n"); printf("│ │\n"); printf("│按 '3': 删除图书信息 │\n"); printf("│ │\n"); printf("│ │\n"); printf("│按 '4': 修改图书信息 │\n"); printf("│ │\n"); printf("│ │\n"); printf("│按 '0': 退出图书管理 │\n"); printf("│ │\n"); printf("┗—————————请 选 择 你 需 要 的 操 作————————┛\n"); printf("<<<<<<<<<<<<<<<<<<<<==================>>>>>>>>>>>>>>>>>>>> \n"); printf(" } 3.14 增加图书信息
用户进入系统后,输入要添加的书籍信息。

电信工程专业

1051210206\n");

void add() { int i,j;

/* 增加功能 */

printf("请输入要增加图书的图书数量,按回车键结束\n"); scanf("%d",&j); for(i=0;i<j;i++) { printf("请输入要增加图书的图书名字,按回车键结束 book.name="); scanf("%s",book[i].Name); printf("请输入要增加图书的图书书号,按回车键结束 book.num="); scanf("%s", book[i].Number); printf("请输入要增加图书的图书出版社,按回车键结束 book.publish="); scanf("%s", book[i].publish); printf("请输入要增加图书的图书作者,按回车键结束 author="); scanf("%s",book[i].author); } } 3.15 查找图书信息
用户进入系统后,按信息记录进行查找该图书的书籍信息。

void chazhao() /* 查找功能 */ { int j=0; char Name[20]; printf("请输入书的 name="); /* 请输入要查找图书的书名 */ scanf("%s",Name); for(j=0;j<500;j++) /* 找到要查找图书的书名 */ if(strcmp(book[j].Name,Name)==0) { printf("┏━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━┓\n"); printf("┃ 书名 ┃ 书号 ┃ 出版社 ┃ 作者 ┃\n"); printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(" \n"); printf(" %s ┃ %s ┃ %s ┃ %s ┃\n", book[j].Name,book[j].Number,book[j].publish,book[j].author) ; break; } else {printf("抱歉,未找到相应书籍\n"); break;} /* 如果查找到图书的信息就输出该图书信息,否则输出 sorry,未找到相应书 籍 */ } 3.16 删除图书信息
用户进入系统后,按条件输入要删除的图书信息。

void del() /* 删除功能 */ { int j=0; char Name[20]; printf("请输入图书的书名,name="); /* 按 */ scanf("%s",Name);/* */ for(j=0;j<500;j++)/* */ if(strcmp(book[j].Name,Name)==0) /*将定位到你所要查找图书的位置*/ for(;book[j].Name[0]!='\0';j++) book[j]=book[j+1]; /*将查找到的图书的后一本图书的信息覆盖这本图书的信息*/ book[j].Name[0]='\0'; /* 给结构体最后一个图书加上结束符 */ } 3.17 修改图书信息
用户进入系统后,按条件输入要修改的图书信息。

void xiugai() /* 修改功能 */ { int j=0; char Number[20]; printf("请输入要修改图书的 number=");/* 请输入要修改图书的书号 */ scanf("%s",Number); for(j=0;j<500;j++) if(strcmp(book[j].Number,Number)==0) /*定位到你所要修改图书的位置,然后修改该书 籍的相关信息*/ { printf("请输入要修改图书的图书名字,按回车键结束 book.name="); scanf("%s",book[j].Name); printf("请输入要修改图书的图书书号,按回车键结束 book.num="); scanf("%s", book[j].Number); printf("请输入要修改图书的图书出版社,按回车键结束 book.publish="); scanf("%s", book[j].publish); printf("请输入要修改图书的图书作者,按回车键结束 author="); scanf("%s",book[j].author); break; }

3.2 测试与调试

3.2.1 概述
一般情况下, 为解决一个问题所编写的程序代码较长, 可能包括几百条甚至成千上万条 语句。在检查并排除所有语法错误后,还会有不易发现的逻辑错误,因此要对程序进行认真 仔细的测试与调试。 测试是通过运行程序发现错误的过程, 常见的错误有数据溢出、 数组越界、 进入死循环、 语句顺序颠倒、多加“; ”或少加“{}”等等。调试则是确定测试中找到的错误性质并改正 错误的过程。测试与调试通常交替进行,即测试——调试——再测试——再调试。 能检查出尚未发现的、 各种不同类型错误的测试才是成功的测试。 测试程序需要测试用 例,测试用例可用如下公式表示:测试用例=测试数据+预期结果。 好的测试用例应该是用尽可能少的测试数据发现尽可能多的错误, 即发现错误的概率要 大。要选择合适的测试数据,使系统在运行时尽量能执行到每条语句,以测试各指令是否正 确。还应分别测试输入合法数据与非法数据时,程序的运行情况, 。对于合法数据,还要考 虑数据的一般性与特殊性,如求最大值的问题,应测试最大值在最前面、最后面、中间某一 位置的情况。 测试程序时, 用监视窗口可以随时查看变量或表达式的值, 有时还可以将部分程序代码 用注释符暂时括起来,缩短程序,以便压缩出错代码的范围。

3.2.2 程序测试
? 在主菜单中选择 1 当用户输入 1 并按回车键后,即可进入增加图书信息功能。其输入记录过程如图 3.1 所 示。

图 3.1 增加图书信息 ? 在主菜单中选择 2 当用户输入 2 并按回车键后,即可进入查找图书信息界面。其查找过程如图 3.2 所示, 这里按书名查找了一条书名为图书的记录。

图 3.2 查找图书信息 ? 在主菜单中选择 3 当用户输入 3 并按回车键后,即可进入删除界面。其删除记录过程如图 3.3 所示,可按 书名进行删除记录。

图 3.3 删除图书信息 ? 在主菜单中选择 4 当用户输入 4 并按回车键后,即可进入修改图书信息界面。其修改记录过程如图 3.4 所 示 。

图 3.4 修改学生记录

?

在主菜单中选择 0 当用户输入 0 并按回车键后,即可执行退出管理程序的操作, 。

4、系统维护

经测试与调试确认软件无错时,开发就告一段落,这时可以交付软件供用户使用,但是 在软件的使用过程中还会面临更加漫长的工作,即软件维护。一般维护的工作有:更改使用 中发现的错误; 为适应实际环境而对程序进行修改; 为满足新的需求而对程序作必要的改进 等等。

5、归纳总结 5.1 开发经验
通过对本题目的开发,体会到要掌握以下几点内容。

5.2 实训中遇到的问题及解决方法
在这次的实训中, 主要遇到的问题是编译环境的不同对程序也不同。 还有各个函数的应 用不够明确。

5.3 设计中尚存的不足之处
关于这次的程序,也有挺多不足的地方。首先,我觉得程序还不够完善,有些地方甚至 有点乱;其次,有些地方好像功能有点重复了;最后,就是该程序界面不够美观大方,缺少 很多基本的功能。

5.4 感想和心得体会
通过这次实训,C 语言是一本需要严谨的态度来学习。在程序中一个分号就会导致整体 程序无法运行,函数的调用及相关知识要掌握其中的应用知识,才能做出更好地程序,这次 实训给了我对 C 语言产生了更多的兴趣。

6、参考资料
[1] 谭浩强. [2] 李凤霞. C 程序设计(第三版). C 程序设计辅导与实训 清华大学出版社, 清华大学出版社 2005 2001


更多相关文档:

C语言课程设计图书管理系统

C 语言课程设计 语言课程设计 姓名: 姓名:郭献安 班级:054101-13 班级:054101学号: 学号:20101001871 图书管理系统》 《图书管理系统》目录 题目要求及能实现的...

C语言程序设计 图书馆管理系统

C语言程序设计 图书馆管理系统_其它课程_高中教育_教育专区。实训报告题 院专姓学目: 系: 业: 名: 号: 图书馆管理系统 信息科技学院 指导教师: 日期: 2015 ...

图书馆管理系统C语言程序设计

图书馆管理系统C语言程序设计_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 图书馆管理系统C语言程序设计_IT/计算机_专业资料。完整C语言程序设计...

图书管理系统C语言课程设计

二、课程设计的需求分析: 为了满足图书管理的要求,通过计算机技术给图书管理员和读者借书、还书 带来便利。使用 C 语言编写了图书管理系统。本系统主要实现了图书...

图书信息管理系统 C语言程序设计

设计主要研究的是用 C 语言开发图书馆管理功能,其具体体现在图书的检索、查询、 录入功能,更要优化了图书馆管理系统设计。 管理信息系统的设计与开发是一项系统...

c语言程序设计报告 图书管理系统

c语言程序设计报告 图书管理系统_理学_高等教育_教育专区。中国地质大学 本科生课程论文封面 课程名称 c 语言课程设计 教师姓名 樊媛媛 本科生姓名 本科生学 本科生...

C语言图书管理系统程序设计报告

C语言图书管理系统程序设计报告_管理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档C语言图书管理系统程序设计报告_管理学_高等教育_教育专区。课程设计...

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码_理学_高等教育_教育专区。C语言课程设计图书馆管理系统程序代码 #include<stdio.h> #include<windows.h> #include<string.h>...

C语言程序设计--图书管理系统

C语言程序设计--图书管理系统_电脑基础知识_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 C语言程序设计--图书管理系统_电脑基础知识_IT/计算机_专业...

图书馆管理系统C语言课程设计报告(原创)

图书馆管理系统C语言课程设计报告(原创)_计算机软件及应用_IT/计算机_专业资料。本文档内容为本人原创,请勿随意复制、转载,切勿原封不动归为己用。课程...
更多相关标签:
c语言图书馆管理系统 | c语言图书馆借阅系统 | vb图书馆管理系统程序 | 图书馆管理系统程序 | c语言订餐系统源程序 | linux系统下c语言程序 | c语言系统级程序 | 图书馆管理系统设计 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com