欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2384888       资源大小:75KB        全文页数:23页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    沈 阳 航 空 工 业 学 院 课程设计学 号 _班 级 _ 姓 名 _指导教师 _年 月 日沈阳航空工业学院课程设计任务书机械与汽车学院 机械设计制造及其自动化专业 5406108班 学号200504061275 一、课程设计题目:图书借阅系统二、课程设计工作自2007年7月9日起至2007年7月14日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:(1)输入图书信息,并保存至文件book.dat中(图书信息应包括以下项目:图书编号、名称、出版社、作者、现有数量和总量)(2)查询功能 可按编号、书名、作者、出版社进行查询,并将查询的详细信息输出 (3)借阅功能 (4)增加删除记录功能 (5)归还功能注:学生借阅图书的信息保存在borrow.dat文件中,学生信息至少应包括学号,姓名,所借图书编号几项。四、课程设计要求:程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 用户界面中的菜单至少应包括“信息录入”、“信息查询”、“借阅”、“增加图书”、“删除图书”、“归还图书”、“退出”7项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l 源程序及适当的注释指导教师:_学生签名:_目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段7四、个人总结12五、参考文献12六、源程序12一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为九个模块,其中每一个模块对应一个函数,他们的功能分别是:录入书籍函数save( ),编号查询函数search_number( ),书名查询函数search_name( ),作者查询函数search_writer( ),出版社查询函数search_publisher ( ),借阅图书函数jieshu( ),增加图书函数add( ),删除图书函数del( )以及归还图书函huanshu( )。这些函数的实现严格按照题目的要求。1、录入书籍函数 主要实现程序最初运行时图书数据的录入以及其后的运行中图书数据的追加功能;2、编号查询函数 实现的功能是按照编号对图书的数据进行查询;3、书名查询函数 实现的功能是按照书名对图书的数据进行查询;4、作者查询函数 实现的功能是按照作者对图书的数据进行查询;5、出版社查询函数 实现的功能是按照出版社对图书的数据进行查询;6、借阅图书函数 实现的是学生可以借阅图书馆现存的图书;7、增加图书函数 实现的是在现有图书中增加新的图书;8、删除图书函数 实现的是在现有图书中删除旧的图书;9、归还图书函数 实现图书的归还并在现有数量上得以保存。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。在程序当中,将图书记录类型定义为结构体类型,添加以及追加的图书信息直接写入book.dat文件中,其他函数每次对图书记录的访问,其数据来源都是book.dat文件,这样做不但可以保证图书数据的一致性,而且可以对图书数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图 1、程序总体结构图信息录入编号查 询作者查询出版社查询借书添加新书退出结束主函数 图1程序总体结构图2、具体功能框图(1)录入信息函数 录入信息定义文件类型指针、输入录入的个数 a 定义整形变量 i =0 输入一本书的信息 、i 自增 1i 是否 小于 a 建立文件book.dat 并且把图书信息写入到文件中 关闭文件 退出是否 图2录入信息图(2)查询函数 输入查询的编号打开文件 读取文件信息判断图书编号是否一致输出图书信息判断文件是否结束关闭文件退出查询函数 图3查询函数图(3)借阅函数 借阅功能输入借阅图书的编号、打开文件读取文件信息图书编号是否相同图书数量自减 关闭文件 退出文件是否结束是否是否 图4借阅函数图(4)归还函数归还功能输入归还图书的编号、打开文件读取文件信息图书编号是否相同图书数量自增 关闭文件 退出文件是否结束是否是否 图5归还函数图三、核心技术的实现说明及相应程序段本程序主要由九个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,录入书籍函数、图书查询函数和删除图书函数是程序中较为核心的部分,下面分别进行说明。1、录入书籍函数 录入书籍分为两种情况,其一是录入书籍的数量大于规定录入书籍的数量,则不能录入,需要重新录入数量。其二就是录入书籍的数量小于规定录入书籍的数量,这时可以正常录入书籍。具体的程序段如下:void save() FILE *fp; int i; for(i=0;i<SHU;i+) strcpy(booki.number,""); printf("n请输入录入书的数量 :"); scanf("%d",&num); while(num>=SHU) printf("n不系统不能录入太多 只能容纳 %d 本 请重新输入录入的数量 :",SHU); scanf("%d",&num); for(i=0;i<num;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=booki.num_all; for(i=0;i<SHU;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; char number10; int i,j,flag; printf("n请输入书的编号 :"); scanf("%s",number); flag=0; for(i=0;i<SHU;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; char number10; int i,j,flag; printf("n请输入书的名字 :"); scanf("%s",number); flag=0; for(i=0;i<SHU;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); flag=0; for(i=0;i<SHU;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",number); flag=0; for(i=0;i<SHU;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、删除图书函数这部分函数是通过输入一个编号将现存的这种图书从书库里全部删去,即是从原有图书现量中消失。主要运用strcpy函数。具体的程序段如下:void del() int i,k; char number20; printf("n请输入删除书的编号 :"); scanf("%s",number); for(i=0;i<num;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; booki.num_now=0; for(i=k;i<num;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;i<SHU;i+) if(strcmp(booki.number,"")!=0) printf("n%st%st%st%st%d",booki.number,booki.name,booki.writer,booki.publish,booki.num_all); 四、个人总结通过这次C语言的课程设计,让我在课本的基础上,更深一步的掌握了C语言程序的编写与分析,并在发现错误之后,能够通过查找资料和请教同学将这些错误改正。可以说过程是艰苦的,但让我学到了关于C语言程序编写的初步知识和本领,也为我将来的学习甚至工作都产生了深远的影响,让我体验了实践的环节对于我们大学生是多么重要,它也让我懂得学以自用的深刻含义,对待工作和学习要以一棵严谨,进取的心来面对.五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include<stdlib.h>#include<stdio.h>#include<string.h>#include<math.h>#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;i+) strcpy(booki.number,""); /*将“""”复制到“booki.number”/* printf("n请输入录入书的数量 :"); scanf("%d",&num); while(num>=SHU) printf("n不系统不能录入太多 只能容纳 %d 本 请重新输入录入的数量 :",SHU); scanf("%d",&num); for(i=0;i<num;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=booki.num_all; for(i=0;i<SHU;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;i<SHU;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; char number10; int i,j,flag; printf("n请输入书的名字 :"); scanf("%s",number); flag=0; for(i=0;i<SHU;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); flag=0; for(i=0;i<SHU;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",number); flag=0; for(i=0;i<SHU;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",&a); for(k=0;k<a;k+) printf("n请输入书的编号 :"); scanf("%s",number); flag=0; for(i=0;i<SHU;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;k<a;k+) printf("n请输入书的编号 :"); scanf("%s",number); flag=0; for(i=0;i<SHU;i+) if(strcmp(booki.number,number)=0) flag+; booki.num_now+; if(0=flag) printf("n没有这本书"); void add() int i; if(num>=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.num_now=booknum.num_all; num+; for(i=0;i<SHU;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;i<num;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; booki.num_now=0; for(i=k;i<num;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;i<SHU;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("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"); printf("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");

    注意事项

    本文(C语言课程设计报告图书借阅系统 .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开