收藏 分享(赏)

《小型图书管理》 高级语言程序设计.doc

上传人:dreamzhangning 文档编号:2702913 上传时间:2018-09-25 格式:DOC 页数:18 大小:255KB
下载 相关 举报
《小型图书管理》  高级语言程序设计.doc_第1页
第1页 / 共18页
《小型图书管理》  高级语言程序设计.doc_第2页
第2页 / 共18页
《小型图书管理》  高级语言程序设计.doc_第3页
第3页 / 共18页
《小型图书管理》  高级语言程序设计.doc_第4页
第4页 / 共18页
《小型图书管理》  高级语言程序设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、学号 1308020149 高级语言程序设计 课程设计报告题目: 小型图书管理专业: 网络工程班级: 13级(1)班姓名: 朱黄宏指导教师:程庆成绩:计算机与信息工程系二 0 一四年四月二十日2013-2014 学年 第二学期计算机与信息工程系 高级语言程序设计课程设计报告12目录1设计内容及要求.21.1设计内容.21.2设计任务及具体要求.32概要设计.32.1该系统的功能简介.32.2 总体程序框图.32.3各个模块之间的主要关系33设计过程或程序代码43.1设计过程43.2源代码.54程序调试分析.115小结.15致谢.16计算机与信息工程系 高级语言程序设计课程设计报告13参考文献.

2、161 设计内容及要求1.1 设计内容小型图书管理系统主要了解了图书管理的工作流程,并根据课程设计要求进行设计。通过对图书管理系统内的图书进行添加和删除操作,实现同学借书和还书的记录工作,通过对图书的查找和按指定方式排序,更有利于同学们挑选自己所需要的图书,节省借阅借书所需时间。同时,通过按需要的条件排序,也有助于图书管理人员更加方便快捷的管理全部书库图书信息。遍历查找和插入排序的功能,以及其它所有的算法操作都是为了方便快捷的利用图书馆资源,更大化的优化操作流程和更好体现人机一体化的概念。1.2设计要求要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提

3、高学生用高级语言进行程序设计的能力,重点提高用 C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计2.1该系统的功能简介主要利用 c 语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:图书入库,按书名、出版社、价格、作者进行查询和分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以设计参数 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。2.2 总体程序框图计算机与信息工程系 高级语言程序设计课程设计报告143 设计过程或程序代码3.1设计过程分析:系统要求实现许多的功能,因此遵

4、循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。(1)整个系统除了主函数外,另外还有各种功能子函数,利用循环语句do-while()和选择语句switch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主函数中首先从文件读取信息到链表中,以用于后面其他函数的操作。总体主要实现了图书的录入、存储、查询、添加、删除、修改、排序等功能。 (2)在主函数中选择管理员登录或者学生登录,并且输入正确密码后才可以进入系统,若连续3次输入密码错误将会被强制退出。 (3) Create_Books_Doc();这是一个指针

5、函数,它主要实现了链表的创建,它返回的时一个单向链表的头。其他函数调用时只需调用它返回的头即可。Clear();此为清屏操作,在运行中可以随时将屏幕清空。 (4) Print_Book_Doc ();这个函数为链表的输出函数,把链表的头传给函数后,计算机与信息工程系 高级语言程序设计课程设计报告15可以表格的形式输出整个链表的所有信息。、 (5)save();这个函数为保存信息到文件的函数,使用时将链表的头传给函数,函数可将整个链表的所有信息存入到磁盘文件中。并覆盖掉源文件,以便以后调用。Read()这个函数为读取文件的函数,将文件中的数据读入链表中。 (6)search_book1();se

6、arch_book2();search_book3();search_book4();search_book5();这五个函数为查询图书信息函数,它们分别按编号、书名、作者、借书人姓名、借书人学号进行查询。查询到信息后返回信息所在节点,查询不到则返回空指针。 (7)InsertDoc();Sorting_order1();Sorting_order2();DeleteDoc ();info_change ();这四个函数为功能函数,InsertDoc();添加图书信息、Sorting_order1();将图书按编号排序、Sorting_order2();将图书按价格排序、DeleteDoc (

7、);删除图书信息、info_change ();修改图书信息。调用时将链表头指针传递给函数,函数返回经过功能操作后的头指针。计算机与信息工程系 高级语言程序设计课程设计报告16定义图书结构体 struct book结构体内容:定义作者、书名、出版社、书号数组及浮点型价格数据。char writer20;/作者/char title20;/书名/char publishinghouse20;/出版社/char number10;/书号/float price;/价格/struct book * next;定义书库的结构体指针:struct book * Create_Book();插入图书信息:

8、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);3.2 源代码#include#include#includestruct book计算机与信息工程系 高级语言程序设

9、计课程设计报告17char 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 *

10、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“); fp

11、rintf(fp,“ n“);while(p-next!= NULL)计算机与信息工程系 高级语言程序设计课程设计报告18p=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;sw

12、ap=(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(“

13、n 请输入图书出版社:“);fflush(stdin);scanf(“%s“,s-publishinghouse);printf(“n 请输入图书价格:“);fflush(stdin);计算机与信息工程系 高级语言程序设计课程设计报告19scanf(“%f“,printf(“n“);/排序/p1=p-next;if(head-next!=NULL)doif(strcmp(p1-number),(s-number)0)strcpy(swap-number,p1-number);strcpy(swap-title,p1-title);strcpy(swap-writer,p1-writer);st

14、rcpy(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

15、-publishinghouse,swap-publishinghouse);s-price=swap-price;p=p1; p1=p-next;while(p1!=NULL);p-next=s;s-next=NULL;printf(“ * 添加成功!*“);计算机与信息工程系 高级语言程序设计课程设计报告110printf(“n 继续添加?(Y/N):“);fflush(stdin);scanf(“%c“,printf(“n“);if(flag=N|flag=n)break;else if(flag=Y|flag=y)continue;save(head);/查找/void search_

16、book(struct book *head)struct book * p;char temp20;p=head;if(head=NULL | head-next=NULL)printf(“ * 图书库为空!*n“);elseprintf(“请输入您要查找的书名: “);fflush(stdin);scanf(“%s“,temp);while(p-next!= NULL)p=p-next;if(strcmp(p-title,temp)=0)printf(“n 图书已找到!n“);printf(“n“);计算机与信息工程系 高级语言程序设计课程设计报告111printf(“书号: %stn“,

17、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“);print

18、f(“ 书号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“);计算机与信息工程系 高级语言程序设计课程设计报告112printf(“n“);/更改/void change_Book(struct book * head)struct book * p;int panduan=0;char temp20;p=head;printf(

19、“请输入要修改图书的书号:“);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

20、);scanf(“%f“,printf(“n“);panduan=1;if(panduan=0)printf(“ n*没有图书记录!*nn“);计算机与信息工程系 高级语言程序设计课程设计报告113/删除/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;

21、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计算机与信息工程系 高级语言程序设计课程设计报告114printf(“ 您输入的书目不存在,请确认后输入!n“);/主函数/void main() struct book * head;int choice;head=NULL;while(1)printf(“ *n“); printf(“ * 小型图书管理系统 *n“);printf(“ * *n“);printf(“ * 1图书信

22、息录入 *n“);printf(“ * *n“);printf(“ * 2图书信息浏览 *n“);printf(“ * *n“);printf(“ * 3图书信息查询 *n“);printf(“ * *n“);printf(“ * 4图书信息修改 *n“);printf(“ * 计算机与信息工程系 高级语言程序设计课程设计报告115*n“);printf(“ * 5图书信息删除 *n“);printf(“ * *n“);printf(“ * 6退出系统 *n“);printf(“ *n“);printf(“ 请选择:“);fflush(stdin);scanf(“%d“,switch (cho

23、ice)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;计算机与信息工程系 高级语言程序设计课程设计报告116case 6:printf(“n“);printf(“ * 感谢使用图书管理系统 *n“);break;default:printf(“ * 输入错误,请重新输入!*“);break;

24、4 程序调试分析主界面:显示提示操作信息,按提示信息进行操作,方便操作管理。计算机与信息工程系 高级语言程序设计课程设计报告117添加信息页面:在主界面选择 1,分书号、书名等条目添加图书信息,存档到书库,便于用户查找和管理员管理所有图书。在一次添加完成后可以根据提示进行继续添加图书信息到书库。5 小结经过这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了链表基本性质和有关小型数据系统问题的解决方法,熟悉了各种调用的数据类计算机与信息工程系 高级语言程序设计课程设计报告118型,在调试和运行过程中使我更加的了解和熟悉程序运行的环境变量,提高了我对程序调试分析的能力和对错误的纠正能力。

25、这次数据结构的程序设计,对于我来说是一个挑战。老师教导我们:课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设计我深有体会。通过这次的课程设计,让我深刻意识到自己在学习中的不足,同时也找到了克服这些弱点的方法,这也是一笔很大的资源财富。在以后的学习过程中,我应该利用更多的时间去上机实验,多编写程序,相信不久后我的编程能力都会有很大的提高能设计出更多的更有创新的程序或软件。6 致谢指导老师程庆老师,还有我的 C语言同组同学。在此,我对他们表示感谢! 在这次 C语言课程设计中感谢他们在我面对困难时,给了我及大的帮助。7 参考文献1谭浩强著.C 程序设计(第二版).北京:清华大学出版社,19992谭浩强,张基温,唐永炎编著.C 语言程序设计.北京:高等教育出版社,19923谭浩强编著.QBASIC 语言教程.北京:电子工业出版社,19974谭浩强.C 程序设计M.3 版.北京:清华大学出版社,2005

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报