C语言课程设计图书管理系统_第1页
C语言课程设计图书管理系统_第2页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hunan Inl&rnalFonalEconomicsUniversdyC 语言课程设计姓名: 莫方民班级:计算机1403学号:144030318-i -图书管理系统目录一、 题目要求及能实现的功能.2二、 程序总体设计.2三、 详细设计1、主函数.42、各功能模块设计 .5四、 附 录. 26题目要求及能实现的功能-2 -图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,使之 能提供以下功能:1 1、 新进图书基本信息的输入。2 2、 图书基本信息的查询。3 3、 对撤消图书信息的删除。4 4、 办理借书手续。5 5、 办理还书手续【提示】建立图

2、书管理信息结构体,结构体成员包括图书馆名称、图书编号、单价啊、作者、存在状态、借书人 姓名、性别、学号。存在状态设为整型,可用不同的数字代表借还状态。借书和还书手续要注意修改结 构题的成员变量存在状态的值。总体设计详细设计1、主函数-3 -制作:郭献安学号:29101001871班号二05410113 J说明主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开 始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程KJ!要书书统需图理书岀选查埴吕注嗚1 1: :2 2: :3 3: :4 4: :欧*统? ?0 0书书书计S SZ Z-

3、-5 5: :妬图图图统工冃烛加除改书生回|鷲删修畢返A A1 1 2 2 3 3 4 4 5 5 0 0 r rr ri i- -F F-4 -2、各功能模块设计(2)查阅模块0:返_诵厂你要宜枝的书启:券物理打号 书名 作苞2B01大宰物理戛大华此书现在无几借阅技还彦磁也回说明输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运 行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。流程-5 -查询系统按书名查找按作者查找(3)借阅模块零蚤按任意帧回说明查阅完图书记录后,用户要借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的 指令,帮

4、助其完成借阅。流程入惜书人前:-6 -借阅图书侍号存在(4)管理模块-7 -说明管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中重点的操作是图书的管理,为其中的1 1 至 4 4 项(分别是增加图书、删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。职工管理系统主要有增加图 书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号 统计四个模块,用于管理学生登录信息。流程: C: DocuAeiLts and Sett:Y 新卡统统0 0请辱口!p 回X申删返辙.1 12

5、 2 3 3- -4 40 0. .-8 -(5)还书模块単舸h你鄴虽的啪需,字:去孕物理迤韦充辛按任疸婕返回说明需要根据输入员工的姓名及工号查找相应的记录,找到后增加删除和修改功能。-9 -附录图书馆管理系统设计源程序清单#i nclude#i ncludevstri ng.h#i nclude#in clude#defi ne STACK_INIT_SIZE 10#defi ne OK 1#defi ne TRUE 1#defi ne ERROR 0struct stude nt int carnum;char len dbook10;stude nt1OOO;struct bookint

6、 book num;char book name20;float bookprice;char bookcreat20;int turefalse;book1000;struct carint carnum;char sex5;char stude ntn ame20;int stude ntclass;car1000;fin dbook()FILE *fp;char book name10;int i;fp=fope n( book.txt,r);printf(请输入你要查找的书名:n);-10 -sca nf(%s,book name);for(i=0;fread(&booki,s

7、izeof(struct book),1,fp)!=0;i+) if(strcmp(book name,booki.book name)=0)if(booki.turefalse=1)printf( 书号书名作者n %d%s%sn ,booki.book nu m,booki.book name,booki.bookcreat);printf(此书现在无人借阅n 按任意键返回n); else printf(这本书已经有人借出 n);fclose(fp);return 0;fclose(fp);return 0;printf(”没有你要查询的书籍!n);fclose(fp);return 0;f

8、in dbook1()FILE *fp;char bookcreat10;int i;fp=fope n( book.txt,r);printf(请输入你要查找的作者名:n);sca nf(%s,bookcreat);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=O;i+)if(strcmp(bookcreat,booki.bookcreat)=0)if(booki.turefalse=1)prin tf(书号 书名 作者 n %d%s%sn ,booki.book nu m,booki.book name,booki.bookcrea

9、t);printf( 此书现在无人借阅n 按任意键返回n);-11 -else printf( 这本书已经有人借出!n);fclose(fp);return 0;fclose(fp);return 0;printf(”没有你要查询的书籍n);fclose(fp);return 0;chabook()char ch5;doprintf( 1:按书名查找n);printf( 2:按作者查找n);printf(” 0:返回 n);printf(请输入 02:n);ch5=getch();switch(ch5)case 1:fi ndbook();getch();break;case 2:fi ndb

10、ook1();getch();break;case 0:break;default:printf(无此操作!n);getch();break;while(ch5!=O);return 0;len dbook()FILE *fp,*fp2;int i,n;int carnum;-12 -printf(请输入借书人的:n 卡号:n);sca nf(%d,&carnum);fp=fope n(car.txt,r);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)if(cari.car num=car num)n=i;fclose(

11、fp);printf(书名:n);scan f(%s,stude ntn .le ndbook);fp=fope n(book.txt,r);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.book name,stude nt n.le ndbook)=0)if(booki.turefalse=0) pri ntf(对不起,此书有人借出,请借其他书n);fclose(fp);getch();return 0;elsefclose(fp);fp=fope n(record.txt,a+);stude

12、 nt n.car num=car num;fwrite(&stude nt n,sizeof(struct stude nt),1,fp); fclose(fp);fp=fope n( book.txt,r);fp2=fope n( bookl.txt,w);for(i=0;fread( &booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.book name,stude nt n.le ndbook)=0)booki.turefalse=0;fwrite(&booki,sizeof(struct book),1

13、,fp2);con ti nue;fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);-13 -fp=fope n(book.txt,w);fp2=fope n(bookl.txt,广);for(i=0;fread( &booki,sizeof(struct book),1,fp2)!=0;i+)fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fclose(fp2);fope n(bookl.txt,w);fclose(fp2);printf

14、( 借书完毕,按任意键返回.n);getch();return 0;prin tf(不存在这样的书,任意键返回.n);fclose(fp);getch();return 0;printf(你的卡号不存在,请申请新卡,按任意键返回.n);fclose(fp);getch();return 0;hua nbook()FILE *fp,*fp2;int i,n;int carnum;char len dbook10;printf(tt(A_A)欢迎进入还书界面(A_A);printf(n请你输入你的n 卡号:n);sca nf(%d,&carnum);fp=fope n(car.txt,r)

15、;-14 -for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)if(cari.car num=car num)n=i;fclose(fp);printf(请输入你要还的书的名字:n);scan f(%s,le ndbook);fp=fope n(record.txt,r);for(i=0;fread(&stude nti,sizeof(struct stude nt),1,fp)!=0;i+)if(strcmp(stude nti.le ndbook,le ndbook)=0)fclose(fp);fp=fope n(reco

16、rd.txt,r);fp2=fope n( bookl.txt,w);for(i=0;fread(&stude nti,sizeof(struct stude nt),1,fp)!=0;i+)if(strcmp(stude nti.le ndbook,le ndbook)=0)con ti nue;fwrite(&stude nti,sizeof(struct stude nt),1,fp2);fclose(fp);fclose(fp2);fp=fope n(record.txt,w);fp2=fope n(bookl.txt,广);for(i=0;fread(&stu

17、de nti,sizeof(struct stude nt),1,fp2)!=0;i+) fwrite(&stude nti,sizeof(struct stude nt),1,fp);fclose(fp);fclose(fp2);fope n(bookl.txt,w);fclose(fp2);fp=fope n( book.txt,r);-15 -fp2=fope n( bookl.txt,w);for(i=0;fread( &booki,sizeof(struct book),1,fp)!=O;i+) if(i=n)booki.turefalse=1;fwrite(&

18、;booki,sizeof(struct book),1,fp2);con ti nue;fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fope n(book.txt,w);fp2=fope n(bookl.txt,广);for(i=0;fread( &booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fclose(fp2);fope n(bookl.t

19、xt,w);fclose(fp2);printf(还书完毕,按任意键返回.n);getch();return 1;printf(你没有借这样的书,任意键返回.n);fclose(fp);getch();return 0;printf( 没这样的卡,和管理员联系,按任意键返回.n); fclose(fp);getch();return 0;len dco un t()-16 -FILE *fp;int i,n=O;fp=fope n(record.txt,r);if(fp=fope n( record.txt,r)=0)printf(文件中没有数据!n);printf(按任意键返回.n);get

20、ch();return(0);for(i=0;fread(&stude nti,sizeof(struct stude nt),1,fp)!=0;i+)prin tf( 卡号 借出的书籍 n);prin tf(%d %s n ,stude nti.car nu m,stude nti .len dbook); n=n+1;fclose(fp);printf( 目前共有本书借出n,n);printf(” 按任意键.n);getch();return n;addcar()FILE *fp;int i=0;fp=fope n(car.txt,a+);prin tf(卡号:n);sca nf(

21、%d, &cari.carnum);prin tf(性别:n);sca nf(%s,cari.sex);prin tf(姓名:n);sca nf(%s,cari.stude ntn ame);prin tf(班级:n);sca nf(%d,&cari.stude ntclass);fwrite(&cari,sizeof(struct car),1,fp); fclose(fp);-17 -printf(”输入完毕,任意键返回.n);getch();delcar()FILE *fp,*fp2;int i;int carnum;char choice;fp=fope n(c

22、ar.txt,r);fp2=fope n( bookl.txt,w);printf( 要删除的卡号(不存在则不作改动):n); sca nf(%d,&carnum);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=O;i+)if(cari.car num !=car num)fwrite(&cari,sizeof(struct car),1,fp2);fclose(fp);fclose(fp2);printf(确认删除?(Y/N)!n);sca nf(%s,&choice);if(choice=y|choice=Y)f

23、p=fope n( car.txt,w);fp2=fope n(bookl.txt,广);for(i=0;fread(&cari,sizeof(struct car),1,fp2)!=0;i+) fwrite(&cari,sizeof(struct car),1,fp);fclose(fp);fclose(fp2);fp2=fope n( bookl.txt,w);fclose(fp2);printf(操作超成功!n 按任意键返回.n);-18 -getch();return 0;elseprintf( 操作已取消!n 按任意键返回.n); getch();return 0;c

24、arco un t()FILE *fp;int i,n=O;fp=fope n(car.txt,r);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)printf(第4 张卡 n,i+1);prin tf(卡号性别姓名班级n);prin tf(ttn);printf(%d%6s%10snn,cari.carnum,cari.sex,cari.stude ntn ame,cari.stude ntclass);n=n+1;fclose(fp);printf( 目前共有个学生。n,n);printf(按任意键返回.n);getch();

25、addbook()FILE *fp;int i=0;char choice=y;fp=fope n( book.txt,a+);while(choice=y|choice=Y)%3d-19 -prin tf(书号:n);sca nf(%d,&booki.book nu m);prin tf(书名:n);sca nf(%s,booki.book name);prin tf(作者:n);sca nf(%s,booki.bookcreat);prin tf(单价:n);sca nf(%f,&booki.bookprice);printf(请你设定书的状态(1 在架/0 不在):n);

26、sca nf(%d,&booki.turefalse);fwrite(&booki,sizeof(struct book),1,fp);printf(是否要输入下本书(y/n)n);sca nf(%s,&choice);fclose(fp);delbook()FILE *fp,*fp2;int i;char book name10,choice;fp=fope n( book.txt,r);fp2=fope n( bookl.txt,w);prin tf(书名:n);sca nf(%s,book name);for(i=0;fread(&booki,sizeof

27、(struct book),1,fp)!=0;i+)if(strcmp(book name,booki.book name)!=0)fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);printf(确认删除(y/n)?n);-20 -sca nf(%s,&choice);if(choice=y|choice=Y)fp=fope n(book.txt,w);fp2=fope n(bookl.txt,广);for(i=0;fread(&booki,sizeof(struct book),1,fp2)

28、!=0;i+) fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fclose(fp2);fp2=fope n( bookl.txt,w);fclose(fp2);printf(按任意键返回.n);getch();return 0;elseprintf(按任意键返回.n);getch();return 0;cha ngebook()FILE *fp,*fp2;char book name10,choice;int i;fp=fope n( book.txt,r);fp2=fope n( bookl.txt,w);prin tf(书名:

29、n);sea nf(%s,book name);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.book name,book name)=0)printf(”你所要修改的书的资料如下,请选择你要修改的内容:n);-21 -prin tf(序号书名作者n);prin tf(%d %s %sn ,booki.book nu m,booki.book name,booki.bookcreat)Jprintf(1:修改书号:n);printf(2:修改书名:n);printf(3:修改作者:n);printf(4:修改单价:);prin tf(请输入 13:);choice=getch();switch(choice)case 1:printf( 新的书号:n);scan f(%d,&booki.book nu m);fwrite(&booki,sizeof(struct book),1,fp2);break;case 2:printf( 新的书名:n);sca nf(%s,book

温馨提示

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

评论

0/150

提交评论