数据结构(图书管理系统)课程设计模板(共26页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构(图书管理系统)课程设计模板(共26页).doc》由会员分享,可在线阅读,更多相关《数据结构(图书管理系统)课程设计模板(共26页).doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计题目题目: 图书管理系统 日期:2011-6-25年级: 大二 班级:计科0903班 姓名: 张闲臻 刘晓 李子清 夏广 夏玲玲学号:一实习目的通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。二问题描述 简单的模拟学校图书管理系统,功能比较简单,容易上手。借书步骤如下: 图书入库-学生注册-学生借书-查看图书馆图书信息-查看学生信息-还书管理-再查看图书和学生信息-退出图书管理系统三需求分析需求提出:各大高校都有图书馆,每个学校的图
2、书管理系统可能都不会完全相同,但大致主要功能还是差不多的。好的图书管理系统当然既方便学生借阅书籍,也方便学校图书的管理。需求描述:作为大学生,我们也都很清楚怎么去图书馆借书。1. 首先,当然是要保证图书馆有书,在这个程序中,我们可以理解为图书的采编入库,得保证学生有书借才行。2. 图书馆已经有各式的书了,如果你需要借,则先应该在学校的图书管理系统中注册才行,至少的确认你是该校的学生才有资格的。其实就是一个通行证。3. 接下来就是借书的过程了。4. 借了书最后还是要还的,所以还有一个还书的过程。 四概要设计 系统用到的抽象数据类型定义: 从整个管理系统来看,我们知道这里主要有两个对象,一个是图书
3、馆的图书,另一个就是学生。这里这两个对象不单单是作为简单的主体存在,他们都有很多功能,所以我们使用结构体来定义这两个。 1. 图书结构体的定义: typedef struct char number10; /书号char name20; /书名char author20; /作者int countbook; /库存 int shY; /剩余量 mbook;typedef struct int count;/书的本数mbook book100;/最大可有100本书mlibrary;mlibrary library; 2.学生结构体 typedef struct /学生系统 char accoun
4、tMAXCOUNT; /学生帐号 char name10; /学生姓名 book borrow_bookMAXNUM; /所借书目(书号) int borrownum; /借书数目 stu; typedef struct int u; /用于记录已注册的学生数目 stu zw; /最大学生 数 可以有1000人 Wstudent; Wstudent student; 系统中子程序及功能要求的说明:1. void putin() 图书的采编入库:为了给学生提供较好的学习资源,我们可以采编多种类型的图书,而且每种类型的书籍可以入库一定数量,方便广大学生借阅。2void Regist() 学生注册信
5、息:在借阅之前,通常要有身份识别,主要是为了学校管理各种书籍借出,能够统一规则管理整个借书于还书的过程。3. void borrow() (借书的方法) 其实整个程序的主要目的就是学生借书,学生通过自己注册的唯一编号借阅图书馆在馆的图书。而且每个学生最多只能借8本。4void lent() (还书的方法)借了书之后,在一定的时间内必须要归还,书是图书馆的,不是某个人的,不能总是占有它,当然也是从大众利益出发。5. void lookStu() (查看学生信息) 不管你是借了还是没有借书,只要你注册了,就会有你 的信息。包括你的借阅号,姓名,所借书籍书证号,借阅的书的数目,还书日期等6. voi
6、d save_student() (保存学生信息) 如果只是你单方面的注册,而并没有将你的所有信息保存起来,那就等于你没有注册,如果你注册过了,借书时,没有保存,那就是说图书馆的系统并不承认你借过书。7. void readStu() (读取学生信息) 看上去好像和查看学生信息类似,其实完全不同的过程,这是一个将学生的有关信息保存在文件中的过程,这个过程是我们视觉上感觉不到的。这和保存学生8. void lookup() (查询图书信息) 这个类似于查询学生信息的方法,都是将从文件中读取的信息打印出来。9. void save() (保存图书信息的方法) 也就是将所有图书的信息记录在文件中,比
7、如每次入库了多少图示,是哪些图书,数量是多少,或者是借出去一些后那些图书的现有量是多少等相关的信息。10. void readBook() (读取图书信息) 这个跟读取学生的信息道理是一样的,只有将学生的所有信息读取得内存中,我们才能得到完整的图书信息。 各程序模块之间的调用关系 从上面每个方法差不多也可以知道每个方法之间的关系了。入库之前,我们也需要将已经入库的图书和已经注册好的学生信息读取到内存中,以便后面的操作。入库图书后,需要void save(),之后还要void readBook() 也就是更新图书信息。 学生注册和图书入库的道路是一样的,注册之后,需要保存,再读取到内存中,也就是
8、及时更新信息。 借书和还书的过程都是将图书和学生联系起来,每次借书时都需要同时更新图书的信息和学生的信息,借了书后,学生的记录中应该保存了他所借的书证号以及要还书的日期,而此时图书的信息也要相应的改变,借出后图书的数量或书目上要体现出来。 还书也是如此,成功还书后,学生信息和图书信息也都要更新,就用到了对学生和图书的信息的保存和读取。 五详细设计图书管理系统的伪码描述如下: /保存图书信息的算法 fp=fopen(library.doc,w); /打开文件if(fp=NULL)printf(n不能保存图书信息n);return;fwrite(&library.count,sizeof(int)
9、,1,fp); /读取sizeof(int)个数据到文件中fwrite(library.book,sizeof(library.book0),library.count,fp);/从文件中读取图书信息 fp=fopen(library.doc,r); /打开文件if(fp=NULL)printf(n不能打开图书信息n);return; fread(&library.count,sizeof(int),1,fp); /从文件中读取sizeof(int)个数据到library中 printf(-图书数量-+library.count); fread(library.book,sizeof(libr
10、ary.book0),library.count,fp);/图书信息入库 while(y) scanf(%s,num); strcpy(library.booklibrary.count.number,num); scanf(%s,library.booklibrary.count.name); scanf(%s,library.booklibrary.count.author); scanf(%d,&library.booklibrary.count.countbook); library.booklibrary.count.shY=library.booklibrary.count.cou
11、ntbook; library.count+; /每次新书入库,要将图书的全部信息记录/查看所以图书信息 for (i=0;ilibrary.count;i+)printf(%st%st%st%dt%dn,library.booki.number,library.booki.name,library.booki.author,library.booki.shY,library.booki.countbook); /遍历图书的种类,将其打印出来/保存学生信息 fwrite(&student.u,sizeof(int),1,fp); /从学生信息中,读取sizeof(int)个学生结构体类型数据信
12、息保存到文件中fwrite(student.z,sizeof(student.z0),student.u,fp);/读取学生信息 fread(&student.u,sizeof(int),1,fp);fread(student.z,sizeof(student.z0),student.u,fp);/借书管理 scanf(%s,bnum);/选择要借的书籍序列号 strcpy(student.zi.borrow_bookstudent.zi.borrownum.bName,bnum);/记录学生借书的信息scanf(%s,bo_day); strcpy(student.zi.borrow_boo
13、kstudent.zi.borrownum.borrow_day,bo_day); scanf(%s,lent_day); strcpy(student.zi.borrow_bookstudent.zi.borrownum.lent_day,lent_day);library.booki.shY-;student.zi.borrownum+;/每次借书后,学生的借书数目就会增加,而图书馆内的该类型书数目将减少1/还书管理 for(i=0;istudent.u;i+) /遍历已经注册好的学生for(j=0;jstudent.zi.borrownum;j+) /找到学生后,遍历他所借的所有图书 l
14、ibrary.booki.shY+;student.zi.borrownum-; /还书后,要将该信息清除掉六测试分析 按照附录中的测试数据,得出如下测试、分析结果: 进入系统初始界面(未操作之前,图书和学生的文件也还不存在)注册读者(已经注册了的,就不需要注册了,可以直接借书)查询读者信息(未借书之前,没有借书记录)图书入库(可以入库不同的书)查询图书信息(没有借出之前,图书的现有量和库存是相同的)借书0101读者借01号图书一本此时查询图书信息01书本现有量减少10101读者的信息(借书后的学生信息)继续借7本书达到借书上限(一个学生只能借8本书)此时的0101读者的信息还书此时01号书的
15、现有量增1此时0101读者的信息未借书七使用说明 a=1 时,采编入库图书, a=2时,注册学生信息,a=3时,学生借书管理,a=4时,学生还书,a=5时,显示学生信息,a=6时,显示图书信息,a=0时,退出图书管理系统。八附录:测试数据入库的图书书证号 01 书名 11 作者 AA 库存 100书证号 02 书名 22 作者 bb 库存 100书证号 5 书名 cc 作者 vv 库存 100注册学生 读者书证号 0101 读者姓名 qq九C语言代码实现#include#include#include#define MAXCOUNT 10#define MAXNUM 20#define w 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 图书 管理 系统 课程设计 模板 26
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内