1、C语言程序设计实习报告图书馆管理系统设计前言历时一周的计算机实习让我学到了很多知识。换句话说,让我重新认识了C语言这门课程。以前在我的脑海中,计算机编程,只是无数枯燥的代码,很是让人头疼的东西。但现在我改变了自己的看法,计算机也是一种很有乐趣的文化,值得我好好品味。有句老话是这么说的“21世纪是信息爆炸的时代”,信息爆炸的主要承担者就是计算机、互联网。从这一方面看,就寓意着当代大学生学好计算机有多么的重要。计算机硬件的更新相当的神速,现在都已经奔四核了,显卡也越来越高端,内存、硬盘都已经海量了。这说明了什么?说明了现在计算机的软件业的高速发展,软件的发展的基础是编程。过去我只是懂得如何去运用
2、软件,对于它的功能是怎么实现的却是一无所知。通过这次实习,我不再是一个无知者,我现在可以对一些简单的软件是如何运行的,它其中的奥秘是什么,有了自己的理解。这次实习,我按时完成了自己的课程设计图书管理系统设计。一开始,我对它非常陌生,根本无从下手。无奈之下,决定静下心来,好好地把C语言课程设计与学习指导的课本通读了一遍,恍然大悟,其实写程序并非是一件难事,只要细心,思路清晰,并一步一步来,每次完成其中的一个模块,最后把每个模块流畅地衔接起来,最后整个程序修饰一下,一个能够运行的C语言程序就算是写成了。众所周知C语言功能丰富,表达能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既具有高级
3、语言的优点,又具有低级语言的语言特点,因此C语言对我们来说很重要。设计是一门重要的计算机基础课程,通过学习,学生不仅要掌握高级程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。此次上机实习,不但要使同学们的程序设计能力上一台阶,同时要提高与程序设计和软件开发有关的各种综合能力。这次实习只有短短的一周,加上接踵而至的期末考试,我没能把全部精力放在此次实习上,在很多地方还存在欠缺,因此在接下来的日子里,我还需要好好地学习C语言,提升自己在计算机方面的能力。非常感谢王改芳老师在本次实习中对我的指导和帮助!徐学连2010年1月8日目录题目要求及能实现
4、的功能1程序总体设计1详细设计1、主函数22、各功能模块设计5后记24附录26题目要求及能实现的功能图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,使之能提供以下功能:1、新进图书基本信息的输入。2、图书基本信息的查询。3、对撤消图书信息的删除。4、办理借书手续。5、办理还书手续【提示】建立图书管理信息结构体,结构体成员包括图书馆名称、图书编号、单价啊、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同的数字代表借还状态。借书和还书手续要注意修改结构题的成员变量存在状态的值。总体设计欢迎进入地大图书管理系统查阅图书借阅图书退出系统图书归
5、还管理系统欢迎进入管理系统增加图书删除图书学生管理系统图书统计修改图书详细设计1、主函数说明主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程开始显示一系列功能选项输入n,判断n是否是04调用与n相应的模块NY程序main()charch1,ch2,ch4;doprintf(ttChinaUniversityofGeosciencesnn);printf(ttn);printf(tt欢迎进入地大图书管理系统nn
6、);printf(ttBooksaretheladderofhumanprogressGolginn);printf(tn);printf(tn);printf(tt制作:徐学连学号:20081001489班号:05408114nn);printf(ttn);printf(ttn);printf(请选择需要的服务:n);printf(1:查阅图书n);printf(2:借阅图书n);printf(3:管理系统n);printf(4:还书n);printf(0:退出n);printf(请输入数字04:n);ch1=get
7、ch();switch(ch1)case1:chabook();break;case2:lendbook();break;case3:doprintf(tt欢迎进入管理系统n);printf(1:增加图书n);printf(2:删除图书n);printf(3:修改图书n);printf(4:图书统计n);printf(5:学生管理系统n);printf(0:返回n);printf(请输入05:n);ch2=getch();switch(ch2)case1:addbook();break;case2:delbook();bre
8、ak;case3:changebook();break;case4:bookcount();getch();break;case5:doprintf(tt欢迎进入学生管理系统n);printf(1:申请新卡n);printf(2:删除卡号n);printf(3:借书统计n);printf(4:卡号统计n);printf(0:返回n);printf(请输入04:n);ch4=getch();switch(ch4)case1:addcar();break;case2:delcar();break;case3:lendcoun
9、t();break;case4:carcount();break;case0:break;default:printf(无此操作!n);getch();break;while(ch4!=0);break;case0:break;default:printf(无此操作!n);getch();break;while(ch2!=0);break;case4:huanbook();break;case0:break;default:printf(无此操作!n);getch();break;while(ch1!=0);2、各功能模块设计(1)公共函数在很多模块中都有调用
10、structstudent/*定义学生类型*/intcarnum;charlendbook10;student1000;structbook/*定义书的类型*/intbooknum;charbookname20;floatbookprice;charbookcreat20;intturefalse;/*用于借书和还书模块判断一本书是否借出的条件*/book1000;structcar/*借书卡的数据类型*/intcarnum;charsex5;charstudentname20;intstudentclass;car1000;(2)查阅
11、模块说明输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。流程查询系统按书名查找按作者查找退出输入不存在已出借无人借程序chabook()charch5;doprintf(tt欢迎进入图书查询系统nn);printf(1:按书名查找n);printf(2:按作者查找n);printf(0:返回n);printf(请输入02:n);ch5=getch();switch(ch5)case1:findbook();getch();break;cas
12、e2:findbook1();getch();break;case0:break;default:printf(无此操作!n);getch();break;while(ch5!=0);return0;findbook()FILE*fp;charbookname10;inti;fp=fopen(book.txt,r);printf(请输入你要查找的书名:n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(bookname,booki.bookn
13、ame)=0)if(booki.turefalse=1)printf(书号书名作者n%d%s%sn,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n);elseprintf(这本书已经有人借出n);fclose(fp);return0;fclose(fp);return0;printf(没有你要查询的书籍!n);fclose(fp);return0;findbook1()FILE*fp;charbookcreat10;inti;fp=fopen(bo
14、ok.txt,r);printf(请输入你要查找的作者名:n);scanf(%s,bookcreat);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(bookcreat,booki.bookcreat)=0)if(booki.turefalse=1)printf(书号书名作者n%d%s%sn,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n);elseprintf(这本书已经有人借出!n);f
15、close(fp);return0;fclose(fp);return0;printf(没有你要查询的书籍n);fclose(fp);return0;(3)借阅模块说明查阅完图书记录后,用户要借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的指令,帮助其完成借阅。流程借阅图书输入卡号卡号存在输入书名已出借不存在借阅成功返回卡号不存在程序lendbook()FILE*fp,*fp2;inti,n;intcarnum;printf(tt欢迎进入借书系统nn);printf(请输入借书人的:n卡号:n);scanf(%d,&carnum);
16、fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum=carnum)n=i;fclose(fp);printf(书名:n);scanf(%s,studentn.lendbook);fp=fopen(book.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)if(booki.turefalse=0)
17、printf(对不起,此书有人借出,请借其他书n);fclose(fp);getch();return0;elsefclose(fp);fp=fopen(record.txt,a+);studentn.carnum=carnum;fwrite(&studentn,sizeof(structstudent),1,fp);fclose(fp);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(booki.boo
18、kname,studentn.lendbook)=0)booki.turefalse=0;fwrite(&booki,sizeof(structbook),1,fp2);continue;fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!=0;i+)fwrite(&booki,sizeof(structbook)
19、,1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);printf(借书完毕,按任意键返回.n);getch();return0;printf(不存在这样的书,任意键返回.n);fclose(fp);getch();return0;printf(你的卡号不存在,请申请新卡,按任意键返回.n);fclose(fp);getch();return0;(4)管理模块说明管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中重点的操作是图书的管理,为其中的1至4项(分
21、f(书号:n);scanf(%d,&booki.booknum);printf(书名:n);scanf(%s,booki.bookname);printf(作者:n);scanf(%s,booki.bookcreat);printf(单价:n);scanf(%f,&booki.bookprice);printf(请你设定书的状态(1在架/0不在):n);scanf(%d,&booki.turefalse);fwrite(&booki,sizeof(structbook),1,fp);printf(是否要输入下本书(y/n)n);scanf(%s,&choice);f
22、close(fp);2、删除图书delbook()FILE*fp,*fp2;inti;charbookname10,choice;fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);printf(书名:n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(bookname,booki.bookname)!=0)fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);
23、fclose(fp2);printf(确认删除(y/n)n);scanf(%s,&choice);if(choice=y|choice=Y)fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!=0;i+)fwrite(&booki,sizeof(structbook),1,fp);fclose(fp);fclose(fp2);fp2=fopen(bookl.txt,w);fclose(fp2);printf(按任意键返回.n);get
24、ch();return0;elseprintf(按任意键返回.n);getch();return0;3、修改图书changebook()FILE*fp,*fp2;charbookname10,choice;inti;fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);printf(书名:n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(booki.bookname,bookname)=0)print
25、f(你所要修改的书的资料如下,请选择你要修改的内容:n);printf(序号书名作者n);printf(%d%s%sn,booki.booknum,booki.bookname,booki.bookcreat);printf(1:修改书号:n);printf(2:修改书名:n);printf(3:修改作者:n);printf(4:修改单价:);printf(请输入13:);choice=getch();switch(choice)case1:printf(新的书号:n);scanf(%d,&booki.booknum);fwrite(&booki,
26、sizeof(structbook),1,fp2);break;case2:printf(新的书名:n);scanf(%s,booki.bookname);fwrite(&booki,sizeof(structbook),1,fp2);break;case3:printf(新的作者:n);scanf(%s,booki.bookcreat);fwrite(&booki,sizeof(structbook),1,fp2);break;case4:printf(新的单价:);scanf(%f,booki.bookprice);fwrite(&booki,size
27、of(structbook),1,fp2);default:printf(没有这样的操作!);break;continue;fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!=0;i+)fwrite(&booki,sizeof(structbook),1,fp);fclose(fp);fp2=fopen(boo
28、kl.txt,w);fclose(fp2);printf(按任意键返回.n);getchar();return0;4、图书统计bookcount()FILE*fp;inti,n=0;fp=fopen(book.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(booki.booknum!=0&strlen(booki.bookname)!=0&strlen(booki.bookcreat)!=0)printf(第%d本书n序号书名作者单价状态n,i+1);printf(ttn);
29、printf(%d%10s,booki.booknum,booki.bookname);printf(%15s%4.2f%d(1在/0不在)n,booki.bookcreat,booki.bookprice,booki.turefalse);n=n+1;fclose(fp);printf(目前共有%d本书.n,n);printf(按任意键返回.n);end()printf(ttn);printf(ttn);printf(tt谢谢使用本系统,再见!n);printf(ttn);printf(ttn);申请新卡addcar()FILE*fp;inti=0;f
30、p=fopen(car.txt,a+);printf(卡号:n);scanf(%d,&cari.carnum);printf(性别:n);scanf(%s,cari.sex);printf(姓名:n);scanf(%s,cari.studentname);printf(班级:n);scanf(%d,&cari.studentclass);fwrite(&cari,sizeof(structcar),1,fp);fclose(fp);printf(输入完毕,任意键返回.n);getch();删除卡号delcar()FILE*fp,*fp2;inti;intca
31、rnum;charchoice;fp=fopen(car.txt,r);fp2=fopen(bookl.txt,w);printf(要删除的卡号(不存在则不作改动):n);scanf(%d,&carnum);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum!=carnum)fwrite(&cari,sizeof(structcar),1,fp2);fclose(fp);fclose(fp2);printf(确认删除(Y/N)!n);scanf(%s,&choice);if(choi
32、ce=y|choice=Y)fp=fopen(car.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp2)!=0;i+)fwrite(&cari,sizeof(structcar),1,fp);fclose(fp);fclose(fp2);fp2=fopen(bookl.txt,w);fclose(fp2);printf(操作超成功!n按任意键返回.n);getch();return0;elseprintf(操作已取消!n按任意键返回.n);getch();ret
33、urn0;借书统计lendcount()FILE*fp;inti,n=0;fp=fopen(record.txt,r);if(fp=fopen(record.txt,r)=0)printf(文件中没有数据!n);printf(按任意键返回.n);getch();return(0);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)printf(卡号借出的书籍n);printf(%d%sn,studenti.carnum,studenti.lendbook);n=n+1;fclose(fp);
34、printf(目前共有%d本书借出n,n);printf(按任意键.n);getch();returnn;卡号统计carcount()FILE*fp;inti,n=0;fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)printf(第%d张卡n,i+1);printf(卡号性别姓名班级n);printf(ttn);printf(%d%6s%10s%3dnn,cari.carnum,cari.sex,cari.studentname,cari.studen
35、tclass);n=n+1;fclose(fp);printf(目前共有%d个学生。n,n);printf(按任意键返回.n);getch();(5)还书模块说明需要根据输入员工的姓名及工号查找相应的记录,找到后增加删除和修改功能。流程存在不存在出错提示不存在存在删除记录输入卡号输入要还书名程序huanbook()FILE*fp,*fp2;inti,n;intcarnum;charlendbook10;printf(tt(_)欢迎进入还书界面(_);printf(n请你输入你的n卡号:n);scanf(%d,&carnum);fp=fopen(car.
36、txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum=carnum)n=i;fclose(fp);printf(请输入你要还的书的名字:n);scanf(%s,lendbook);fp=fopen(record.txt,r);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)if(strcmp(studenti.lendbook,lendbook)=0)fclose(fp);fp=fopen(record.txt,
37、r);fp2=fopen(bookl.txt,w);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)if(strcmp(studenti.lendbook,lendbook)=0)continue;fwrite(&studenti,sizeof(structstudent),1,fp2);fclose(fp);fclose(fp2);fp=fopen(record.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&studenti,sizeof(structst
38、udent),1,fp2)!=0;i+)fwrite(&studenti,sizeof(structstudent),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(i=n)booki.turefalse=1;fwrite(&booki,sizeof(structbook),1,fp2);conti
39、nue;fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!=0;i+)fwrite(&booki,sizeof(structbook),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);printf(还书完毕,按任意键返回.n);getch
40、();return1;printf(你没有借这样的书,任意键返回.n);fclose(fp);getch();return0;printf(没这样的卡,和管理员联系,按任意键返回.n);fclose(fp);getch();return0;后记为期一周的C语言实训已经结束,但是给我的影响是相当大的。通过这次实训,使我明白C语言这门课程光仅仅是听课是远远不够的,上机训练也不容忽视。通过上机训练,才能够明白自己知识的不足,才能够有的放矢,更加深刻的理解C语言中的知识点,从而找到知识漏点,学到以前不懂的知识,对以前认为自己已懂了的知识点也理解更加深刻。当遇到了自己当时不知如
41、何编写的C语言题目时,通过自己的学习和同学的交流,得以顺利的编写,使我增加了对C语言的兴趣和学好C语言的信心。本次C语言实习的几个作用:1加深对课堂讲授内容的理解课堂上要讲授许多关于C语言的语法规则,听起来比较枯燥,不易记忆。而通过多次上机练习,对于语法知识就有了更深的认识,自然而然地掌握C语言的语法规定。学习C语言不能停留在书本,而是要利用学到的知识编写C语言程序,解决实际问题。通过对自己编写程序的调试,发现问题,解决问题,逐步提高自己对C语言的理解和程序开发能力。2熟悉程序开发环境、学习计算机系统的操作方法一个C语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓环
42、境就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握C语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。在这次实习的过程我中遇到了一些难题,老师给予了我细心的指导,帮助我解决了很多程序上的问题,解答了我一直以来的疑惑,避免了不少弯路。再次向王改文老师的帮助表示衷心的感谢!附录图书馆管理系统设计源程序清单#include#include#include#include#defineSTACK_INIT_SIZE10#defineOK1#defin
43、eTRUE1#defineERROR0structstudentintcarnum;charlendbook10;student1000;structbookintbooknum;charbookname20;floatbookprice;charbookcreat20;intturefalse;book1000;structcarintcarnum;charsex5;charstudentname20;intstudentclass;car1000;findbook()FILE*fp;charbookname10;in
44、ti;fp=fopen(book.txt,r);printf(请输入你要查找的书名:n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(bookname,booki.bookname)=0)if(booki.turefalse=1)printf(书号书名作者n%d%s%sn,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n);elseprintf(这本书
45、已经有人借出n);fclose(fp);return0;fclose(fp);return0;printf(没有你要查询的书籍!n);fclose(fp);return0;findbook1()FILE*fp;charbookcreat10;inti;fp=fopen(book.txt,r);printf(请输入你要查找的作者名:n);scanf(%s,bookcreat);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(bookcreat,booki.bookcreat)=0
46、)if(booki.turefalse=1)printf(书号书名作者n%d%s%sn,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n);elseprintf(这本书已经有人借出!n);fclose(fp);return0;fclose(fp);return0;printf(没有你要查询的书籍n);fclose(fp);return0;chabook()charch5;doprintf(tt欢迎进入图书查询系统nn);printf(1:按书名查
47、找n);printf(2:按作者查找n);printf(0:返回n);printf(请输入02:n);ch5=getch();switch(ch5)case1:findbook();getch();break;case2:findbook1();getch();break;case0:break;default:printf(无此操作!n);getch();break;while(ch5!=0);return0;lendbook()FILE*fp,*fp2;inti,n;intcarnum;printf(tt欢迎进入借书系统nn);pr
48、intf(请输入借书人的:n卡号:n);scanf(%d,&carnum);fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum=carnum)n=i;fclose(fp);printf(书名:n);scanf(%s,studentn.lendbook);fp=fopen(book.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp)!=0;i+)if(strcmp(booki.bookname,stu
49、dentn.lendbook)=0)if(booki.turefalse=0)printf(对不起,此书有人借出,请借其他书n);fclose(fp);getch();return0;elsefclose(fp);fp=fopen(record.txt,a+);studentn.carnum=carnum;fwrite(&studentn,sizeof(structstudent),1,fp);fclose(fp);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&booki,sizeof(struc
50、tbook),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)booki.turefalse=0;fwrite(&booki,sizeof(structbook),1,fp2);continue;fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!
51、=0;i+)fwrite(&booki,sizeof(structbook),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);printf(借书完毕,按任意键返回.n);getch();return0;printf(不存在这样的书,任意键返回.n);fclose(fp);getch();return0;printf(你的卡号不存在,请申请新卡,按任意键返回.n);fclose(fp);getch();return0;huanbook()FILE*fp,*fp2;inti,n;
52、intcarnum;charlendbook10;printf(tt(_)欢迎进入还书界面(_);printf(n请你输入你的n卡号:n);scanf(%d,&carnum);fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum=carnum)n=i;fclose(fp);printf(请输入你要还的书的名字:n);scanf(%s,lendbook);fp=fopen(record.txt,r);for(i=0;fread(&studenti,s
53、izeof(structstudent),1,fp)!=0;i+)if(strcmp(studenti.lendbook,lendbook)=0)fclose(fp);fp=fopen(record.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)if(strcmp(studenti.lendbook,lendbook)=0)continue;fwrite(&studenti,sizeof(structstudent),1,fp2);fclos
54、e(fp);fclose(fp2);fp=fopen(record.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&studenti,sizeof(structstudent),1,fp2)!=0;i+)fwrite(&studenti,sizeof(structstudent),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&booki
55、,sizeof(structbook),1,fp)!=0;i+)if(i=n)booki.turefalse=1;fwrite(&booki,sizeof(structbook),1,fp2);continue;fwrite(&booki,sizeof(structbook),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(structbook),1,fp2)!=0;i+)fwrite(&booki,sizeo
56、f(structbook),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(fp2);printf(还书完毕,按任意键返回.n);getch();return1;printf(你没有借这样的书,任意键返回.n);fclose(fp);getch();return0;printf(没这样的卡,和管理员联系,按任意键返回.n);fclose(fp);getch();return0;lendcount()FILE*fp;inti,n=0;fp=fopen(record.txt,r);if(
57、fp=fopen(record.txt,r)=0)printf(文件中没有数据!n);printf(按任意键返回.n);getch();return(0);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)printf(卡号借出的书籍n);printf(%d%sn,studenti.carnum,studenti.lendbook);n=n+1;fclose(fp);printf(目前共有%d本书借出n,n);printf(按任意键.n);getch();returnn;addcar()FILE
58、*fp;inti=0;fp=fopen(car.txt,a+);printf(卡号:n);scanf(%d,&cari.carnum);printf(性别:n);scanf(%s,cari.sex);printf(姓名:n);scanf(%s,cari.studentname);printf(班级:n);scanf(%d,&cari.studentclass);fwrite(&cari,sizeof(structcar),1,fp);fclose(fp);printf(输入完毕,任意键返回.n);getch();delcar()FILE*fp,*fp2;in
59、ti;intcarnum;charchoice;fp=fopen(car.txt,r);fp2=fopen(bookl.txt,w);printf(要删除的卡号(不存在则不作改动):n);scanf(%d,&carnum);for(i=0;fread(&cari,sizeof(structcar),1,fp)!=0;i+)if(cari.carnum!=carnum)fwrite(&cari,sizeof(structcar),1,fp2);fclose(fp);fclose(fp2);printf(确认删除(Y/N)!n);scanf(%s,&choic
60、e);if(choice=y|choice=Y)fp=fopen(car.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&cari,sizeof(structcar),1,fp2)!=0;i+)fwrite(&cari,sizeof(structcar),1,fp);fclose(fp);fclose(fp2);fp2=fopen(bookl.txt,w);fclose(fp2);printf(操作超成功!n按任意键返回.n);getch();return0;elseprintf(操作已取消!n按任意键返回.n);g