图书管理系统设计书.doc

上传人:枫** 文档编号:543825005 上传时间:2023-02-11 格式:DOC 页数:28 大小:489.51KB
返回 下载 相关 举报
图书管理系统设计书.doc_第1页
第1页 / 共28页
图书管理系统设计书.doc_第2页
第2页 / 共28页
图书管理系统设计书.doc_第3页
第3页 / 共28页
图书管理系统设计书.doc_第4页
第4页 / 共28页
图书管理系统设计书.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《图书管理系统设计书.doc》由会员分享,可在线阅读,更多相关《图书管理系统设计书.doc(28页珍藏版)》请在金锄头文库上搜索。

1、枣 庄 学 院计算机科学系课程设计任务书题目: 图书管理系统 学 号: 姓 名: 专 业: 课 程: 数据结构 指导教师: 职称: 讲 师 完成时间: 2010年 月-20 年 月枣庄学院计算机科学系制2010年12 月28日课程设计任务书及成绩评定课程设计的任务和具体要求设计任务:设计一个计算机管理系统完成图书管理基本业务基本要求:1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,

2、登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。4)图书信息存入到book.txt中指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等课程设计进度计划起至日期工作内容备注参考文献、资料索引序号文献、资料名称编著者出版单位Visual FoxPro6.0项目开发与实例 Visual FoxPro数据库系统项目开发实践 Visual FoxPro程序设计1数据结构:定义读者链表和图书链表typedef struct bookchar book_num10; /定义图书数量char book_name20; /定义图

3、书名称char book_writer10; /定义图书作者int book_kc; /定义图书库存量int book_xy; /定义图书现有量struct book *next; /定义指向图书的指针BK;typedef struct borrowchar borrow_book_num10; /定义读者借书的图书编号 char huanshu_date8; /定义读者的还书日期BW;typedef struct readerchar reader_num10; /定义读者编号char reader_name10; /定义姓名int zuida; BW borrowMax; /读者最大借书量

4、struct reader *next; /定义指向读者指针RD;BK *h_book; /定义图书链表RD *h_reader; /定义读者链表 4.总体设计:5.详细设计:主函数main()主函数通过创建book.txt和reader.txt两个文件,从而达到对图书信息和读者信息的保存,方便用户下一次的操作。通过if语句判断读者是否是第一次登陆,若是首次登陆,则要进行初始化,否则直接进入主菜单进行功能选择。初始化读者信息函数Init_reader()若读者是第一次进入此系统,则首先对读者的信息进行初始化,通过p0=(RD*)malloc(sizeof(RD)为读者申请读者链表节点空间,并初

5、始化读者链表,包括读者的图书证号,姓名。并把所接图书量置为零。初始化图书信息函数Init_book()若读者是第一次进入此系统,则首先对读者的图书信息进行初始化,通过p0=(BK*)malloc(sizeof(BK)为图书申请图书链表节点空间,并对图书链表中的图书编号、图书名称、图书作者、图书数量进行初始化,开始时,图书的现存量等于库存量。主菜单选择函数Menu_select()此函数包括退出系统,新书入库,查询信息,借书登记和还书管理五个函数,通过调用主菜单函数判断用户做出的选择,从而进行相应的操作。新书入库函Insert_New_Book()此函数通过的创建一个图书链表,达到对新进书判断,

6、若在现有的图书中找到该书,则直接进行入库,并记录下图书的数量,若找完整个图书量表也没找到该书,则要记录下新进图书的名称,作者,数量,并把该书插入到已有数中,方便下次对新书的判断。查找菜单选择函数Find_Select()此函数包括查找图书,查找读者,显示图书和显示读者以及返回上级五个功能,通过调用find()函数,判断用户的选择,从而进行相关功能的操作。查找读者函数Find_Reader()此函数通过读者的图书证号对读者链表从头至尾进行查找,若找到读者,则显示读者图书证号以及姓名,然后利用for循环和指针,对读者所借图书进行查找并显示。若找不到读者,显示读者标号不存在,按任意键回到查找菜单选择

7、函数界面。查找图书函数Find_Book()此函数根据用户输入的图书编号,利用while(strcmp(p-book_num,find_book)!=0&p-next); p=p-next;语句,对现有图书进行查找,若找到,则显示图书的编号、名称、作者、现有量以及库存量。否则显示此图书编号不存在,按任意键回到查找菜单选择函数界面。显示读者函数Print_reader() 此函数利用定义指针RD *p;p=h_reader; 利用while(p!=NULL)循环,以及利用 p=p-next语句对读者的图书信息链表进行遍历,然后显示读者的借书编号和还书时间。 显示图书信息Print_book()此

8、函数利用定义指针BK *p; p=h_book;利用while(p!=NULL)循环,以及利用p=p-next语句对现存图书的链表进行遍历,显示所有现存图书的编号、名称、作者、现有量以及库存量信息。借书函数Borrow_Book()此函数利用图书链表和读者链表对读者的借书进行操作,根据读者输入的图书证号,利用while循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示该读者的图书证号不存在,若读者存在,根据读者输入的要借的图书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书不存在,若该书存在,再利用if判断是否还有现存,若无现存,在提示此书已借完,若还有现存,

9、再利用if语句判断该读者是否已达到最大借书量,若已达最大量,则提示读者,借书已满,若还未达到最大量,再利用if语句判断该读者是否已借书,若从未借过书,则直接借书,若已借书,然后利用for循环和if语句判断此次借书是否和以前借书有重复,若重复,则提示读者不能借两本相同的书,若不重复,则让读者输入还书的日期,并把读者的所借图书量加一,并把图书的现存量减一。还书函数Return_Book()此函数也是以用图书链表和读者链表对读者还书进行操作,根据读者输入的图书证号,利用while循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示该读者的图书证号不存在,若读者存在,根据读者输入的要还的图

10、书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书编号不存在,若该书存在,则利用for循环把读者的图书链表中要还书后面的书向前移一个单位,覆盖掉链表中该书的信息,并把读者的借书量减一,把图书的现存量加一。保存图书函数Save_Book()此函数首先创建文件指针FILE *fp_book,然后创建文件,把图书链表中的图书信息写进文件,写入成功,则对图书信息进行保存,若写入失败,则释放所有节点。加载图书信息Load_Book()若读者是再次登录图书系统,则进行对读者的图书信息进行加载。通过fp=fopen(Book.txt,rb)打开图书文件,读出读者的信息,重新链入链表,从而

11、达到对读者图书信息的加载。保存读者函数Save_Reader()此函数首先创建文件指针FILE *fp_reader,然后创建文件,把读者链表中的读者信息写进文件,写入成功,则对读者信息进行保存,若写入失败,则释放所有节点。加载读者函数Load_Reader()若读者是再次登录图书系统,则进行对读者的信息进行加载。通过fp=fopen(Reader.txt,rb)打开读者文件,读出读者的信息,重新链入链表,从而达到对读者图书信息的加载。6.测试与调试第一次运行该程序,首先进入欢迎界面然后按任意键进入对读者信息的初始化界面然后按任意键进入对图书信息的初始化界面然后按任意键进入图书管理主菜单,选择

12、1进行新书入库,界面如下:然后按任意键回到主菜单,选择3进行借书登记,界面如下:然后按任意键回到菜单主系统,选择2进入信息查询界面,在选择2进行查找读者界面如下:可以看到读者已成功借的编号为001的图书。按任意键回到信息查询界面,选择3进行图书查询,界面如下:可以看到编号为001的图书已被借一本。按任意键回到信息查询界面,选择1进行图书查询,界面如下:选择0回到图书管理主菜单,选择3,再次进行借书管理,界面如下:选择2进如查询界面,选择4,显示读者信息,界面如下:可以看到读者以成功借的编号为002的图书。然后选择0,回到系统主菜单,选择4,进行还书操作,界面如下:然任意键回到主菜单,再次选择2

13、,进入查询界面,选择4,再次显示读者信息,界面如下:我们可以看到读者已经还了编号为001的图书。然后按任意键回到信息查询界面,选择0回到主菜单,在选择0退出系统,界面如下:7.源程序清单#include #include #include #include #define Max 3 typedef struct bookchar book_num10;char book_name20;char book_writer10;int book_kc;int book_xy;struct book *next;BK;typedef struct borrowchar borrow_book_num10;char huanshu_date8;BW;typedef struct readerchar reader_num10;char reader_name10;int zuida;BW borrowMax;struct reader *next;

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

当前位置:首页 > 生活休闲 > 社会民生

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