C语言课程设计报告图书管理系统.doc
《C语言课程设计报告图书管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告图书管理系统.doc(43页珍藏版)》请在咨信网上搜索。
1、. .C语言课程设计报告院 系:学 号:班 号:姓 名:标 题: 图书管理系统 目录第一局部题目要求3第二局部需求分析3第三局部总体设计4第四局部详细设计41)主函数42)各功能模块设计63)公共函数16第五局部上机操作17第六局部总结20附录源代码22第一局部 题目要求图书管理系统包括:图书名称、图书编号、单价、作者、存在状态、借书人XX、性别、学号等,是设计一图书管理系统,使之能够提供以下功能:1. 新图书根本信息的输入。2. 图书根本信息的查询。3. 对撤销图示根本信息的删除。4. 办理借书手续。5.办理换书手续。第二局部 需求分析根据题目的要求,需要建立一个文件来保存图书信息,每本书的
2、信息用一个构造体来保存,构造体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人XX、性别、学号,构造体中的存在状态可设为整型,用不同数字代表借还状态;在借书和还书手续中,要注意构造体的成员变量存在状态的值,使用指针会比较方便。程序中需要对图书信息实现输入、查询、删除、借书和还书的功能,首先要使用菜单进展各项功能的选择;其次需要有文件的输入、输出功能,提供显示、查找等操作。在程序的运行过程中,注意各功能在使用完毕后返回菜单的设置,以方便运行。第三局部 总体设计根据上面的需求分析,可以将整个图书管理系统分为输入模块、查找模块、删除模块、借书模块和还书模块如图3-1所示。图书管理系统输入
3、新书查找图书删除图书借阅图书归还图书图3-1 系统功能模块图第四局部 详细设计4.1 数据构造在这个程序里,每本书的信息用一个构造体book来保存,构造体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人XX、性别、学号,构造体中的存在状态设为整型,用不同数字代表库中高本书的数量。struct book char title30; int number; char author30; float price; int store; char borrower_name20; char borrower_gender5; int borrower_number;sN;其中的N定义为该系
4、统所管理书籍的最大值。#define N 100 /书籍的最多本数4.2 主函数【说明】主函数中,对“菜单进展了输出,将各个模块的函数列出来,实现对各种功能的选择。其流程图如图4.1-1所示。显 示 一 系 列 功 能 选 项输入n,判断n是否是05?调 用 与 n 相 应 的 模 块NY开 始结 束图4.1-1 主函数流程图【程序】void main() int x; do printf(*菜单*n * 1.输入图书信息 * n * 2.查找图书信息 * n * 3.删除图书信息 * n * 4.借阅图书 * n * 5.归还图书 * n * 0.退出 * n);printf(*n); pr
5、intf(请在0-5中选择,以回车键完毕n); scanf(%d,&x); switch(x) case 1: input(&s0);break;/输入新图书信息模块 case 2: search(&s0);break;/查找模块 case 3: del(&s0);break;/删除模块 case 4: borrow(&s0);break;/借书模块 case 5: retur(&s0);break;/还书模块 case 0: break;/退出 while(x!=0);4.2 各功能模块设计1输入模块【分析】在输入模块中,主要以输入输出语句为主,使用了dowhile和for这两种循环方式,d
6、owhile是作为一级循环,for为二级循环。在输入图书的根本信息过程中,使用指针进展字符串及值的传递。全局变量m是用于记录图书的储存位置,便于在后来的查询、删除等功能中的使用。调用save(struct book*p)来保存输入的数据。定义的整型变量y,用来储存是否继续的指令。该模块的流程图如以下图4.2-1所示。输入图书的根本信息调用save(struck book *p)保存函数,m+判断y是否为0?YN开场返回菜单完毕图4.2-1 输入模块流程图【程序】void input(struct book *p) int y; for(;ptitle); printf(请输入编号:); sca
7、nf(%d,&p-number); printf(请输入作者:); scanf(%s,p-author); printf(请输入图书价格:); scanf(%f,&p-price); printf(请输入图书数量:); scanf(%d,&p-store); m+; printf(第%d个信息已经输入完毕,是否继续?n按任意键继续,按0键完毕.,m); scanf(%d,&y);/读取是否继续 if(y=0) save(&s0); read(&s0);/调用读取文件函数 break; 2查找模块【分析】此模块的提供两种查找方式,输入书名或作者,均可实现查找功能。在函数的结尾,选择是否继续查找。
8、开 始选择查找方式0-21或2输入书名或作者调用read(struct book *p)使用for循环查找并显示记录判断是否继续YN返回菜单结 束0图4.2-2 查找模块流程图【程序】void search(struct book *p)/查询模块 int n; char name120; char name220; char c3; do p=&s0; printf(t请选择查找方式:n);/打印查询方式菜单 printf( 1.按书名查找n 2.按作者查找n 0.返回n); printf(请在0-2中选择:nn); scanf(%d,&n);/读取查找方式 if(n=0) break; s
9、witch(n) case 1: printf(请输入书名:n);scanf(%s,name1);break; case 2: printf(请输入 n);scanf(%s,name2); break; for(;ptitle,name1)=0|strcmp(p-author,name2)=0) printf(n查找图书信息成功!n); printf(书名 编号 作者 价格 数量n); printf(%-10s%-10d%-10s%-10.2f%-10dn, p-title,p-number,p-author,p-price,p-store);/打印信息 break; printf(是否继续查
10、找?n“是请键入“yes, “否请按任意键,返回菜单n); scanf(%s,c); while(strcmp(c,yes)=0);/判断是否完毕3删除模块【分析】该模块实现对撤销图书的删除。用户首先查找要删除的图书,图书列表出来后,确认是否删除。当删除成功后,询问是继续删除还返回退出并返回菜单。其流程图如以下图4.2-3所示。开 始选择删除方式0-21或2输入要删除的书名或作者调用read(struct book *p)使用for循环查找并显示记录,m-判断是否继续YN返回菜单结 束0调用savestruct book*p图4.2-3 删除模块流程图【程序】void del(struct b
11、ook *p)/删除模块 int i; struct book *p1,*p2; char name120; char name220; char c3; int n; do p=&s0;printf(请选择删除以方式回车键完毕:n);/打印删除方式菜单 printf( 1.按书名删除n 2.按作者删除n 0.返回n); printf(请在0-2中选择:nn); scanf(%d,&n);/读取查找方/ if(n=0) break; switch(n) case 1:printf(请输入书名:n); scanf(%s,name1); break; case 2: printf(请输入 n);
12、scanf(%s,name2); break; read(&s0); /调用读取函数 for(i=0;ititle,name1)=0|strcmp(p-author,name2)=0) p1=p; for(p2=p1+1;p2title,p2-title); strcpy(p1-author,p2-author); p1-number=p2-number; p1-store=p2-store; p1-price=p2-price; m-; printf(删除成功!n); else printf(没有该书记录!); break; printf(是否继续删除?“是请键入“yes, “否请按任意键,
13、返回菜单n); scanf(%s,c); /读取是否继续 save(&s0); /调用保存函数 while(strcmp(c,yes)=0); /判断是否继续删除 (4)借书模块【分析】该模块实现系统的借书功能。首先查找要借阅的图书,并且显示该项图书的记录,输入借书人的信息后store-,借书成功,询问是否继续。该模块的流程图如以下图4.2-4所示。开 始选择借阅查找方式0-20-21或2输入要借阅的书名或作者调用read(struct book *p)使用for循环查找,m-判断是否继续YN返回菜单结 束0调用save(struct book *p)输入借书人的根本信息显示图书借阅信息图4.
14、2-4 借书模块流程图【程序】void borrow(struct book *p)/借书模块 int z; char name320,name420; char w3; do p=&s0; printf(请先查找您要借阅的图书!); printf(请选择查找方式:n);/打印查询方式菜单 printf( 1.按书名查找n 2.按作者查找n 0.返回n); printf(请在0-2中选择:n); scanf(%d,&z);/读取查找方式 if(z=0) break; switch(z) case 1: printf(请输入书名:n);scanf(%s,name3);break; case 2:
15、 printf(请输入 n);scanf(%s,name4); break; read(&s0);/调用读取函数 for(;ptitle,name3)=0|strcmp(p-author,name4)=0) printf(n查找图书信息成功!n); printf(书名 编号 作者 价格 数量n); printf(%-10s%-10d%-10s%-10.2fs%-10dn, p-title,p-number, p-author, p-price,p-store);/打印信息 printf(请输入您的XX:);scanf(%s,p-borrower_name); printf(请输入您的性别:);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 图书 管理 系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。