《小型图书管理系统C语言课程设计报告.pdf》由会员分享,可在线阅读,更多相关《小型图书管理系统C语言课程设计报告.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 小型图书管理系统C语言课程设计报告 德州学院计算机系 2009 级 数据结构课程设计 -2-德州学院计算机系 课 程 设 计 报 告 实习名称 数据结构 设计题目 小型图书管理系统 实习时间 2011.1.3-2011.1.9 专业班级 2009 级网络工程 指导老师 徐志敏 教学单位(盖章)小组分工情况:学号 姓名 分工 200901005005 刘伟 插入排序存档程序编写、报告撰写 200901005056 孟学文 删除查找修改程序编写、报告撰写 二 0 一一年一月九日 德州学院计算机系 2009 级 数据结构课程设计 -3-课程设计报告正文内容及格式要求:1、正文部分主要包括:选题背景
2、、论点或方案论证、过程(设计或实验)论述、结果分析、结论或总结。2、标题:题目用小二号黑体字(加黑),居中;副标题用三号黑体字,紧挨正标题下居中,文字前加破折号。英文题目为 18 磅加粗 Times New Roman 字,副标题为 16 磅加粗 Times New Roman 字。3、课程设计报告格式要求:一级标题用小三号黑体字;二级标题用四号黑体字;三级标题用小四号黑体字;正文用宋体小四号字(英文用 12 磅 Times New Roman字),采用 1.5 倍行距,标准字符间距:页码一律用小 5 号字标明。4、课程设计报告撰写要求:(1)文字通顺,语言流畅,能将设计过程表述清楚。(2)图
3、表整洁,布局合理,须按国家规定的绘图标准绘制。(3)报告字数不少于 3 千字。德州学院计算机系 2009 级 数据结构课程设计 -4-小型图书管理系统 一、选题背景 在学习了数据结构课本理论知识后,为了检验自己所学知识的牢固性,巩固大家的理论知识,调动大家的编程兴趣;同时为大家提供一个实践自己,检验自己的平台,以增加大家对将来工作的适应能力;也为了锻炼大家的动手实践能力,遂在学期末进行了本次课程设计。“数据结构”在计算机科学中是一门综合性的专业基础课。“数据结构”的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有着密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的
4、分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。因此,可以认为“数据结构”是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。我们本着自己的兴趣及挑战自己的态度,也为检验我们理论知识的熟练度,锻炼我们动手实践能力,我们选择了小型图书管理系统的编写。因为我们生活在大学,图书馆是我们学习的天堂,借书和还书又是必不可少的,一个好的图书管理系统对于我们学生和管理人员都会为大家提供很多便利。本着挑战和创新的思想,我们进行了此次
5、课程设计程序编写及报告撰写。二、运行环境(软、硬件环境)预装了 Windows XP 操作系统的 PC 机、Microsoft Visual C+6.0 版编辑器。三、算法设计的思想 通过对图书管理系统内的图书进行添加和删除操作,实现同学借书和还书的记录工作,通过对图书的查找和按指定方式排序,更有利于同学们挑选自己所需要的图书,借阅借书所需时间。同时,通过按需要的条件排序,也有助于图书管理人员更加方便快捷的管理全部书库图书信息。遍历查找和插入排序的功能,以及其它所有的算法操作都是为了方便快捷的利用德州学院计算机系 2009 级 数据结构课程设计 -5-图书馆资源,更大化的优化操作流程和更好体现
6、人机一体话的概念。设计程序框架图:四、算法的流程图 德州学院计算机系 2009 级 数据结构课程设计 -6-五、算法设计分析 定义图书结构体 struct book 结构体内容:定义作者、书名、出版社、书号数组及浮点型价格数据。char writer20;/作者/char title20;/书名/char publishinghouse20;/出版社/char number10;/书号/float price;/价格/struct book*next;定义书库的结构体指针:struct book*Create_Book();插入图书信息:德州学院计算机系 2009 级 数据结构课程设计 -7-
7、void Insert(struct book*head);删除图书信息:void Delete(struct book*head);刷新显示书库信息:void Print_Book(struct book*head);查找数目:void search_book(struct book*head);更改图书信息:void change_Book(struct book*head);对数据进行保存工作 void save(struct book*head);六、源代码#include#include#include struct book char writer20;char title20;c
8、har publishinghouse20;char number10;float price;struct book*next;struct book*Create_Book();void Insert(struct book*head);void Delete(struct book*head);void Print_Book(struct book*head);void search_book(struct book*head);void change_Book(struct book*head);void save(struct book*head);struct book*Creat
9、e_Book()德州学院计算机系 2009 级 数据结构课程设计 -8-struct book*head;head=(struct book*)malloc(sizeof(struct book);head-next=NULL;return head;void save(struct book*head)struct book*p;FILE*fp;p=head;fp=fopen(kucun.txt,w+);fprintf(fp,*n);fprintf(fp,书号t 书名t 作者t 出版社t 价格t n);fprintf(fp,n);while(p-next!=NULL)p=p-next;fpr
10、intf(fp,%st%st%st%st%.2ft n,p-number,p-title,p-writer,p-publishinghouse,p-price);fprintf(fp,*n);fclose(fp);printf(已将图书数据保存到 kucun.txt 文件n);/插入/void Insert(struct book*head)struct book*s,*p,*p1,*swap;char flag=Y;swap=(struct book*)malloc(sizeof(struct book);p1=swap;p=head;while(flag=Y|flag=y)德州学院计算机系
11、 2009 级 数据结构课程设计 -9-s=(struct book*)malloc(sizeof(struct book);printf(n 请输入图书书号:);fflush(stdin);scanf(%s,s-number);printf(n 请输入图书书名:);fflush(stdin);scanf(%s,s-title);printf(n 请输入图书作者名:);fflush(stdin);scanf(%s,s-writer);printf(n 请输入图书出版社:);fflush(stdin);scanf(%s,s-publishinghouse);printf(n 请输入图书价格:);
12、fflush(stdin);scanf(%f,&s-price);printf(n);/排序/p1=p-next;if(head-next!=NULL)do if(strcmp(p1-number),(s-number)0)strcpy(swap-number,p1-number);strcpy(swap-title,p1-title);strcpy(swap-writer,p1-writer);strcpy(swap-publishinghouse,p1-publishinghouse);swap-price=p1-price;strcpy(p1-number,s-number);strcp
13、y(p1-title,s-title);德州学院计算机系 2009 级 数据结构课程设计 -10-strcpy(p1-writer,s-writer);strcpy(p1-publishinghouse,s-publishinghouse);p1-price=s-price;strcpy(s-number,swap-number);strcpy(s-title,swap-title);strcpy(s-writer,swap-writer);strcpy(s-publishinghouse,swap-publishinghouse);s-price=swap-price;p=p1;p1=p-n
14、ext;while(p1!=NULL);p-next=s;s-next=NULL;printf(*添加成功!*);printf(n 继续添加?(Y/N):);fflush(stdin);scanf(%c,&flag);printf(n);if(flag=N|flag=n)break;else if(flag=Y|flag=y)continue;save(head);/查找/void search_book(struct book*head)struct book*p;char temp20;p=head;if(head=NULL|head-next=NULL)德州学院计算机系 2009 级 数
15、据结构课程设计 -11-printf(*图书库为空!*n);else printf(请输入您要查找的书名:);fflush(stdin);scanf(%s,temp);while(p-next!=NULL)p=p-next;if(strcmp(p-title,temp)=0)printf(n 图书已找到!n);printf(n);printf(书号:%stn,p-number);printf(书名:%stn,p-title);printf(作者名:%stn,p-writer);printf(出版社:%stn,p-publishinghouse);printf(价格:%.2ftn,p-price
16、);if(p-next=NULL)printf(n 查询完毕!n);void Print_Book(struct book*head)struct book*p;if(head=NULL|head-next=NULL)德州学院计算机系 2009 级 数据结构课程设计 -12-printf(n *没有图书记录!*nn);p=head;printf(*n);printf(书号t 书名t 作者t 出版社t 价格tn);printf(*n);while(p-next!=NULL)p=p-next;printf(%st%st%st%st%.2ftn,p-number,p-title,p-writer,p
17、-publishinghouse,p-price);printf(*n);printf(n);/更改/void change_Book(struct book*head)struct book*p;int panduan=0;char temp20;p=head;printf(请输入要修改图书的书号:);scanf(%s,temp);while(p-next!=NULL)p=p-next;if(strcmp(p-number,temp)=0)printf(n 请输入图书书名:);fflush(stdin);scanf(%s,p-title);德州学院计算机系 2009 级 数据结构课程设计 -
18、13-printf(n 请输入图书作者名:);fflush(stdin);scanf(%s,p-writer);printf(n 请输入图书出版社:);fflush(stdin);scanf(%s,p-publishinghouse);printf(n 请输入图书价格:);fflush(stdin);scanf(%f,&p-price);printf(n);panduan=1;if(panduan=0)printf(n*没有图书记录!*nn);/删除/void Delete(struct book*head)struct book*s,*p;char temp20;int panduan;pa
19、nduan=0;p=s=head;printf(请输入您要删除的书名:);scanf(%s,temp);p=p-next;while(p!=NULL)if(strcmp(p-title,temp)=0)panduan=1;break;德州学院计算机系 2009 级 数据结构课程设计 -14-p=p-next;if(panduan=1)while(s-next!=p)s=s-next;s-next=p-next;free(p);printf(n *删除成功!*n);save(head);else printf(您输入的书目不存在,请确认后输入!n);/主函数/void main()struct
20、book*head;int choice;head=NULL;while(1)printf(*n);printf(*小型图书管理系统 *n);printf(*n);printf(*1图书信息录入 *n);printf(*n);printf(*2图书信息浏览 *n);printf(*n);德州学院计算机系 2009 级 数据结构课程设计 -15-printf(*3图书信息查询 *n);printf(*n);printf(*4图书信息修改 *n);printf(*n);printf(*5图书信息删除 *n);printf(*n);printf(*6退出系统 *n);printf(*n);print
21、f(请选择:);fflush(stdin);scanf(%d,&choice);switch(choice)case 1:if(head=NULL)head=Create_Book();Insert(head);break;case 2:Print_Book(head);break;case 3:search_book(head);break;case 4:change_Book(head);break;case 5:Delete(head);break;case 6:德州学院计算机系 2009 级 数据结构课程设计 -16-printf(n);printf(*感谢使用图书管理系统 *n);b
22、reak;default:printf(*输入错误,请重新输入!*);break;七、运行结果分析 主界面:显示提示操作信息,按提示信息进行操作,方便操作管理。添加信息页面:在主界面选择 1,分书号、书名等条目添加图书信息,存档到书库,便于用户查找和管理员管理所有图书。在一次添加完成后可以根据提示进行继续添加图书信息到书库。德州学院计算机系 2009 级 数据结构课程设计 -17-查询库存所需图书信息:在主界面选择 3,根据书名,从书库中直接调用所查找图书的全部信息。显示浏览库存图书信息(排序功能):按提示操作在主界面选择 2,展示现在书库中所有图书信息,并按书号大小排序,一目了然。德州学院计
23、算机系 2009 级 数据结构课程设计 -18-更改库存图书信息:在主界面选择 4,对图书信息进行更改、存档,更改后图书信息将覆盖原来图书信息并存档。并在修改完成后,在主界面选择 2,显示更改后现存图书信息。在库存中删除外借图书信息:在主界面选择 5,从书库中直接删除外借图书,并做存档 kucun.txt 文件工作。图书存档 txt 文件:图书信息自动存档 txt 文件,方便借阅人查看全部库存图书信息,并帮助管理员做好图书信息保存工作。德州学院计算机系 2009 级 数据结构课程设计 -19-分析:通过图书管理系统流程截图解析可知,图书信息库的存档和管理都需要图书管理人员的手动操作,而且很机械
24、化,信息更改方法古老繁琐,虽然可以实现智能化的自我按书号排序和按图书书名查找,但是程序还存在不足之处,开发程序还有待进一步完善和提高。八、收获及体会 经过这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了链表基本性质和有关小型数据系统问题的解决方法,熟悉了各种调用的数据类型,在调试和运行过程中使我更加的了解和熟悉程序运行的环境变量,提高了我对程序调试分析的能力和对错误的纠正能力。这次数据结构的程序设计,对于我来说是一个挑战。老师教导我们:课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设
25、计我深有体会。在课程设计过程中程序编译的同时我也发现自己对知识的掌握的不足之处。在编译程序的过程中(例如:通过排序程序的嵌套一次次的修改编写以及指针和数组的运用),使我的编程能力有了很大程度的提高,对相关函数也可以做到熟练掌握了。在做这个课程设计的时候遇到许多困难,一个小部分可能就会花掉很长时间编写修改,虽然花费了时间,但是学到了很多知识,同时通过查课本找资料,一点一点的补足学习课本知识时的漏洞,真正让我体会到理论和实践的差距,通过这次课程设计,真正锻炼了我的实践能力,做到了理论和实践相结合,实践联系理论的统一。通过这次的课程设计,让我深刻意识到自己在学习中的不足,同时也找到了克服这些弱点的方法,这也是一笔很大的资源财富。在以后的学习过程中,我应该利用更多的时间去上机实验,多编写程序,相信不久后我的编程能力都会有很大的提高能设计出更多的更有创新的程序或软件。德州学院计算机系 2009 级 数据结构课程设计 -20-指导教师评语 德州学院计算机系 2009 级 数据结构课程设计 -21-注:课程设计成绩由指导教师或答辩小组评定出成绩,分优秀、良好、中等、及格、不及格五级,分别给小组的每个成员打分。成绩 学号 姓名 成绩 指导教师或答辩小组成员(签名)备注
限制150内