1、课程设计任务书 某高校图书管理系统(1)一、课程设计时间10第2学期第1周,累计1周,20课时。二、课程设计内容用C语言编写软件完成以下任务:1 录入图书信息(依据图书馆管理情况自行设定,要含有实用性);2 借书处理(数量不足三本,不予外借,并显示对应提醒信息);3 还书处理。三、课程设计要求1. 程序质量: 落实结构化程序设计思想。 用户界面友好,功效明确,操作方便。 用户界面中菜单最少应包含“图书信息录入”、“借书处理”、“还书处理”、“退出”4项。 代码应合适缩进,并给出必需注释,以增强程序可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书格式和内容参见
2、提供模板。四、指导老师和学生签字指导老师:_ 学生署名:_五、说明书成绩六、老师评语 目 录一、需求分析1二、程序步骤图2三、关键技术实现说明及对应程序段4四、课设总结9五、参考文件10六、源程序10一、需求分析经过对程序设计题目标分析可知,整个程序设计实现大致分为四个模块,每一个模块对应一个函数。她们功效分别是:录入图书函数,借阅图书函数,归还图书函数和查询图书库存函数。这些函数实现严格根据题目标要求。1. 录入图书函数 关键实现程序最初运行时图书数据录入和其后运行中学图书数据追加功效;2. 借阅图书函数 根据题目标具体要求实现是学生能够借阅图书馆现存图书功效;3. 归还图书函数 实现是图书
3、归还并在现有数量上得以保留功效;4. 查询图书库存函数 实现是图书归还后图书馆现存图书数量进行查询;除上面介绍功效之外,程序还含有退出功效,能够在程序一次运行当中循环实施全部功效,并依据需要终止程序实施。在程序当中,将图书统计类型定义为结构体类型。图书全部有编号、名称、作者、现有数量相关信息。二、程序步骤图1. 程序总体结构图 真输入i=1? 假录入图书真输入i=2? 假借阅图书真输入i=3? 假归还图书真输入i=4? 假图书查询输入i=5?退出 图1程序总体结构图2. 具体功效框图(1)录入图书函数luru()i=0,booki.num,booki.name,booki.niaddnum假
4、booki.num0 真输出booki.num值输出名称.作者.数量booki.n+输出“录入成功”Returni+图2 录入图书信息函数(2)借阅图书函数jieyue()i=0,bianhao10i+当bianhao=booki.num真 booki.n3 假输出“不予外借” Returnbooki.n-输出“借书成功”输出图书信息图3借阅图书函数(3)归还图书函数guihuan()i=0,bianhao10i+当bianhao=booki.num输出“还书成功”booki.n+输出图书信息图4 归还图书函数(4)查询图书现有库存函数chaxun()i=0inumb输出图书信息i+图5查询图
5、书现有库存函数三、关键技术实现说明及对应程序段本程序关键由四个自定义函数和一个主函数组成,其中主函数以菜单形式调用其它函数来实现要求全部功效。在这些函数当中,录入图书信息函数、借阅图书函数、归还图书函数和查询现存图书函数是程序中较为关键部分,下面分别进行说明。1. 录入图书函数该函数是录入图书函数,录入图书信息包含录入图书数量,图书编号,图书名称,图书作者,图书现存量。具体程序段以下:void luru() int i; printf(请输入要录入图书数量,按回车键确定:);scanf(%d,&numb); for(i=0;inumb;i+) printf(n请输入书编号:); scanf(%
6、s,booki.num); if(booki.num0)return; printf(n请输入书名称:); scanf(%s,booki.name); printf(n请输入书作者:); scanf(%s,booki.writer); printf(n请输入此书数量:); scanf(%d,&booki.n); printf(录入成功。n); ;2. 借阅图书函数输入所要借阅图书编号,因为图书编号唯一。然后查阅书现有库存情况,假如库存少于三本,该书将不予外借,并给提醒,假如库存大于等于三本时,提醒借阅成功。显示图书现有库存量降低一本.具体程序段以下:void jieshu() int i;ch
7、ar bianhao10;printf(请输入你要借阅书编号n);scanf(%s,bianhao); for(i=0;i+) if(strcmp(booki.num,bianhao)=0) if(booki.n3) printf(不外借n); return; else printf(借书成功n); booki.n-; printf(%s %s %s %dn,booki.num,booki.name,booki.writer,booki.n); return; 3. 归还图书函数输入归还图书编号,假如所输入编号在已借阅图书编号中,显示归还图书成功,并使图书现有库存量增加一本。具体程序段以下:v
8、oid huanshu() char bianhao10;int i; printf(请输入你要归还书编号n);scanf(%s,bianhao); for(i=0;i+)if(strcmp(booki.num,bianhao)=0)printf(还书成功n);booki.n+;printf(%s %s %s %dn,booki.num,booki.name,booki.writer,booki.n);return; 4查询图书现有库存信息 关键功效是了解图书现有库存情况。具体程序段以下:void chaxun()int i;for(i=0;inumb;i+)printf(%s %s %s %
9、dn,booki.num,booki.name,booki.writer,booki.n); 四、课设总结经过这次课程设计训练,理论和具体实践相结合,才能使我们所学知识有所用途。经过亲自动手动脑,学到了很多书本上学不到知识,坚定了自己实践决心。计算机关键性也是不容忽略,最关键当属编程了。在编程过程中,碰到问题和困难,在老师指导下,我经过努力,把最终难关突破。细节决定成败,真应了这句话,所以不得有丝毫马虎,才能确保程序正常运行,激发了我发明力。五、参考文件1 谭浩强C程序设计北京:清华大学出版社,2 刘成等C语言程序设计试验指导和习题集北京:中国铁道出版社,六、源程序#include#inclu
10、de#include#includestruct book char num20; char name20; char writer20; int n; ; struct book book100;int numb;void luru() int i; printf(请输入要录入图书数量,按回车键确定:);scanf(%d,&numb); for(i=0;inumb;i+) printf(n请输入书编号:); scanf(%s,booki.num); if(booki.num0)return; printf(n请输入书名称:); scanf(%s,booki.name); printf(n请输
11、入书作者:); scanf(%s,booki.writer); printf(n请输入此书数量:); scanf(%d,&booki.n); printf(录入成功。n); ;void jieshu() int i;char bianhao10;printf(请输入你要借阅书编号n);scanf(%s,bianhao); for(i=0;i+) if(strcmp(booki.num,bianhao)=0) if(booki.n3) printf(不外借n); return; else printf(借书成功n); booki.n-; printf(%s %s %s %dn,booki.num
12、,booki.name,booki.writer,booki.n); return; void huanshu() char bianhao10;int i; printf(请输入你要归还书编号n);scanf(%s,bianhao); for(i=0;i+)if(strcmp(booki.num,bianhao)=0)printf(还书成功n);booki.n+;printf(%s %s %s %dn,booki.num,booki.name,booki.writer,booki.n);return; void chaxun()int i;for(i=0;inumb;i+)printf(%s
13、 %s %s %dn,booki.num,booki.name,booki.writer,booki.n); void menu()printf( *图书管理系统* n);printf( 制作者:李晶晶 指导老师:王晓岩 n ); printf( 1录入图书信息n 2借阅图书信息n 3归还图书信息n 4查询现存图书总数n 5退出n);void main()int n; while(1) menu(); printf(n 请输入您要选择操作序号,按回车键确定:); scanf(%d,&n); switch(n) case 1: luru();break; case 2: jieshu();break; case 3: huanshu();break; case 4: chaxun();break; case 5: exit(0); default: printf(输入错误,请输入列表中存在序号!n );