2022年C语言程序设计--图书管理系统--实训报告 .pdf
《2022年C语言程序设计--图书管理系统--实训报告 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序设计--图书管理系统--实训报告 .pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 目录1 前言 .22 系统需求分析.32.1 问题定义.32.2 需求分析.33 系统设计.33.1 系统总体设计.33.2 功能模块设计.44 系统实现.10 4.1 系统硬件环境.10 4.2 系统软件环境.10 4.3 开发工具.10 4.4 系统详细设计与实现.10 4.4.1 系统菜单设计.10 4.4.2 数据结构设计.13 4.4.3 系统功能模块.14 5 主要技术.27 6 系统测试.27 6.1 测试用例设计.27 6.2 测试结果分析.27 实训体会.28 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 29 页 -2 1 前言近年来,随着图书馆规模的不
2、断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对庞大的信息量,传统的人工管理方式会导致图书管理上的混乱,人力与物力过多浪费,图书管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效、规范和实用的图书管理系统,对图书资料进行集中统一管理。另一方面 IT 产业和 Internet 获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理革命,实现信息的自动化处理,提高了处理的及时性和正确性。图书馆里工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。图书管理系统采用现代化的信息管理方式代替手工管理方式,提高图书管理工作
3、效率,做到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 29 页 -3 2 系统需求分析2.1 问题定义此图书管理系统用于增加、删除图书,管理借阅者信息,方便检索书籍,及查找借阅者信息,适用于图书管理员使用。2.2 需求分析本图书管理系统的主要功能包括如下:一 图书管理:新书入库、删除图书;二 借阅管理:借阅图书、归还图书;三 查找管理:按书号查找、按书名查找、按作者查找;四 信息管理:查看借阅者借阅的全部图书、查看全部超期未还的图书。3 系统设计3.1 系统总体设计名师资料总结-精品资料欢迎下载-名师精心整理
4、-第 3 页,共 29 页 -4 3.2 功能模块设计一 新书入库模块新书入库模块由函数Buy(ook&boo,char BuyNum)来实现,形参为:初始化的包括书号、书名、作者、总库存量、现库存量的结构体 和 一 个 书 号。首 先 通 一 个 一 个 函 数 二 分 法 查 找 比 较 书 号BinarySearch(boo,BuyNum),并定义此函数的类型为布尔型bool,若值为真,则说明查找到,总库存和现库存分别加购入数量,若值为假,则说明书目中没有此书,在书目账户中增加此书,总库存和现库存分别增加购入数量,入库成功。图书管理系统借阅图书删除图书新书入库按书号查找按书名查找按作者查
5、找查看借阅者借阅的全部图书查看全部超期未还图书退出系统归还图书名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 29 页 -5 开始输 入 图 书信息存在在链表增加此新书修改库存量返 回 主 菜单Y N 二 删除图书模块删除图书模块由函数Delete(ook&boo,char DeleteNum)来实现,首 先 通 一 个 一 个 函 数 二 分 法 查 找 比 较 书 号BinarySearch(boo,BuyNum)若值为假或图书总类数total 为 0,则输出书库中没有此书。若值为真,书库中有此书,则通过建立的链表用strcpy()函数将图书信息删除。名师资料总结-精品资料欢
6、迎下载-名师精心整理-第 5 页,共 29 页 -6 F 三 借阅管理模块(1)借阅图书模块借 阅 图 书 模 块 由 函 数Borrow(ook&boo,lend&Lin,char BorrowNum,char CaNum)来实现,形参为:初始化的图书结构体,借阅者的结构体,书号和图书证号。同上查找此书,如有此书,查看库存量是否大于 0,若大于 0 则可以借阅此书,再查看是否有人借阅过此书若有则分配空间增加一个结点,若没有则建立一个新链表。然后记录下图书证号,若有此图书证号的信息,则修改此图书证号的借书行为,如没有,则分配空间增加一个结点。借阅证号的信息总数增加相应数量。删除此书开始输入要查
7、询的书号是 否 存在此书输出信息:此书不存在结束,返回主菜单y 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 29 页 -7 N Y N Y(2)归还图书模块归 还 图 书 模 块 由 函 数Return(ook&boo,lend&Lin,char ReturnNum,char BorrowerNum)来实现需作出如下几个判断:输入归还日期存在输入图书证号图 书 证 号存在书库无此书在链表中添加此证号返回主菜单开始输入书号名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 29 页 -8 a书库中是否存在此书;b若有则判段是否是第一个借书的人,若是则直接释放该结点空间
8、,若不是则通过strcmp()比较查找该借书人。c判断接的是否是第一本书,若是则直接释放该结点空间,若不是则通过 strcmp()比较查找此书N Y N 存在开始输入书号存在输入图书证号返 回 主 菜单书库无此书无该证信息修改借阅者链表和图书链表信息y 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 29 页 -9 三 查找图书模块按 书 号 查 找 模 块 通 过 函 数SearchByNum(ook&boo,char SeaNum)来实现;N Y 按书名查找模块通过函数SearchByName(ook&boo)来实现;按作者查找模块通过函数SearchByAuth(ook&b
9、oo)来实现。四 查看信息模块(一)查看某图书证所借的所有书该模块由函数 ViewCard(ook&boo,lend&Lin)来实现,输入图书证号,找到该证信息后输出信息,若没有则输出该证不存在。(二)查看全部超期未还的图书该模块由函数 ViewBook(ook&boo,lend&Lin)来实现,输入日期通过 strcmp()比较日期大小,输出超过日期的图书信息.开始输入要查询的书号存在输出无此书输出图书信息返回主菜单名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 29 页 -10 4 系统实现4.1 系统硬件环境联想电脑一台4.2 系统软件环境Windows xp 4.3 开发
10、工具Visual C+6.0 4.4 系统详细设计与实现4.4.1 系统菜单设计系统主菜单截图:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 29 页 -11 相关代码如下:void Menu()/菜单 printf(M E N Un);printf(n);printf(1.n);printf(2.n);printf(3.n);printf(4.n);printf(5.n);printf(6.n);printf(7.n);printf(8.n);printf(9.n);printf(0.n);printf(n);printf(请选 择 你 需 要 的 操 作n);void m
11、ain()ook Bo;lend Lin;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 29 页 -12 char BNum20;char CNum20;printf(-欢 迎 进 入 图 书 管 理 系 统!-nn);int choice=10;int SearchCho=10,ViewCho=10;while(choice!=0)Menu();/显示菜单scanf(%d,&choice);switch(choice)case 1:/新书入库printf(请输入入库的书的书号:);scanf(%s,BNum);Buy(Bo,BNum);break;case 2:/删除图书p
12、rintf(请输入想要清除的书的书号:);scanf(%s,BNum);Delete(Bo,BNum);break;case 3:/借阅图书printf(请输入想要借阅的书的书号:n);scanf(%s,&BNum);printf(请输入图书证号:);scanf(%s,&CNum);Borrow(Bo,Lin,BNum,CNum);break;case 4:/归还图书printf(请输入想要归还的书的书号:n);scanf(%s,&BNum);printf(请输入图书证号:);scanf(%s,&CNum);Return(Bo,Lin,BNum,CNum);break;case 5:/查找/根
13、据书号查找printf(请输入书号:);scanf(%s,&BNum);SearchByNum(Bo,BNum);break;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 29 页 -13 case 6:/根据书名查找SearchByName(Bo);break;case 7:/根据作者查找SearchByAuth(Bo);break;case 8:/查看某图书证所借的所有书ViewCard(Bo,Lin);break;case 9:/查看全部超期未还的书ViewBook(Bo,Lin);break;case 0:/退出系统exit(0);break;default:prin
14、tf(输入错误!n);exit(0);break;4.4.2 数据结构设计考虑到图书信息和借书人信息中都包含有不同类型的数据,故分别建立结构体;由于图书和读者的数量非固定,所以采用动态链式存储来实现。/*借书人的结构体*/typedef struct Boro/*借书行为*/char BNum20;/*借书的书号*/char RetDate8;/*归还日期*/struct Boro*next;Bor;typedef struct LinkBook 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 29 页 -14 Bor*next;/*该图书证的借书行为*/char CNum20
15、;/*证号*/int Total;/*借书的数量*/lendLIST_INIT_SIZE;/*借书人数组*/*图书的结构体信息*/typedef struct LNode char CardNum20;/*图书证号*/struct LNode*next;LinkList;/*借书人*/typedef struct book/每种图书需要登记的内容包括书号ISBN、书名、作者、总库存量和现库存量。char num20;/*书号*/char name20;/*书名*/char auth20;/*作者*/int TotNum;/*总库存*/int NowNum;/*现库存*/LinkList*nex
16、t;/*借了该书的人*/ookMAXSIZE;4.4.3 系统功能模块一 新书入库模块截图:名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 29 页 -15 相关代码如下:void Buy(ook&boo,char BuyNum)/*1、采编入库:新购入一种书,如果该书在图书账目中已经存在,则将其库存量增加(包括总库存量和现库存量),如果该书不存在,则在图书账目中增加一种书,总库存量和现库存量均为1。*/if(BinarySearch(boo,BuyNum)/*如果书库中有此书*/boomid.TotNum+;/*总库存加 1*/boomid.NowNum+;/*现库存加 1*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言程序设计-图书管理系统-实训报告 2022 语言程序设计 图书 管理 系统 报告
限制150内