《图书借阅管理系统-C程序设计课程设计(实践教学)》由会员分享,可在线阅读,更多相关《图书借阅管理系统-C程序设计课程设计(实践教学)(39页珍藏版)》请在金锄头文库上搜索。
1、* 实践教学 * xxx理工大学 计算机与通信学院 201x春季学期 C程序设计 课程设计 题 目:图书借 阅管理系统 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目 录 1 题目要求 11 要求 2 系统分析 2.1系统设计的目的与意义: 2.2 系统功能需求: 2.3 系统功能分析: 3 总体设计 3.1系统功能模块划分与设计 3.2 系统功能模块图: 3.3详细设计 4、结果(附带抓图) 5、总结 参 考 文 献 致 谢 附录: 图书馆借阅管理系统 摘 要 主要介绍了图书管理系统的设计与实现,该程 序具有图书信息录入功能和图书信息浏览功能;查 询和排序功能;图书信息的删除与修改
2、等功能。在 课程设计中,程序设计语言采用Visual C+,程序 运行平台为Windows XP。程序通过调试运行后基本 实现了最初的设计目标,并且经过适当完善后,在 实际中可以解决更多的问题。 关键词:图书管理 ; 程序设计 ; C+ 1 题目要求11 要求掌握结构化程序设计的主体思想,以自 顶向下逐步求精的方法编制程序解决一些实 际的问题,为将来编写软件积累一些典型的 案例处理经验。 1. 设计正确,方案合理。 2. 界面友好,使用方便。 3. 程序精炼,结构清晰。 4. 设计报告5000字以上,含程序设计说明,用 户使用说明,源程序清单及程序框图。 5. 上机演示。 6. 按学号顺序选课
3、题号,并在规定的时间内独 自完成相关课题的C源程序编写、调整和运 行。源程序及编译生成各文件均保存在软盘 中。 2 系统分析 2.1系统设计的目的与意义: 二十一世纪是信息的社会,信息作为社会最主 要的资源,将成为战略资源引起人们广泛的关注。 如何获取信息?图书是我们最好的获取信息的方 式,但由于图书馆图书收藏量大大增加,使传统的 图书管理员的工作日益繁重起来。迫使人们起用新 的管理方法来管理图书,但如何把图书管理员从繁 重的工作中解脱出来呢? 科学技术日新月异的进步,让人类生活发生了 巨大的变化,计算机技术的飞速发展,使各行各业 在计算机技术应用方面得到了广泛的普及和使用。 信息化时代的到来
4、成为不可抗拒的潮流,人类文明 正在进入一个崭新的时代。因此,图书管理系统也 以方便、快捷、费用低的优点正慢慢地进入人们的 生活,将传统的图书管理方式彻底的解脱出来,提 高效率,减轻工人人员以往繁忙的工作,减小出错 的概率,使读者可以花更多的时间在选择书和看书 上。从而使人们有更多时间来获取信息、了解信 息、掌握信息 。 2.2 系统功能需求: 本系统有四个类,Book类,BDatebase类、 Reader类、RDatebase类,存储借阅者的个人信息、 借阅信息以及预定信息。持有借阅卡的借阅者可以 借阅书刊、返还书刊、查询书刊信息、预定书刊并 取消预定等功能。 2.3 系统功能分析: 系统通
5、过调用函数来实现删除图书、读者信息,添 加图书、读者信息等功能。delbook( )函数用于删 除图书信息;addbook( )函数用于增加图书信息; borrowbook()函数用于实现借书操作;returnbook()函数用于实现还书操作等等;主函数用于掉用这些函数。 3 总体设计 4 4 3.1系统功能模块划分与设计 本系统定义了Book类、BDatebase类、Reader类、RDatebase类 这四个类,定义了addbook ( )、addreader( )、borrowbook ( )、setname( )等函数来实现系统所需功能 3.2 系统功能模块图: 图书馆管理系统 借书
6、读者维护 图书维护 还书 离开 图书馆管理系统 借书 读者维护 图书维护 还书 离开 3.3详细设计 5 5 主函数 (1)建立1个Reader读者类、1个RDatabase 读者 库类、1个Book 图书类、1个BDatabase 图书库类 (2)建立菜单界面。完成以下内容: 进入功能必须打开菜单,然后用户根据菜单选 择相应的操作方式,如查看数据、编辑图书数据 以及修改图书数据、维护图书的采购信息。添 加、删除、查看读者个人信息,浏览图书信息。 能够对图书基本信息、图书采购信息、图书的 借阅人信息进行统计,统计的结果能够以表格的 形式来表示。 (3) 将图书基本信息、图书采购信息、图书的借
7、阅人信息存储在相应的文件中。 (4) 系统界面友好,易操作。 本程序应具备的功能: A.添加、借阅、还书功能: (1)添加读者和图书信息。 (2)借阅尚在架的图书。 (3)读者归还的图书。 B.查找功能 (1)根据图书的编号查找图书信息。 (2)根据读者的编号查找读者的信息。 C.系统的操作 (1)系统在进入时,要有菜单提示; (2)系统在用户退出时,有一定的提示。 算法分析 1)添加操作:(读者信息的添加与图书信息的添 加类似) 包括两个部分,先通过输入设备输入信息,系统获 取;然后添加入读者数据库read.txt文件中。 获取信息 int i=0 iMaxbor borbooki=0; i
8、+; 输入n和na tag=0; no=n; no=n; strcpy(name,na); int i=0 iMaxbor borbooki=0; i+; 输入n和na tag=0; no=n; no=n; strcpy(name,na); void Reader:addreader(int n,char *na)/增加读者tag=0; no=n; strcpy(name,na); for (int i=0;iMaxbor;i+) borbooki=0; int RDatabase:addreader(int n,char *na)/增添读者信息 der *p=query(n); if (p=
9、NULL) top+; readtop.addreader(n,na); cout读者添加成功endl; return 1; return 0;流程图: der *p=query(n); p=NULL Y return 0; top+; readtop.addreader(n,na); cout读者添加成功endl; return 1; N der *p=query(n); p=NULL Y return 0; top+; readtop.addreader(n,na); cout读者添加成功endl; return 1; N 析构函数写入新读者的编号跟姓名 RDatabase:RDataba
10、se() fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if(readi.gettag()=0) file.write(char *)&readi,sizeof(readi); else file.close(); 流程图: fstream file(reader.txt,ios:out); 当i=top i+ readi.gettag()=0 YNint i=0 file.close(); file.write(char *)&readi,sizeof(readi); fstream file(reader.txt,ios:
11、out); 当i=top i+ readi.gettag()=0 YNint i=0 file.close(); file.write(char *)&readi,sizeof(readi); (1)借书操作:利用for语句和if语句,通过判断图 书的borbook的编号是否为0,来判断图书是否未被 借走或还没有被借完。 void Reader:borrowbook(int bookid)/借书操作for (int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; 流程图: int i=0 当iMaxbor borbooki=0
12、YNi+ borbooki=bookid; return; int i=0 当iMaxbor borbooki=0 YNi+ borbooki=bookid; return; (2)还书操作:利用for语句和if语句,通过判断图 书的borbook的编号是否为要还书的编号,来判断 是否借出此书。 int Reader:retbook(int bookid)/还书操作 for(int i=0;iMaxbor;i+)if(borbooki=bookid)borbooki=0; return 1; else continue;流程图: int i=0 当iMaxbor borbooki=bookid YNi+ continue borbooki=0; return 1; int i=0 当iMaxbor borbooki=bookid YNi+ continue borbooki=0; return 1; 查找功能:利用for语句和if语句,寻找与要查询的 编号相同的读者编号或图书编号,如果找到,向系 统返回相应的编号,输出相应的信息。(读者的查 找与图书查找类似) Reader *query(int readerid)/按编号查找 for