图书管理系统设计报告个人部分.doc
《图书管理系统设计报告个人部分.doc》由会员分享,可在线阅读,更多相关《图书管理系统设计报告个人部分.doc(42页珍藏版)》请在课桌文档上搜索。
1、计算机科学与技术专业13级数据构造课程设计报告目录一、 设计任务31. 设计目的32. 问题描述33. 设计根本要求3二、 本人任务4三、 功能简介4四、 主体容51. 问题分析62. 数据构造构造体定义 63. 算法设计及程序流程图 81) 主菜单82) 登记读者 93) 借阅图书104) 查询读者144. 运行结果和调试分析15五、附录23参考文献 24六、心得体会24一、设计任务、设计目的1、了解并掌握数据构造与算法的设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等根本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题
2、的能力;4、训练用系统的观点和软件开发一般规进展软件开发。、问题描述设计一个计算机管理系统完成图书管理根本业务。、设计根本要求1)每种书的登记容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表线性表以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。进一步完成容:1)系统功能的进一步完善;2)索引表采用树表。3)设计容4)程序流程图5)源程序6)软件测试报告包括所用到的数据及结
3、果、二、本人任务设计并编程图书管理中的主菜单、借阅、登记读者、查询读者共四个模块。三、功能简介1) 图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。2) 新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。3) 添加读者信息读者信息初始化,输入读书证号和*,只有输入书证号和*才能进展借书还书4) 借书模块读者输入读书证号,证号存在输入要借的图书编号,不能借同一本书,如果借书数量以到达最大也不能借书。5) 还书模块归还已借的图书,要先输入读者书证号,书证号存在继续输入要还的图书编号,图书编号存在并且借来此书,归还成功。6) 查询图书信息7
4、) 查询读者信息可查询读者*书证号,借了几本书,都是什么书和还书日期,还可以借几本书。8) 退出退出读书管理系统并保存读者和图书信息。四、主体内容图书管理系统总体情况如下列图:这个系统主要有四大模块,图书管理模块、读者管理模块、借阅操作模块、查询操作模块。每个模块下又有几个分支模块。1.问题分析主菜单模块需要设计一个可供选择的界面,在界面过选择不同的按键来实现不同的功能。登记读者模块需要可以记录学生的书证号以及学生的*。借书模块中学生可以通过书证号和所需要借的书的编号来借书,借书完成后图书数量减少。查询读者模块需要随着读者借书、还书不断变化,总是能显示出当前读者的准确信息。2.数据构造构造体定
5、义图书文件: typedef struct book char book_num10; char book_name20; 定义图书的编号,名称,作者,char book_writer10; 现有以及库存数量int book_*y;int book_kc;struct book *ne*t; 定义图书构造体BK; 数据记录借阅文件:typedef struct borrowchar borrow_book_num10; 定义借阅图书编号以char limit_date8; 及还书日期BO; 数据记录读者文件:typedef struct readerchar reader_num10; 定义读
6、者书证号以char reader_name10; 及读者*int right;BO borrowMa*; 借书最大数量struct reader *ne*t; 定义读者构造体RD; 数据记录3.算法设计及程序流程图进入系统后,显示功能列表,可选择任意系统。主菜单:程序流程图:执行所选功能错误,请重新输入开场输入功能所对应的数字输入的数字小于0或大于6源程序:int Menu() /*主菜单*/ int dm;printf(ntt图书管理系统主菜单n);printf(=n);printf(*t0-退出系统 n);printf(*t1-采编入库 n);printf(*t2-登记读者 n); pri
7、ntf(*t3-借阅登记 n);printf(*t4-还书管理 n);printf(*t5-查询图书信息 n);printf(*t6-查询读者信息 n);printf(=n);printf(请选择相应的代码:); for(;) scanf(%d,&dm); /dm输入的数字 if(dm6) printf(n错误!请重新输入:); else break;return dm; void Menu_select()/*主菜单项选择择函数*/for(;) switch(Menu() /*功能选择*/ case 0: system(cls); Save();printf(nnt文件保存成功!n); pr
8、intf(nnt欢送下次使用本系统!n); getch(); e*it(0); case 1:Insert_New_Book();break; case 2:add_reader();break; case 3:Borrow_Book();break; case 4:Return_Book();break; case 5:Print_book();break; case 6:Print_reader();break; default:printf(n错误!); e*it(0);登记读者:开场输入读者信息:读者书证号,读者*完毕程序流程图:源程序:void add_reader()/*添加读者*
9、/ RD *p0; int i; printf(n读者初始化开场,请输入读者信息.n包括书证号.*.n);p0=(RD*)malloc(sizeof(RD); /*申请新结点存储空间*/h_reader=p0;printf(n请输入读者的信息:n); printf(读者书证号:); scanf(%s,p0-reader_num); printf(读者*:); scanf(%s,p0-reader_name); p0-right=0; for(i=0;iborrowi.borrow_book_num,0); /*所借图书直接置为(即没有借书)*/ strcpy(p0-borrowi.limit_
10、date,0); p0-ne*t=NULL; printf(n读者信息初始化完毕!按任意键继续下一步操作.n); getch(); system(cls);输入读者书证号判断读者是否存在输出:读者编号不存在!按任意键返回借阅图书:程序流程图:否是判断是否还有此图书输入要借的图书编号判断图书编号是否存在输出:此图书编号不存在!按任意键返回输出:此书已借完,按任意键返回判断读者的借书数目是否已达上限输出:借书数目已满无法借书,按任意键返回判断读者是否借了一样的图书输出:同一人不能借一样的两本书,按任意键返回输入归还图书的日期否否是是否是否图书现有数量以及库存数量都减1输出:读者借书成功,按任意键返
11、回完毕源程序:void Borrow_Book() /*借书模块*/BK *p0; RD *p1;char bo_num10,rea_num10,lim_date8;int i;p0=h_book; p1=h_reader;printf(n借书模块.n);printf(n请输入借书的读者书证号:); scanf(%s,rea_num);while(p1-ne*t!=NULL&strcmp(rea_num,p1-reader_num)!=0) p1=p1-ne*t; if(p1-ne*t=NULL&strcmp(rea_num,p1-reader_num)!=0) printf(n此读者编号不存
12、在!按任意键返回.n); goto END; printf(n请输入你要借的书的编号:); scanf(%s,bo_num); while(strcmp(bo_num,p0-book_num)!=0&p0-ne*t!=NULL) p0=p0-ne*t; if(p0-ne*t=NULL&strcmp(bo_num,p0-book_num)!=0) printf(n此图书编号不存在!按任意键返回.n); goto END; else if(p0-book_*yrightMa*|p1-right=Ma*) printf(n不好意思,借书数目已满!不能借书!n按任意键返回.); goto END; e
13、lse if(strcmp(p1-borrow0.borrow_book_num,0)!=0) for(i=0;iborrowi.borrow_book_num,bo_num)=0) printf(n抱歉!同一个读者不能同借两本一样的书!n按任意键返回.); goto END; else if(strcmp(p1-borrowi.borrow_book_num,0)=0) printf(n请输入你要归还图书的日期:); scanf(%s,lim_date); strcpy(p1-borrowp1-right+.borrow_book_num,bo_num); strcpy(p1-borrowp
14、1-right-1.limit_date,lim_date); p0-book_*y-; p0-book_kc-; printf(n读者编号%s借书完毕!按任意键继续下步操作.,p1-reader_num); goto END; else printf(n请输入你要归还图书的日期:); scanf(%s,lim_date); strcpy(p1-borrowp1-right+.borrow_book_num,bo_num); strcpy(p1-borrowp1-right-1.limit_date ,lim_date ); p0-book_*y-; p0-book_kc-; printf(n
15、读者编号%s借书完毕!按任意键继续下步操作.,p1-reader_num); END:getch(); system(cls);查询读者:程序流程图:判断读者信息是否为空输出:读者书证号、*、图书编码和还书日期否输出读者信息打印完毕完毕源程序:void Print_reader() /*查询读者信息*/RD *p;int i;p=h_reader;printf(n读者信息如下:nn);printf(读者书证号tt读者*n); printf(n);while(p!=NULL) printf(t%stt%s,p-reader_num,p-reader_name); for(i=0;iborrowi
16、.borrow_book_num); printf(tt%s,p-borrowi.limit_date); printf(n); p=p-ne*t;printf(n读者信息打印完毕!按任意键继续下一步操作.);getch();system(cls);4.运行结果和调试分析同一本新书入库的运行结果图不同的新书采编入库采编入库后查询图书信息的运行结果图登记读者信息借书借书后查询图书信息的运行结果图借同一本书的运行结果图借不同的书借两本书后查询读者信息的运行结果图还书运行结果图还书之后再查询读者信息的运行结果图还书后查询图书信息退出5.附录void Login()进入界面函数int Menu()主菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 设计 报告 个人 部分
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-22872.html