C语言课程设计报告图书借阅系统

上传人:无*** 文档编号:80073125 上传时间:2022-04-24 格式:DOC 页数:24 大小:129.54KB
收藏 版权申诉 举报 下载
C语言课程设计报告图书借阅系统_第1页
第1页 / 共24页
C语言课程设计报告图书借阅系统_第2页
第2页 / 共24页
C语言课程设计报告图书借阅系统_第3页
第3页 / 共24页
资源描述:

《C语言课程设计报告图书借阅系统》由会员分享,可在线阅读,更多相关《C语言课程设计报告图书借阅系统(24页珍藏版)》请在装配图网上搜索。

1、沈 阳 航 空 工 业 学 院 课程设计学 号 _班 级 _ 姓 名 _指导教师 _年 月 日沈阳航空工业学院课程设计任务书机械与汽车学院 机械设计制造及其自动化专业 5406108班 学号200504061275 一、课程设计题目:图书借阅系统二、课程设计工作自2007年7月9日起至2007年7月14日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:(1)输入图书信息,并保存至文件book.dat中(图书信息应包括以下项目:图书编号、名称、出版社、作者、现有数量和总量)(2)查询功能 可按编号、书名、作者、出版社进行查询,并将查询的详细信息输出 (3)借阅功能 (4)

2、增加删除记录功能 (5)归还功能注:学生借阅图书的信息保存在borrow.dat文件中,学生信息至少应包括学号,姓名,所借图书编号几项。四、课程设计要求:程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 用户界面中的菜单至少应包括“信息录入”、“信息查询”、“借阅”、“增加图书”、“删除图书”、“归还图书”、“退出”7项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流

3、程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l 源程序及适当的注释指导教师:_学生签名:_沈 阳 航 院 设 计 用 纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段7四、个人总结12五、参考文献12六、源程序1220一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为九个模块,其中每一个模块对应一个函数,他们的功能分别是:录入书籍函数save( ),编号查询函数search_number( ),书名查询函数search_name( ),作者查询函数search_writer( ),出版社查询函数search_pub

4、lisher ( ),借阅图书函数jieshu( ),增加图书函数add( ),删除图书函数del( )以及归还图书函huanshu( )。这些函数的实现严格按照题目的要求。1、录入书籍函数 主要实现程序最初运行时图书数据的录入以及其后的运行中图书数据的追加功能;2、编号查询函数 实现的功能是按照编号对图书的数据进行查询;3、书名查询函数 实现的功能是按照书名对图书的数据进行查询;4、作者查询函数 实现的功能是按照作者对图书的数据进行查询;5、出版社查询函数 实现的功能是按照出版社对图书的数据进行查询;6、借阅图书函数 实现的是学生可以借阅图书馆现存的图书;7、增加图书函数 实现的是在现有图书

5、中增加新的图书;8、删除图书函数 实现的是在现有图书中删除旧的图书;9、归还图书函数 实现图书的归还并在现有数量上得以保存。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。在程序当中,将图书记录类型定义为结构体类型,添加以及追加的图书信息直接写入book.dat文件中,其他函数每次对图书记录的访问,其数据来源都是book.dat文件,这样做不但可以保证图书数据的一致性,而且可以对图书数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图 1、程序总体结构图信息录入编号查 询作者查询出版社查询借书添加新书退出结束主函

6、数 图1程序总体结构图2、具体功能框图(1)录入信息函数 录入信息定义文件类型指针、输入录入的个数 a 定义整形变量 i =0 输入一本书的信息 、i 自增 1i 是否 小于 a 建立文件book.dat 并且把图书信息写入到文件中 关闭文件 退出是否 图2录入信息图(2)查询函数 输入查询的编号打开文件 读取文件信息判断图书编号是否一致输出图书信息判断文件是否结束关闭文件退出查询函数 图3查询函数图(3)借阅函数 借阅功能输入借阅图书的编号、打开文件读取文件信息图书编号是否相同图书数量自减 关闭文件 退出文件是否结束是否是否 图4借阅函数图(4)归还函数归还功能输入归还图书的编号、打开文件读

7、取文件信息图书编号是否相同图书数量自增 关闭文件 退出文件是否结束是否是否 图5归还函数图三、核心技术的实现说明及相应程序段本程序主要由九个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,录入书籍函数、图书查询函数和删除图书函数是程序中较为核心的部分,下面分别进行说明。1、录入书籍函数 录入书籍分为两种情况,其一是录入书籍的数量大于规定录入书籍的数量,则不能录入,需要重新录入数量。其二就是录入书籍的数量小于规定录入书籍的数量,这时可以正常录入书籍。具体的程序段如下:void save() FILE *fp; int i; for(i=0;i=

8、SHU) printf(n不系统不能录入太多 只能容纳 %d 本 请重新输入录入的数量 :,SHU); scanf(%d,&num); for(i=0;inum;i+) printf(n请输入书的编号 :); scanf(%s,booki.number);printf(n请输入书的名字 :); scanf(%s,booki.name);printf(n请输入书的作者 :); scanf(%s,booki.writer);printf(n请输入书的出版社 :); scanf(%s,booki.publish); printf(n请输入书的数量 :); scanf(%d,&booki.num_al

9、l); booki.num_now=booki.num_all; for(i=0;iSHU;i+) if(strcmp(booki.number,)!=0) printf(n%st%st%st%st%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all); printf(n);2、图书查询函数这段函数主要包括4个部分,可以分别按照图书的编号、书名、作者以及出版社来进行查询想要借阅的图书,这4段函数主要运用strcmp(比较两个字符串)函数。具体程序段如下:void search_number() FILE *fp;

10、 char number10; int i,j,flag; printf(n请输入书的编号 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.number,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_name() FILE *fp

11、; char number10; int i,j,flag; printf(n请输入书的名字 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.name,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_publisher() FILE

12、 *fp; char number10; int i,j,flag; printf(n请输入书的出版社 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.publish,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_writer()

13、 FILE *fp; char number10; int i,j,flag; printf(n请输入书的作者 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.writer,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); 3、删除图书函数这部分函数是通过输

14、入一个编号将现存的这种图书从书库里全部删去,即是从原有图书现量中消失。主要运用strcpy函数。具体的程序段如下:void del() int i,k; char number20; printf(n请输入删除书的编号 :); scanf(%s,number); for(i=0;inum;i+) if(strcmp(booki.number,number)=0) k=i; strcpy(booki.number,); strcpy(booki.name,); strcpy(booki.publish,); strcpy(booki.writer,); booki.num_all=0; book

15、i.num_now=0; for(i=k;inum;i+) strcpy(booki.number,booki+1.number); strcpy(booki.name,booki+1.name); strcpy(booki.publish,booki+1.publish); strcpy(booki.writer,booki+1.writer); booki.num_all=booki+1.num_all; booki.num_now=booki+1.num_now; num-; for(i=0;iSHU;i+) if(strcmp(booki.number,)!=0) printf(n%s

16、t%st%st%st%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all); 四、个人总结通过这次C语言的课程设计,让我在课本的基础上,更深一步的掌握了C语言程序的编写与分析,并在发现错误之后,能够通过查找资料和请教同学将这些错误改正。可以说过程是艰苦的,但让我学到了关于C语言程序编写的初步知识和本领,也为我将来的学习甚至工作都产生了深远的影响,让我体验了实践的环节对于我们大学生是多么重要,它也让我懂得学以自用的深刻含义,对待工作和学习要以一棵严谨,进取的心来面对.五、参考文献1 谭浩强C程序设计北京:清华大学出

17、版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#include#define SHU 1000struct book/*定义书的结构体/* char number20; /*字符型变量/* char name20; char writer20; char publish20; int num_now; int num_all; bookSHU;int num;void save()/*录入图书/* FILE *fp; int i; for(i=0;i=SHU) printf(n不系统不能录入太多 只

18、能容纳 %d 本 请重新输入录入的数量 :,SHU); scanf(%d,&num); for(i=0;inum;i+) printf(n请输入书的编号 :); scanf(%s,booki.number); printf(n请输入书的名字 :); scanf(%s,booki.name); printf(n请输入书的作者 :); scanf(%s,booki.writer);printf(n请输入书的出版社 :); scanf(%s,booki.publish); printf(n请输入书的数量 :); scanf(%d,&booki.num_all); booki.num_now=book

19、i.num_all; for(i=0;iSHU;i+) if(strcmp(booki.number,)!=0) printf(n%st%st%st%st%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all); printf(n);void search_number()/*编号查询/* FILE *fp; char number10; int i,j,flag; printf(n请输入书的编号 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(bo

20、oki.number,number)=0) /*比较两个字符串/* flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_name()/*名字查询/* FILE *fp; char number10; int i,j,flag; printf(n请输入书的名字 :); scanf(%s,number); flag=0; for(i=0;

21、iSHU;i+) if(strcmp(booki.name,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_publisher()/*出版社查询/* FILE *fp; char number10; int i,j,flag; printf(n请输入书的出版社 :); scanf(%s,number); fl

22、ag=0; for(i=0;iSHU;i+) if(strcmp(booki.publish,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void search_writer()/*作者查询/* FILE *fp; char number10; int i,j,flag; printf(n请输入书的作者 :); scanf(%s

23、,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.writer,number)=0) flag+; if(flag=1) printf(n学生信息 查询结果:); printf(n%st%st%st%st%dt%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all,booki.num_now); void jieshu()/*借阅图书/* int i,j,flag,a,k; char number10; printf(n请输入借书的数量 :); scanf(%d,

24、&a); for(k=0;ka;k+) printf(n请输入书的编号 :); scanf(%s,number); flag=0; for(i=0;iSHU;i+) if(strcmp(booki.number,number)=0) flag+; booki.num_now-; if(0=flag) printf(n没有这本书); void huanshu()/*归还图书/* int i,j,flag,a,k; char number10; printf(n请输入还书的数量 :); scanf(%d,&a); for(k=0;ka;k+) printf(n请输入书的编号 :); scanf(%

25、s,number); flag=0; for(i=0;i=SHU) printf(n书库信息已满、请改变书的总量 ); printf(n请输入书的编号 :); scanf(%s,booknum.number); printf(n请输入书的名字 :); scanf(%s,booknum.name); printf(n请输入书的作者 :); scanf(%s,booknum.writer); printf(n请输入书的出版社 :); scanf(%s,booknum.publish); printf(n请输入书的数量 :); scanf(%d,&booknum.num_all); booknum.

26、num_now=booknum.num_all; num+; for(i=0;iSHU;i+) if(strcmp(booki.number,)!=0) printf(n%st%st%st%st%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all); void del() int i,k; char number20; printf(n请输入删除书的编号 :); scanf(%s,number); for(i=0;inum;i+) if(strcmp(booki.number,number)=0) k=i; st

27、rcpy(booki.number,); strcpy(booki.name,); strcpy(booki.publish,); strcpy(booki.writer,); booki.num_all=0; booki.num_now=0; for(i=k;inum;i+) strcpy(booki.number,booki+1.number); strcpy(booki.name,booki+1.name); strcpy(booki.publish,booki+1.publish); strcpy(booki.writer,booki+1.writer); booki.num_all=

28、booki+1.num_all; booki.num_now=booki+1.num_now; num-; for(i=0;iSHU;i+) if(strcmp(booki.number,)!=0) printf(n%st%st%st%st%d,booki.number,booki.name,booki.writer,booki.publish,booki.num_all); void menu() int i,j; for(i=0;i+) printf(n 0 退出); printf(n 1 编号查询); printf(n 2 书名查询); printf(n 3 作者查询); printf(

29、n 4 出版社查询); printf(n 5 请选择); scanf(%d,&j); switch(j) case 0: exit(0); case 1: search_number(); break; case 2: search_name(); break; case 3: search_writer(); break; case 4: search_publisher();break; void main() int i,j,k,t,m,mm; for(t=1;t+) printf(1 录入书籍 nr); printf(2 编号查询nr); printf(3 书名查询nr); print

30、f(4 作者查询nr); printf(5 出版社查询nr); printf(6 借阅图书nr); printf(7 增加图书nr); printf(8 删除图书nr); printf(9 归还图书n); printf(10 退出nr); scanf(%d,&mm); switch(mm) case 1: save(); break; case 2: search_number();break; case 3: search_name();break; case 4: search_publisher();break; case 5: search_writer();break; case 6: jieshu(); break; case 7: add(); break; case 8: del(); break; case 9: huanshu(); break; case 10: exit(0);break; default: printf(输入错误n);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!