1、C语言程序设计大作业图书管理系统docxC语言程序设计大作业设计报告一设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。二模块说明及代码分析 1.主函数: 源代码:void main() int a; printf(n); printf(n); printf( ( _ ) WELCOME!n); printf(n); printf(n); printf(n); printf(n); printf(n); printf(t-BJTU图书管理系统-); printf(n); printf(n
2、); printf(n); printf(n); printf(n); printf(n); printf(n); do printf(1.借书 2.还书 3.新书录入 4.查询 0.退出); printf(n); printf(n); printf(n); printf(n); printf(请选择序号:); scanf(%d,&a); switch(a) case 1:jieshu();break; case 2:huanshu();break; case 3:xinshu();break; case 4:chaxun();break; case 0:break; default:prin
3、tf(请选择正确的序号!n);printf(n); while(a!=0); printf(谢谢使用图书管理系统!n);主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。2.新书录入模块源代码:void xinshu() int i; FILE *fp; if(fp=fopen(library.txt,w)=NULL) printf(打开文件失败!n); exit(0); printf(请输入要录入的新书的编号:); scanf(%d,&scount.number); for(i=0;icount;i+) if(si.number=scount.number) printf(编
4、号已存在,请重新输入:); scanf(%d,&scount.number); printf(请输入图书名称:); scanf(%s,&scount.name); printf(请输入图书作者:); scanf(%s,&scount.author); printf(请输入图书数量:); scanf(%d,&scount.shuliang); count+; fclose(fp); printf(录入成功!n); printf(n); printf(n); printf(n);新书录入模块实现了新书的编号、书名、作者、数量的录入,并设计有输入错误时的提示。3.借书模块源代码:void jiesh
5、u() int b,i,shu; printf(请输入要借书的编号:); scanf(%d,&b); for(i=0;i=0) printf(借书成功!); si.shuliang=si.shuliang-shu; else printf(抱歉,图书数量不够 请重新输入:); scanf(%d,&shu); printf(n); printf(n); printf(n); 借书模块实现了对指定图书的借出,并在借出时程序将图书数量自行减去借出数量,在所借图书数量超过现有数量时给出提示。4.还书模块源代码:void huanshu() int i,d,e; printf(请输入要还书的编号:);
6、scanf(%d,&d); for(i=0;icount) printf(此图书不存在); printf(n); printf(n); printf(n); 还书模块实现简便的还书过程,并用count的变化来调整图书数量。5.查询模块源代码:void chaxun() int i,f; printf(请输入要查找图书的编号:); scanf(%d,&f); for(i=0;icount) printf(此图书不存在n); printf(n); printf(n); printf(n);该模块实现对图书的查询功能,通过对图书编号的检索,给出该图书的对应信息,包括图书名称、作者、剩余数量。三数据文
7、件名数据文件名为library.txt,用于新书录入的数据存储。四系统运行测试结果分析交互界面:新书录入:借书:当所借数量小于等于所存数量时,即显示结束成功。当所借书数量超过图书总量,则给出提示,重新输入。查询:从借书后的查询结果与新书录入时的数量相比较,可以看出已经减去所借出的图书数量。还书:还回借出的两本书里的一本后,经查询可得数量得到相对应的减少。退出:收获与体会: 经过一学期的C语言程序设计的学习后,对于C语言有了初步的认识,并能开始写简单的程序,但是对于这个大作业还是烦恼了一阵子,由于程序会写的很长,调试过程也会比较困难,所以我们决定组队一起完成这个大程序,xxx负责主函数以及借书、
8、新书模块以及函数的调试过程等,xxxx负责查询、还书模块以及设计报告的封面等,这个大程序占用了我们很多时间,调试过程中遇到了很多疑惑,也找过大神求助过,最后好不容易可以运行了,也是出现了好多小问题,就这样反反复复,最后的最后,得到成功的时候,我们都欢呼雀跃了,感觉到程序设计的神奇,看到自己写的程序可以实现这样的小功能就觉得非常自豪,当然,过程中也显示了我们的知识不扎实,才会如此辛苦,看来,学好C语言并不是一件容易的事,但是我们相信,只要有一次成功,就会有更多的成功。我想,这就是我们学到的吧。设计人员:xxx:设计报告封面,查询还书模块xxx:主函数,借书新书模块,程序运行调试全代码:#incl
9、ude#include#includestruct BOOK char name20;char author20; int number,shuliang; s10000; int count=0;void jieshu();void huanshu();void xujie();void xinshu();void chaxun();void main() int a; printf(n); printf(n); printf( ( _ ) WELCOME!n); printf(n); printf(n); printf(n); printf(n); printf(n); printf(t-
10、BJTU图书管理系统-); printf(n); printf(n); printf(n); printf(n); printf(n); printf(n); printf(n); do printf(1.借书 2.还书 3.新书录入 4.查询 0.退出); printf(n); printf(n); printf(n); printf(n); printf(请选择序号:); scanf(%d,&a); switch(a) case 1:jieshu();break; case 2:huanshu();break; case 3:xinshu();break; case 4:chaxun();
11、break; case 0:break; default:printf(请选择正确的序号!n);printf(n); while(a!=0); printf(谢谢使用图书管理系统!n);void xinshu() int i; FILE *fp; if(fp=fopen(library.txt,w)=NULL) printf(打开文件失败!n); exit(0); printf(请输入要录入的新书的编号:); scanf(%d,&scount.number); for(i=0;icount;i+) if(si.number=scount.number) printf(编号已存在,请重新输入:)
12、; scanf(%d,&scount.number); printf(请输入图书名称:); scanf(%s,&scount.name); printf(请输入图书作者:); scanf(%s,&scount.author); printf(请输入图书数量:); scanf(%d,&scount.shuliang); count+; fclose(fp); printf(录入成功!n); printf(n); printf(n); printf(n);void huanshu() int i,d,e; printf(请输入要还书的编号:); scanf(%d,&d); for(i=0;icou
13、nt) printf(此图书不存在); printf(n); printf(n); printf(n); void chaxun() int i,f; printf(请输入要查找图书的编号:); scanf(%d,&f); for(i=0;icount) printf(此图书不存在n); printf(n); printf(n); printf(n);void jieshu() int b,i,shu; printf(请输入要借书的编号:); scanf(%d,&b); for(i=0;i=0) printf(借书成功!); si.shuliang=si.shuliang-shu; else printf(抱歉,图书数量不够 请重新输入:); scanf(%d,&shu); printf(n); printf(n); printf(n);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2