小型图书管理系统C语言课程设计报告.doc_第1页
小型图书管理系统C语言课程设计报告.doc_第2页
小型图书管理系统C语言课程设计报告.doc_第3页
小型图书管理系统C语言课程设计报告.doc_第4页
小型图书管理系统C语言课程设计报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

德州学院计算机系 2009级 数据结构课程设计 德州学院计算机系课程设计报告实习名称 数据结构 设计题目 小型图书管理系统 实习时间 2011.1.3-2011.1.9 专业班级 2009级网络工程 指导老师 徐志敏 教学单位(盖章) 小组分工情况:学号姓名分工200901005005刘伟插入排序存档程序编写、报告撰写200901005056孟学文删除查找修改程序编写、报告撰写二0一一年一月九日课程设计报告正文内容及格式要求:1、正文部分主要包括:选题背景、论点或方案论证、过程(设计或实验)论述、结果分析、结论或总结。2、标题:题目用小二号黑体字(加黑),居中;副标题用三号黑体字,紧挨正标题下居中,文字前加破折号。英文题目为18磅加粗Times New Roman字,副标题为16磅加粗Times New Roman字。3、课程设计报告格式要求:一级标题用小三号黑体字;二级标题用四号黑体字;三级标题用小四号黑体字;正文用宋体小四号字(英文用12磅Times New Roman字),采用1.5倍行距,标准字符间距:页码一律用小5号字标明。4、课程设计报告撰写要求:(1)文字通顺,语言流畅,能将设计过程表述清楚。(2)图表整洁,布局合理,须按国家规定的绘图标准绘制。 (3)报告字数不少于3千字。小型图书管理系统一、选题背景在学习了数据结构课本理论知识后,为了检验自己所学知识的牢固性,巩固大家的理论知识,调动大家的编程兴趣;同时为大家提供一个实践自己,检验自己的平台,以增加大家对将来工作的适应能力;也为了锻炼大家的动手实践能力,遂在学期末进行了本次课程设计。“数据结构”在计算机科学中是一门综合性的专业基础课。“数据结构”的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有着密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。因此,可以认为“数据结构”是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。我们本着自己的兴趣及挑战自己的态度,也为检验我们理论知识的熟练度,锻炼我们动手实践能力,我们选择了小型图书管理系统的编写。因为我们生活在大学,图书馆是我们学习的天堂,借书和还书又是必不可少的,一个好的图书管理系统对于我们学生和管理人员都会为大家提供很多便利。本着挑战和创新的思想,我们进行了此次课程设计程序编写及报告撰写。二、运行环境(软、硬件环境) 预装了Windows XP操作系统的PC机、 Microsoft Visual C+ 6.0版编辑器。三、算法设计的思想通过对图书管理系统内的图书进行添加和删除操作,实现同学借书和还书的记录工作,通过对图书的查找和按指定方式排序,更有利于同学们挑选自己所需要的图书,借阅借书所需时间。同时,通过按需要的条件排序,也有助于图书管理人员更加方便快捷的管理全部书库图书信息。遍历查找和插入排序的功能,以及其它所有的算法操作都是为了方便快捷的利用图书馆资源,更大化的优化操作流程和更好体现人机一体话的概念。设计程序框架图:四、算法的流程图五、算法设计分析定义图书结构体struct book结构体内容:定义作者、书名、出版社、书号数组及浮点型价格数据。 char writer20;/作者/ char title20;/书名/ char 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);六、源代码#include#include#includestruct book char writer20; char title20; char 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 * Create_Book()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;fprintf(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) 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 请输入图书价格:); 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); strcpy(p1-title,s-title); 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-next; 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) 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); if(p-next=NULL) printf(n查询完毕!n); void Print_Book(struct book * head) struct book * p; if(head=NULL | head-next=NULL) 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-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); 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; panduan=0; p=s=head; printf( 请输入您要删除的书名:); scanf(%s,temp); p=p-next; while(p!= NULL) if(strcmp(p-title,temp)=0) panduan=1; break; 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 book * head; int choice; head=NULL; while(1) printf( *n); printf( * 小型图书管理系统 *n); printf( * *n); printf( * 1图书信息录入 *n); printf( * *n); printf( * 2图书信息浏览 *n); printf( * *n); printf( * 3图书信息查询 *n); printf( * *n); printf( * 4图书信息修改 *n); printf( * *n); printf( * 5图书信息删除 *n); printf( * *n); printf( * 6退出系统 *n); printf( *n); printf( 请选择:); 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: printf(n); printf( * 感谢使用图书管理系统 *n); break; default: printf( * 输入错误,请重新输入!*); break; 七、运行结果分析主界面:显示提示操作信息,按提示信息进行操作,方便操作管理。添加信息页面:在主界面选择1,分书号、书名等条目添加图书信息,存档到书库,便于用户查找和管理员管理所有图书。在一次添加完成后可以根据提示进行继续添加图书信息到书库。查询库存所需图书信息:在主界面选择3,根据书名,从书库中直接调用所查找图书的全部信息。显示浏览库存图书信息(排序功能):按提示操作在主界面选择2,展示现在书库中所有图书信息,并按书号大小排序,一目了然。更改库存图书信息:在主界面选择4,对图书信息进行更改、存档,更改后图书信息将覆盖原来图书信息并存档。并在修改完成后,在主界面选择2,显示更改后现存图书信息。 在库存中删除外借图书信息:在主界面选择5,从书库中直接删除外借图书,并做存档kucun.txt文件工作。图书存档txt文件:图书信息自动存档txt文件,方便借阅人查看全部库存图书信息,并帮助管理员做好图书信息保存工作。 分析:通过图书管理系统流程截图解析可知,图书信息库的存档和管理都需要图书管理人员的手动操作,而且很机械化,信息更改方法古老繁琐,虽然可以实现智能化的自我按书号排序和按图书书名查找,但是程序还存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论