C语言课程设计图书管理系统_第1页
C语言课程设计图书管理系统_第2页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

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

2、型,可用不同的数字代表借还状态。借书和还书手续要注意修改结构题的成员变量存在状态的值。总体设计始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程2、各功能模块设计(2)查阅模块说明输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运 行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。流程(3)借阅模块说明查阅完图书记录后, 用户要借阅图书, 系统要在操作过程中提示用户输入流程,根据用户所输入的 指令,帮助其完成借阅。流程(4)管理模块说明管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中

3、重点的操作是图书的管理,为其中的1 1 至 4 4 项 (分别是增加图书、 删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。职工管理系统主要有增加图 书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号 统计四个模块,用于管理学生登录信息。流程附录#i nclude#i nclude#i nclude#in clude#defi ne STACK_INIT_SIZE 10#defi ne OK 1#defi ne TRUE 1欢迎进入管理系统图书馆管理系统设计源程序清单#defi ne ERROR 0s

4、truct stude nt int carnum;char len dbook10;stude nt1OOO;struct bookint 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;findbook()FILE *fp; char bookname10; int i;fp=fopen(book.txt,r);print

5、f( 请输入你要查找的书名 :n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),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); else printf( 这本书已经有人借出 n);fclose(fp);retu

6、rn 0; fclose(fp);return 0;printf( 没有你要查询的书籍 !n);fclose(fp);return 0;findbook1()FILE *fp;char bookcreat10;int i;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)if(booki.turefalse=1)printf(

7、 书 号 书 名 作 者 n %d %s %sn,booki.booknum,booki.bookname,booki.bookcreat);printf( 此书现在无人借阅 n 按任意键返回 n);else printf( 这本书已经有人借出 !n); fclose(fp); return0;fclose(fp);return 0;printf( 没有你要查询的书籍fclose(fp);return 0;ichabook()char ch5; doprintf( 1:printf( 2:printf( 0:printf( 请输ch5=getch();switch(ch5)按书名查找 n);按

8、作者查找 n);返回 n);补入 o2:n);case 1:findbook();getch();break;case 2:findbook1();getch();break;case 0:break;default:printf( 无此操作 !n);getch();break; while(ch5!=0);return 0;lendbook()FILE *fp,*fp2;int i,n;int carnum;printf(请 输 入 借 书 人 的:n卡 号:n);scanf(%d,&carnum);fp=fopen(car.txt,r);for(i=0;fread(&car

9、i,sizeof(struct car),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(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)if(booki.turefalse=0) printf( 对不起, 此书有人借出,请借其他书 n);fclose(fp);g

10、etch();return 0;elsefclose(fp);fp=fopen(record.txt,a+);studentn.carnum=carnum;fwrite(&studentn,sizeof(struct student),1,fp);fclose(fp);fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,studentn.lendbook)=0)booki.turefals

11、e=0;fwrite(&booki,sizeof(struct book),1,fp2);continue;fwrite(&booki,sizeof(struct book),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(struct book),1,fp);fclose(fp);fclose(fp2);fopen(

12、bookl.txt,w);fclose(fp2);printf( 借书完毕,按任意键返回 .n);getch();return 0;printf( 不存在这样的书,任意键返回 .n); fclose(fp);getch();return 0;printf( 你的卡号不存在,请申请新卡 , 按任意键返回 .n);fclose(fp);getch();return 0;huanbook()FILE *fp,*fp2;int i,n;int carnum;char lendbook10;printf(tt(U欢迎进入还书界面(A_A);printf(n请你输入你的n 卡号:n);scanf(%d,&

13、amp;carnum);fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(struct car),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)fclos

14、e(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(struct student),1,fp2);fclose(fp);fclose(fp2);fp=fopen(record.txt,w); fp2=fopen(bookl.txt,r);for(i=0;fread(

15、&studenti,sizeof(structstudent),1,fp2)!=0;i+) fwrite(&studenti,sizeof(struct student),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(struct book),1,fp)!=0;i+)if(i=n)booki.turefalse=1; fwrite(&booki,

16、sizeof(structbook),1,fp2);continue; fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+)fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fclose(fp2);fopen(bookl.txt,w);fclose(

17、fp2);printf( 还书完毕,按任意键返回 .n);getch();return 1;printf( 你没有借这样的书,任意键返回 .n); fclose(fp);getch();return 0;printf( 没这样的卡,和管理员联系 , 按任意键返回 .n);fclose(fp);getch();return 0;lendcount()FILE *fp;int i,n=0;fp=fopen(record.txt,r); if(fp=fopen(record.txt,r)=0)printf( 文件中没有数据 !n);printf( 按任意键返回 .n);getch();return(

18、0);for(i=0;fread(&studenti,sizeof(structstudent),1,fp)!=0;i+)printf( 卡号 借出的书籍 n);printf(%d %s n,studenti.carnum,studenti.lendbook);n=n+1;fclose(fp);printf( 目前共有处书借出n,n);printf(按任意键 .n);getch();return n;addcar()FILE *fp;inti=0;fp=fopen(car.txt,a+);printf( 卡 号 :n);scanf(%d,&cari.carnum); prin

19、tf(性别:n);scanf(%s,cari.sex);prin tf(姓名:n);scanf(%s,cari.studentname); printf( 班级 :n);scanf(%d,&cari.studentclass);fwrite(&cari,sizeof(struct car),1,fp); fclose(fp);printf( 输入完毕,任意键返回 .n); getch();delcar()FILE *fp,*fp2;int i;int carnum; char choice; fp=fopen(car.txt,r);fp2=fopen(bookl.txt,w);

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

21、bookl.txt,r);for(i=0;fread(&cari,sizeof(struct car),1,fp2)!=0;i+) fwrite(&cari,sizeof(struct car),1,fp); fclose(fp);fclose(fp2); fp2=fopen(bookl.txt,w);fclose(fp2);printf( 操作超成功 !n 按任意键返回 .n); getch();return 0;elseprintf( 操作已取消 !n 按任意键返回 .n);getch();return 0;carcount()FILE *fp;int i,n=0;fp=f

22、open(car.txt,r);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)printf(第4 张卡 n,i+1);printf(卡号性别姓名 班级n);printf(ttn);printf(%d%6s%10snn,cari.carnum,cari.sex,cari.studentname,cari.studentclass);n=n+1;fclose(fp);printf(目前共有并学生。n,n);printf( 按任意键返回 .n);getch();addbook()FILE *fp;int i=0;char choice=

23、y;fp=fopen(book.txt,a+);while(choice=y|choice=Y)prin tf(书号:n);%3dscanf(%d,&booki.booknum);prin tf(书名:n);scanf(%s,booki.bookname);prin tf(作者:n);scanf(%s,booki.bookcreat);prin tf(单价:n);scanf(%f,&booki.bookprice);printf(请你设定书的状态 (1 在架/0 不在 ):n);scanf(%d,&booki.turefalse);fwrite(&booki,s

24、izeof(struct book),1,fp); printf( 是否要输入下本书 (y/n)n); scanf(%s,&choice);fclose(fp);delbook()FILE *fp,*fp2;int i;char bookname10,choice; fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w); printf( 书名 :n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(bookname,booki.b

25、ookname)!=0) fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);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(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp);fclos

26、e(fp);fclose(fp2);fp2=fopen(bookl.txt,w);fclose(fp2);printf(按任意键返回 .n);getch();return 0;elseprintf( 按任意键返回 .n);getch();return 0;changebook()FILE *fp,*fp2;char bookname10,choice;int i;fp=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(书名 :n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct

27、 book),1,fp)!=0;i+)if(strcmp(booki.bookname,bookname)=0)printf( 你所要修改的书的资料如下,请选择你要修改的内容 :n); printf( 序号 书名 作者 n);printf(%d %s%sn,booki.booknum,booki.bookname,booki.bookcreat)Jprintf(1:修改书号 :n);printf(2:修改书名 :n);printf(3:修改作者 :n);printf(4:修改单价 :);prin tf(请输入 13:);choice=getch();switch(choice)case 1:p

28、rintf( 新的书号 :n);scanf(%d,&booki.booknum);fwrite(&booki,sizeof(struct book),1,fp2);break;case 2:printf( 新的书名 :n);scanf(%s,booki.bookname);fwrite(&booki,sizeof(struct book),1,fp2);break;case 3:printf( 新的作者 :n);scanf(%s,booki.bookcreat);fwrite(&booki,sizeof(struct book),1,fp2);break;cas

29、e 4:printf( 新的单价 :);scanf(%f,booki.bookprice);fwrite(&booki,sizeof(struct book),1,fp2);default:printf( 没有这样的操作 !);break;continue;fwrite(&booki,sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fopen(book.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+)fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fp2=fopen(bookl.txt,w);fclose(fp2);printf( 按任意键返回 .n);getchar()

温馨提示

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

评论

0/150

提交评论