1、C 语言程序设计课程设计实验报告题目: 图书管理系统 2目 录第一章系统功能模块结构图.31.1 系统调用的函数 .31.2 图书管理系统模块 .31.3 管理系统数据流图 .41.4 系统主菜单 .51.5 图书查询 .51.6 借阅图书 .51.7 管理系统 .51.8 还书 .61.9 退出系统 .6第二章 图书管理系统的结构.62.1 主函数流程图 .62.2 程序文件存储设计 .7第三章 图书管理系统测试 .731 实验结果 7第四章 实验体会.74.1 体会与总结 .7参考文献 .8附录: 源代码 831 系统功能模块结构图本图书管理系统由查阅图书(chabook) ,借阅图书(l
2、enbook),系统管理(图书管理,借书卡管理) ,还书(huanbook)。四个大的菜单模块组成,其总体结构图如下:查阅图书模块 借阅图书模块 系统管理模块 还书系统模块图 1 图书管理系统总体结构图1.1 系统调用的函数函数名称 函数功能Chabook() 图书查阅模块函数Lenbook() 图书借阅函数Huanbook() 还书函数Findbook() 按书名查找函数Addbook() 增加图书函数Delbook() 删除图书函数Changebook() 修改图书函数Bookcount() 图书统计函数Addcar() 增加卡号函数Delcar() 删除卡号函数Lendcount() 借
3、书统计函数Carcount() 卡号统计函数图书管理系统主菜单4图 2 系统调用函数表1.2 图书管理系统功能模块说明:主菜单包括:查阅图书菜单,借阅图书,系统管理菜单,还书。查阅图书菜单:包括按书名查找模块,返回。系统管理菜单:包括图书管理,借书卡管理。图书管理: 1.增加图书 2.删除图书 3.修改图书 4.图书统计借书卡管理:1.申请新卡 2.删除卡号 3.借书统计 4.卡号统计1.3 图书管理系统的数据流图主 菜 单查阅图书借阅图书系统管理还书按书名查找输入卡号和要借阅图书的名字图书管理借书卡管理输入卡号与书名 还书完毕增加图书删除图书修改图书申请新卡图书统计删除卡号借书统计卡号统计返
4、回退出系统5图 3 图书管理系统数据流图1.4 主菜单直接运行程序,将进入主菜单 Main Menu 然后按 0-4 键进入选择。1.5 图书查询功能的实现在主菜单中选择“1:”进入图书查询模块,输入 1 按书名查找,输入 0则返回主菜单,1.6 借阅图书功能的实现在主菜单中选择“2:”,输入卡号与书名即可,否则将提示错误信息,按0 键返回1.7 管理系统 在主菜单中选择“3:”1.7.1 增加图书在管理系统中选择“1:” ,然后输入书籍的序号,书名、作者、与借阅状态,即可完成添加图书操作。1.7.2 删除图书管理菜单中选择“2:” 输入书名,如果存在则自动删除该书籍所有信息,如果不存在系统不
5、做任何改动。1.7.3 修改图书资料管理菜单中选择“3:”输入书名,然后输入新的序号、书名和作者即可完成修改图书操作。1.7.4 书籍统计选择“4:”即可查看所有图书资料1.7.5 (1)申请新卡:在管理菜单中输入:“5:”然后选择“1:”,输入卡号,学生姓名,班级。(2)删除卡号:在“”中选择“2:”,输入卡号即可删除该卡。(3)借书统计:在“”中选择“3:”,可查看所有借出书籍的信息。(4)卡号统计:在“”中选择“4:”,查看所有的卡号信息。61.8 还书在主菜单中输入“4:” ,然后输入卡号与要还的书名即可。1.9 退出在主菜单中输入“0:”,2 程序结构2.1 主函数流程图NN初始化、
6、定义主菜单、分支菜单指针数组及变量程序开始读键盘按键的键值判断键值并弹出对应菜单根据按键执行菜单选项对应的函数从被调用函数中返回并转移退出管理系统用户按了 0 键吗? Y7图 4 系统主函数流程图2.2 程序的文件存储设计程序数据存取主要由三个文件:book.txt、record.txt、car.txt 组成。Book.txt :主要存储图书数据,程序的增加图书、删除图书、查阅图书等功能均是对些文件进行读取操作。Record.txt :借书记录存储文件, 主要用来储存书籍的借出与归还信息。Car.txt : 学生卡号储存文件。另外在程序运行的时候还增加了一个临时文件 book1.txt,它的主
7、要功能是防止因为误操作对源文件 book.txt 的数据破坏。3 实验结果程序基本达到设计要求,由于使用了菜单功能,程序的操作更加直观,一般情况下能正确提示错误信息。但是在测试中也发现软件的一些不足与缺陷,需要进一步修改和维护时予以纠正。总的来说,程序在 TC2.0 和 Win-TC 下通过测试。4 体会刚开始面对这项任务时,自己就有点无信心,因为这项任务量太大了,而且自己的 C语言学得不太好。但后来在老师的指导与同学的帮助与鼓励下,自己翻书本,上网查找和上机实践,逐步地完成了这项作业。通过本次实验,不仅使我所学 c 语言的知识更加巩固,而且可以使理论与实践相结合,更好的掌握所学到的知识。在编
8、写程序的时候我也发现了自己很多的不足之处,例如在课堂上学的理论知识有的时候很难把它应用到实际程序中,看似一个简单的功能模块往往需要很多知识的融合。在图书管理系统的编写过程中,我也更加的明白了程序刚开始设计时结构与算法的重要性。另外由于编写代码时的一个小失误,导致整个程序无法运行,结果后期花很多的时间去调试,在这里希望大家以此为戒,编写代码的时候一定要细心、谨慎。85 参考文献1 吕凤翥等. C 语言程序设计:基础理论与案例.清华大学出版社 20052 曹衍龙等. C 语言实例解析精粹.人民邮电出版社,20053 谭浩强.C 语言程序设计(第二版).清华大学出版社,20026 附录:源程序清单/
9、*华中科技大学,远程与继续教育学院 06 计算机系*/*图书管理系统,C 语言编写*/#include#include#include#include#include#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0struct student /*定义 student 结构,储存学生所借出的书籍信息 */int carnum;char lendbook10;student1000;struct book /*定义书的类型*/int booknum;char bookname10;
10、char bookcreat10;int turefalse; /*该变量为判断书籍是否借出*/book1000;struct car /*定义借书卡的数据类型*/int carnum;char studentname10;int studentclass;car100;9main() /*主菜单开始*/char ch1,ch2,ch3,ch4,ch5;doclrscr();printf(“*Welcome to*n“); /*主菜单*/printf(“*Main Menu*n“);printf(“ 1:n“); /*查询图书*/printf(“ 2:n“); /*借阅图书*/printf(“
11、 3:n“); /*管理系统*/printf(“ 4:n“); /*还书 */printf(“ 0:n“);printf(“Please input 0-4n“);scanf(“%s“,switch(ch1)case 1:chabook();break;case 2:lendbook();break;case 3:doclrscr();printf(“* Welcome to Manager menu*n“); /*管理菜单*/printf(“ 1:n“); /*添加图书*/printf(“ 2:n“); /*删除图书*/printf(“ 3:n“); /*修改图书资料*/printf(“ 4
12、:n“); /*书籍统计*/printf(“ 5:n“);printf(“ 0:n“);printf(“Please input 0-5 n“); scanf(“%s“,switch(ch2)case 1:addbook();break;case 2:delbook();break;case 3:changebook();break;case 4:bookcount();getch();break;case 5:doclrscr();printf(“*jie shu ka guan li system*n“); /*借书卡管理菜10单*/printf(“ 1:n“); /*申请新卡*/prin
13、tf(“ 2:n“); /*删除卡号*/printf(“ 3:n“); /*借书统计*/printf(“ 4:n“); /*卡号统计*/printf(“ 0:n“);printf(“Please input :0-4 n“); /*请输入 0-4,其它错误 */scanf(“%s“,switch(ch4)case 1:addcar();break;case 2:delcar();break;case 3:lendcount();break;case 4:carcount();break;case 0:break;default:printf(“Errorn“);getch();break;wh
14、ile(ch4!=0);break;case 0:break;default:printf(“Errorn“);getch();break;while(ch2!=0);break;case 4:huanbook();break;case 0:break;default:printf(“Errorn“);getch();break;while(ch1!=0);chabook() /*查询图书*/char ch5;doprintf(“*Welcome to book Search System *n“); /*欢迎进入图书查询系统*/printf(“ 1:n“); /*按书名查找*/printf(“ 0:n“); /*输入 0 返回*/scanf(“%s“,switch(ch5)case 1:findbook();getch();break;case 0:break;default:printf(“Errorn“);getch();break;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。