欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    秦思军《C语言课程设计》课程设计.docx

    • 资源ID:15585482       资源大小:464.56KB        全文页数:50页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    秦思军《C语言课程设计》课程设计.docx

    1、秦思军C语言课程设计课程设计Yangtze University College of Arts and Science学生实习手册(课程设计报告)学 部: 理 工 学 部 专 业: 电 子 信 息 工 程 班 级: 5111班 姓 名: 秦 思 军 学 号: 20114002 课程名称: C语言程序设计课设 指导教师: 杜红 呙明辉 实习时间:2012年7月6日至2012年7月14日一、课设题目 图书管理系统二、设计目的 问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。 实现功能: 1、通过提示菜单选择可以进行的操作2、

    2、将图书的基本信息存入文件中,并命名为book.txt3、将图书借阅统计信息存入文件中,并命名为record.txt4、将图书卡号统计信息存入文件中,并命名为card.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a) 输入图书的图书名或作者名,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;b) 添加图书的基本信息,通过输入图书相关信息,首先查找是否存在该图书名的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;c) 修改图书的基本信息,通过输入图书名,首先查找是否存在该图书名的图书,如果存在则提示重新输入,否则将提示修改项(序

    3、号、书名、作者、单价),依据提示进行修改;d) 删除图书的基本信息,通过输入图书名,首先查找是否存在该图书名的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e) 借阅图书,需要给出卡号和图书书名,如果图书名不存在则重新输入,直到输入正确为止,并将学号和相应的图书名存入record.txt文件中。f) 归还图书,需要输入卡号和图书书名,如果图书名不存在则重新输入,直到输入正确为止,然后确认归还;g) 统计分为对在架图书、学生借阅图书、借书卡三项的统计,申请卡号借阅书籍会对三项统计进行修改,显示。5、图书基本信息包括图书序号、书名、作者、单价、状态这些简单信息。6、图书信息文件

    4、中每一行存放一本图书的信息。7、借阅信息文件中每一行存放一本书的借阅情况。掌握知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组和文件的相关操作,包括数组的输入、输出、查找、插入、删除、修改和文件不同形式的读取、写入等操作,需要对数组和文件有比较深入的掌握。三、总体设计1、图书管理系统组成框图2、调用的借阅、卡号统计函数流程图3、调用的删除图书、卡号函数流程图4、调用修改图书函数流程图四、详细设计模块功能说明: (包括结构体、借阅统计函数、卡号统计函数、删除图书函数、 删除卡号函数、修改图书函数)1、结构体:包括学生借阅信息、图书相关信息、借阅卡信息struct stud

    5、ent/学生借阅信息结构体 int cardnum;/卡号 char borrowbook10;/借阅图书student100;struct book/图书相关信息结构体 int booknum;/图书序号 char bookname20;/图书名 int bookprice;/图书单价 char bookauthor20;/图书作者 int status;/图书状态book100;struct card/借阅卡信息结构体 int cardnum;/卡号 char sex4;/性别 char studentname20;/学生姓名 int studentclass;/学生班级card100;2

    6、、借阅统计函数功能:在被调用时,将图书库里的所有被借图书统计起来, 当增加或删除图书时,不能改变此统计结果;当借出或归还时,才能改变它;(此函数无参数,所以无参数说明和函数调用关系)borrowcount()/借阅统计 system(cls); /清屏 FILE *fp; int i,n=0; printf(nttt借书统计nn); /进入借书统计界面 fp=fopen(record.txt,r); /将文件record.txt以读的方式打开 for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) printf(t卡号tt借出的书

    7、籍n); printf(t%dtt%sn,studenti.cardnum,studenti.borrowbook); n=n+1; /读一次就在统计上加一 fclose(fp); printf(目前共有%d本书借出n返回三级菜单n,n); getche(); return 0;3、卡号统计函数功能:在被调用时,将在此图书馆办理借阅卡统计起来, 当增加或删除卡时,能改变此统计结果;(此函数无参数,所以无参数说明和函数调用关系)cardcount()/卡号统计 system(cls); /清屏 FILE *fp; int i,n=0; printf(nttt卡号统计nn); /进入卡号统计界面

    8、fp=fopen(card.txt,r); /将文件card.txt以读的方式打开 for(i=0;fread(&cardi,sizeof(struct card),1,fp)!=0;i+) printf(第%d张卡n,i+1); printf(t卡号tt性别tt姓名tt班级n); printf(ttn); printf(t%dtt%stt%stt%dn,cardi.cardnum,cardi.sex,cardi.studentname,cardi.studentclass); n=n+1; /读一次就在统计上加一 fclose(fp); printf(n目前共有%d个学生n按任意键返回三级菜

    9、单n,n); getche();4、删除图书函数功能:在被调用时,将图书库里需要删除的书籍删除,不需考虑其是 借出(此函数无参数,所以无参数说明和函数调用关系)delbook()/删除图书 system(cls); FILE *fp,*fp2; int i; char bookname10,choice; printf(nttt删除图书nn); /进入删除图书界面 fp=fopen(book.txt,r); /将文件book.txt以读的方式打开 fp2=fopen(book1.txt,w); /将文件book1.txt以写的方式打开 printf(t书名:nt ); scanf(%s,boo

    10、kname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)!=0) / 通过比较,在图书库里寻找所删除的图书 fwrite(&booki,sizeof(struct book),1,fp2);/将非删除的所有书写到book1.txt fclose(fp); fclose(fp2); printf(t确认删除(y/n)?nt ); getchar(); scanf(%c,&choice); if(choice=y|choice=Y) fp=fopen(book.t

    11、xt,w); fp2=fopen(book1.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); /将book1.txt里数据写到book.txt fclose(fp); fclose(fp2); fp2=fopen(book1.txt,w); fclose(fp2); /清空临时文件book1.txt printf(t删除成功,按任意键返回三级菜单n); getchar(); return 0; else printf(t按任意键返回n)

    12、; getche(); return 0; 5、删除卡号函数功能:在被调用时,将卡号库里面需要删除的卡号删除;(此函数无参数,所以无参数说明和函数调用关系)delcard()/删除卡号 system(cls); FILE *fp,*fp2; int i; int cardnum; char choice; printf(nttt删除卡号nn); / 进入删除卡号界面 fp=fopen(card.txt,r); fp2=fopen(book1.txt,w); printf(t要删除的卡号(不存在则不作改动):nt ); scanf(%d,&cardnum); for(i=0;fread(&car

    13、di,sizeof(struct card),1,fp)!=0;i+) if(cardi.cardnum!=cardnum) / 通过比较,在卡号库里寻找所删除的卡号 fwrite(&cardi,sizeof(struct card),1,fp2); /将非删除的卡号写到book1.txt fclose(fp); fclose(fp2); printf(t确认删除?(Y/N)!nt ); getchar(); scanf(%c,&choice); if(choice=y|choice=Y) fp=fopen(card.txt,w); fp2=fopen(book1.txt,r); for(i=

    14、0;fread(&cardi,sizeof(struct card),1,fp2)!=-0;i+) fwrite(&cardi,sizeof(struct card),1,fp); /将book1.txt里数据写到card.txt fclose(fp); fclose(fp2); fp2=fopen(book1.txt,w); fclose(fp2); /清空临时文件book1.txt printf(t删除成功,返回三级菜单n); getchar(); return 0; else getchar(); printf(t操作已取消!n按任意键返回n); getche(); return 0;

    15、6、修改图书函数功能:在其被调用时,将需修改的图书基本信息进行修改,分为对图书序号、图书名、作者及单价的修改;(此函数无参数,所以无参数说明和函数调用关系)changebook()/修改图书 system(cls); FILE *fp,*fp2; char bookname10,choice; int i; printf(nttt修改图书nn); /进入修改图书界面 fp=fopen(book.txt,r); fp2=fopen(book1.txt,w); printf(t书名:nt ); /输出需修改的书名 scanf(%s,bookname); getchar(); for(i=0;fre

    16、ad(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,bookname)=0)/寻找所需修改的图书 printf(t你所要修改的书的资料如下,请选择你要修改的内容:n); printf(t序号tt书名tt作者tt单价n); printf(t%dtt%stt%stt%dn,booki.booknum,booki.bookna me,booki.bookauthor,booki.bookprice); printf(nt1:修改书号:n); printf(t2:修改书名:n); printf(t3:修改作者:n);

    17、printf(t4:修改单价:n); printf(t请输入-4:nt ); choice=getchar(); switch(choice) /选择1-4的不同修改项 case 1: printf(t新的书号:nt ); scanf(%d,&booki.booknum); fwrite(&booki,sizeof(struct book),1,fp2); break; case 2: printf(t新的书名:nt ); scanf(%s,booki.bookname); fwrite(&booki,sizeof(struct book),1,fp2); break; case 3: pri

    18、ntf(t新的作者:nt ); scanf(%s,booki.bookauthor); fwrite(&booki,sizeof(struct book),1,fp2); break; case 4: printf(t新的单价:nt ); scanf(%d,&booki.bookprice); fwrite(&booki,sizeof(struct book),1,fp2); break; default:printf(t没有这样的操作!);break; getchar(); continue; fwrite(&booki,sizeof(struct book),1,fp2);/将修改后的图书

    19、信息写入book1.txt fclose(fp); fclose(fp2); fp=fopen(book.txt,w); fp2=fopen(book1.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp);/将book1.txt数据写入book.txt printf(t修改成功,按任意键返回二级菜单n); getche(); fclose(fp); fp2=fopen(book1.txt,w); / 将临时文件清空 fclose(fp2);五

    20、、运行结果及分析1、调用借阅统计函数时的运行结果2、调用卡号统计函数时的运行结果3、调用删除图书函数时的运行结果4、调用删除卡号函数时的运行结果5、调用修改图书函数时的运行结果六、调试与测试 调试就是利用软件的功能将程序的每一步按照流程走一次,如果出现问题就能很直接,很精确地找出问题的所在,从而更好地解决问题。 调试方法:将断点设在需检测的程序语句的首段,特别是要在关键、易出错的地方;然后开始调试,按照要求一步一步的进行,遇到停止的地方说明此处有问题,还可以在watch里面输入你要观察的变量这样就更直接的观察程序是怎样运行的,看是不是按照自己的程序思想在进行。 测试结果的分析:在运行测试某段程

    21、序时,如果程序一直按照编译者的初衷来运行,并且没有“卡壳”,说明测试结果理想;否则,就是程序出现问题,就得分析原因,找出症结所在,在不断的更改讨论和调试运行中,得出最好的解决方案。 在此,我调试了一下删除图书函数与主函数的连接及调用 函数运行的过程:1、调用删除函数drlbook()之前在主函数里2、调用此函数即转到此函数当中3、在此函数里面正常运行 在此次我负责的程序段中,我是首先运行是否有错,功能是否实现,最后才进行调试,并且调试的结果是理想的,所以没有在调试中遇到问题。七、课程设计心得及体会本次课程设计经历地十分辛苦,想必都有这个体会(老师也不例外),这就是我们在上半学期没有更好地学习C

    22、语言知识,同时也没有接触课外有关于C语言方面的知识,才导致我们一下碰到这么复杂,从没接触过的课设(对于我们而言);但是也就是因为这种情况,我才意识到自己这方面的知识太薄弱了,什么事、知识都不能一味地考老师来教,自己得有自觉学习的能力和习惯。在编程的一个多星期里,以小组为单位的我们表现了团队的力量,分工明确,虽然途中遇到过很多困难,我们依然坚定地解决了,最后完成了设计。再说一下我自己在这个过程当中的体会:编程的过程使我了解到我还有好多东西没有掌握,或者没有接触到的知识点,但是也通过自己的自学、请教老师、同学,学到了不少东西,例如:在编程方面对结构体的理解与运用,熟练运用文件,学会怎样去调试某段程

    23、序使之运行得当;在计算机方面,学会了好多有关计算机方面的知识总结:本次课程设计虽然“历经磨难”,但也“硕果累累”,不仅是一个挑战,更是一个提醒,提醒我大学应该做什么,怎样学习才更有效,将来步入社会,将何去何从等等一系列“有营养”的话题。最后,我还期待着下一个课程设计会给我带来什么“营养”,我将拭目以待八、源程序清单和执行结果:#include#include#include#include#includestruct student/学生借阅信息结构体 int cardnum;/卡号 char borrowbook10;/借阅图书student100;struct book/图书相关信息结构体

    24、 int booknum;/图书序号 char bookname20;/图书名 int bookprice;/图书单价 char bookauthor20;/图书作者 int status;/图书状态book100;struct card/借阅卡信息结构体 int cardnum;/卡号 char sex4;/性别 char studentname20;/学生姓名 int studentclass;/学生班级card100;search_by_name()/按图书名查阅 FILE *fp; char bookname10; int i,flag=0; fp=fopen(book.txt,r);

    25、 printf(t请输入你要查找的书名:nt ); scanf(%s,bookname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /将book.txt内容读到图书数组 if(strcmp(bookname,booki.bookname)=0) /通过比较,在图书库里查询要找的书 flag=1; if(booki.status=1) /当图书存在status=1输出相关信息 fclose(fp); printf(t书号tt书名tt作者tt单价nt%dtt%stt%stt%dn,booki.booknum,booki.bookn

    26、ame,booki.bookauthor,booki.bookprice); printf(t此书无人借阅n); / status=1 else printf(t这本书已经有人借出n); / status=0 fclose(fp); return 0; if(flag=0) printf(t没有你要查询的书籍!n); fclose(fp); return 0;search_by_author()/按作者名查阅 FILE *fp; char bookauthor10; int i,flag; fp=fopen(book.txt,r); printf(t请输入你要查找的作者名:nt ); scan

    27、f(%s,bookauthor); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /将book.txt内容读到图书数组 if(strcmp(bookauthor,booki.bookauthor)=0) /通过比较,在图书库里查询要找的书 flag=1; if(booki.status=1) /当图书存在status=1输出相关信息 fclose(fp); printf(t书号tt书名tt作者tt单价nt%dtt%stt%stt%dn,booki.booknum,booki.bookname,booki.bookauthor,booki


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开