数据结构课程设计报告图书馆

上传人:第*** 文档编号:31144372 上传时间:2018-02-05 格式:DOC 页数:17 大小:134.50KB
返回 下载 相关 举报
数据结构课程设计报告图书馆_第1页
第1页 / 共17页
数据结构课程设计报告图书馆_第2页
第2页 / 共17页
数据结构课程设计报告图书馆_第3页
第3页 / 共17页
数据结构课程设计报告图书馆_第4页
第4页 / 共17页
数据结构课程设计报告图书馆_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构课程设计报告图书馆》由会员分享,可在线阅读,更多相关《数据结构课程设计报告图书馆(17页珍藏版)》请在金锄头文库上搜索。

1、 数据结构课程设计报 告设计题目: 小型图书馆管理系统 专 业: 信息管理与信息系统 学生姓名: 班级学号: 指导教师: 2010 年 6 月 25 日数据结构课程设计报告一、 设计时间 2010/6/21-6/25二、 设计地点第一实验楼计算机系机房 511三、 设计目的1、学习数据结构理论知识,进一步熟悉基本概念;2、熟练掌握链表的创建以及进行插入,排序,查找,删除等操作,了解程序基本的流程。能根据实际问题的具体情况,结合数据结构中的基本理论和基本算法,正确分析出数据的逻辑结构,合理的选择相应的存储结构,并能设计出解决问题的有效算法;3、运用所学 C 语言知识,了解并掌握开发的各个流程,以

2、及各功能代码的实现。我们通过上机学习,学会有效利用基本的调试方法,找出程序中出现的错误代码并修改;4、培养查阅资料,独立思考问题的能力。四、 设计小组成五、 指导老师六、 设计课题小型图书馆管理系统七、 基本思路及关键问题的解决方法根据老师给的课题要求,小型图书管理系统的设计主要可以分为图书信息录入、图书信息浏览、图书信息查询、图书信息修改、图书信息删除几大功能块。由于课题要求系统得到设计必须用 C 语言和数据结构的相关知识,所以我们首先要创建一个新链表并用链表的每个节点存储一条图书记录,即结构体(book) ,其中各域分别为:分类号(classfy) 、书名(bookname) 、作者(au

3、thor )、定价(price)、出版社 (publisher),指针域(next)。小型图书馆系统的信息录入、信息浏览、信息查询、信息修改、信息删除功能快的实现分别用 InsertDoc ,search_book ,Print_Book_Doc, info_change ,DeleteDoc 等来实现。八、 算法及流程图(1)主要算法1、存储结构定义struct books_listchar author20; /*作者名*/char bookname20; /*书名*/ char publisher20; /*出版单位*/char pbtime15; /*出版时间*/char loginn

4、um10; /*登陆号*/float price; /*价格*/char classfy10; /*分类号*/struct books_list * next; /*链表的指针域*/;struct books_list * Create_Books_Doc(); /*新建链表*/void InsertDoc(struct books_list * head); /*插入 */void DeleteDoc(struct books_list * head , int num);/*删除*/void Print_Book_Doc(struct books_list * head);/*浏览*/vo

5、id search_book(struct books_list * head); /*查询 */void info_change(struct books_list * head);/*修改*/void save(struct books_list * head);/*保存数据至文件*/2、新建链表头节点struct books_list * Create_Books_Doc()struct books_list * head;head=(struct books_list *)malloc(sizeof(struct books_list); /*分配头节点空间*/head-next=NU

6、LL; /*头节点指针域初始化,定为空*/return head;3、用 insterdoc 实现插入操作void InsertDoc(struct books_list *head)/*定义结构体指针变量 s 指向开辟的新结点首地址 p 为中间变量*/ struct books_list *s, *p;char flag=Y; /*定义 flag,方便用户选择重复输入*/p=head;/*遍历到尾结点,p 指向尾结点*/while(p-next!= NULL)p=p-next;4、用 search_book 实现查询操作void search_book(struct books_list *

7、head)struct books_list * p;char temp20;p=head;if(head=NULL | head-next=NULL) /*判断数据库是否为空*/printf( 图书库为空!n);5、用 Print_Book_Doc 来实现浏览操作void Print_Book_Doc(struct books_list * head)struct books_list * p;if(head=NULL | head-next=NULL) /*判断数据库是否为空*/printf(n 没有图书记 录! nn);return; p=head;printf( n);printf(登

8、录号 书 名 作 者 出版单位 出版时间 分类号 价格 n); printf(n);/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/while(p-next!= NULL)p=p-next;printf(%-6.6s%-10.10s%-10.10s%-10.10s%-12.12s%-6.6s%.2f n,p-loginnum,p-bookname,p-author,p-publisher,p-pbtime,p-classfy,p-price); /*循环输出表格*/printf(n);printf(n);6、用 info_change 来实现修改操作void info_change

9、(struct books_list * head)struct books_list * p;int panduan=0; /*此变量用于判断是否找到书目*/char temp20;p=head;printf(请输入要修改的书名:);scanf(%s,temp);while(p-next!= NULL)p=p-next;if(strcmp(p-bookname,temp)=0)printf(n 请输入图书登陆卡号:);fflush(stdin);scanf(%s,p-loginnum); fflush(stdin);scanf(%s,p-classfy);printf(n 请输入图书价格:)

10、;fflush(stdin);scanf(%f,printf(n);panduan=1;if(panduan=0)printf(n 没有图书记录! nn);return;7、用 DeleteDoc 来实现删除操作void DeleteDoc(struct books_list * head) struct books_list *s,*p; /*s 为中间变量,p 为遍历时使用的指针*/char temp20;int panduan; /*此变量用于判断是否找到了书目*/panduan=0;p=s=head;printf( 请输入您要删除的书名:);scanf(%s,temp);(2)程序流程

11、系统的执行应从功能菜单的选择开始,依据用户的选择来进行的处理直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。流程图如下:开始 输入 n Y choice=1 NChoice=2Y NY choice=3 NY choice=4 NY choice=5 N九、程中出现的问题及解决方法。把执行运行的界面截图!程序的设计和编写时一个异常繁杂的过程,所以我们在程序的设计过程中难免会出现各种各样的错误,导致我们的写的程序不能够正常运行。我在小型图书管理系统的设计过程中就出现一些或难或易得问题。开始 输入 n Y choice=1 NChoice=2Y NY choice=3 NY choice=4 NY choice=5 NY choice=6 N图书馆信 图书馆信 图书馆信 图书馆信息 图书馆信 退出系统 输入错误,请重新输入 息录入 息浏览 息查询 修改 息删除 小到因为粗心大意丢失了“;” ,而在编译窗口出现几十个错误。其实错误并不可怕,主要是要找到错误的根源,那样错误就可以任意的被纠正。在我调试的过程中,出现的另一个错误,我吓了一跳。不过好在编译器帮我找到了问题的所在,原来是中间变量 P 没有定义。发现了问题所以很容易就解决啦。由于我的问题很多但是都是一些常见且简单的问题,所以也不在这里赘述

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号