分享
分享赚钱 收藏 举报 版权申诉 / 25

类型图书信息管理系统.doc

  • 上传人:hwpkd79526
  • 文档编号:6399870
  • 上传时间:2019-04-11
  • 格式:DOC
  • 页数:25
  • 大小:401.38KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    图书信息管理系统.doc
    资源描述:

    1、淮北师范大学程序设计 课程设计图书信息管理系统学 院 计算机科学与技术 专 业 计算机科学与技术(非师范) 学 号 20111202029 学 生 姓 名 娄小闯 指导教师姓名 施汉琴 2012 年 9 月 19 日01、设计目的与内容课程设计目的:C 语言课程设计是计算机各专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,立分析和解决实际问题的机会。独进一步巩固和复习 C 程序设计的基础知识。培养学生结构化程序、模块化程序设计的方法和能力。提高学生调试程序的技巧和软件设计的能力。提高学生分析问题、解决问题以及综合利用 C 语言进行程序设计的能力。了解

    2、软件的编制过程二、算法的基本思想。课程设计内容:1.确定能记录图书和读者信息的数据结构,图书至少要有书号、书名、作者名、出版社、分类号、可借数等信息,读者至少有读者号、读者名、可借图书数、借书日期、还书日期等信息。设计一个简单的图书信息管理系统。2.程序应具有以下基本功能: 添加:添加记录时,建立图书数据库文件及按书号的索引文件和多重表文件,包括书名、作者、出版社等索引文件,方便后续以书号、书名、作者及出版社的查询。 查询:采用二分查找对书号索引文件查找书号记录;采用简单查找分别对书名索引文件、作者索引文件和出版社索引文件查找。借书:输入读者号、书号、借阅日期进行借书处理。还书:输入读者号、书

    3、号、还书日期进行还书处理。系统结构:图书信息管理系统1数据结构的定义:struct readerint readernum; /读者编号char readername20; /读者姓名char memo50; /读者备注;三、主要功能模块流程图读者查询输入要查询读者号是否存在输出信息是否继续查找结束是否否是图书信息管理 读者信息管理 借还书管理查询图书 增加图书 修改图书 删除图书 查询读者 增加读者 修改读者 删除读者借书 还书借还查询2四、系统测试程序运行实例如下:1运行界面(菜单):2选择 2,运行界面如下:(1).选择 4,运行界面如下:3五、结论通过最近两周的课程设计,我对 C 语言

    4、有了一定的回顾和复习,终于体会到 C语言的实际用武之地,但是这还远远不够。本程序能够实现小型图书信息管理(包括图书增加、读者信息增加等功能) ,但难免存在不足之处,如:A,编写执行输出“查找读者编号不存在!”时,只能查找第 1 次录入的读者信息,我在源程序中用注释标出。(由于存在此漏洞,本人已注释掉此输出操作);B,删除读者信息时只能按录入的读者信息从后往前删除,如此的话就不能从中间删除读者数据。C,图书修改以及读者修改功能尚未完善,不能使用。可以改进的功能,有:A,菜单界面的美化,给使用者以温馨的视觉感受;B,图书查找,增加书名、作者以及出版社查找,让使用者更加方便图书的查找;等。六、源程序

    5、及系统文件使用说明/借书卡号即是读者编号,即为借阅号。/删除信息操作时,注意,直接按 Enter 键即可删除。/删除读者信息时只能按录入的读者信息从后往前删除。#include 4#include #include #include #include struct book /*定义书的类型*/ int booknum; /书号char bookname20; /书名char bookauthor20; /作者char press50; /出版社float price; /书价int count; /剩余本数; struct reader/读者类型int readernum; /读者编号cha

    6、r readername20; /读者姓名char memo50; /读者备注;struct borrowreturn/借还书类型int readernum;/读者编号char readername20; /读者姓名int booknum; /书号char bookname20; /书名char bookauthor10; /作者char borr; /借或还,1 表示借,0 表示还char date11; /借还日期int adminnum; /管理员号;/*图书:增加查询修改删除*void bookadd()/图书增加 FILE *fp; struct book book1;int i=0

    7、; char choice=y; fp=fopen(“book.dat“,“ab+“); while(choice=y|choice=Y) while(1)printf(“请你输入第%d 本书的书号(0):“,i+1); scanf(“%d“,5fflush(stdin);if(book1.booknum0)break;printf(“请你输入书名:“); scanf(“%s“,book1.bookname); fflush(stdin);printf(“请你输入书的作者:“); scanf(“%s“,book1.bookauthor); fflush(stdin);printf(“请你输入书

    8、的出版社:“); scanf(“%s“,book1.press); fflush(stdin);printf(“请你输入书的价格:“); scanf(“%f“,fflush(stdin);printf(“请你输入书的剩余本数:“); scanf(“%d“, fflush(stdin);fwrite( fflush(stdin);printf(“是否要输入下本书(y/n)?:“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)i+; fclose(fp); void booksearch()/图书查询 FILE *fp; struct book b

    9、ook1;int num;char choice=y; fp=fopen(“book.dat“,“rb“); while(choice=y|choice=Y) while(1)printf(“请你输入查询的书号(0):“); scanf(“%d“,6fflush(stdin);if(num0)break;while(!feof(fp)fread( if(book1.booknum=num)printf(“你查找的书的信息为:n“); printf(“书号:“); printf(“%dn“,book1.booknum); printf(“书名:“); printf(“%sn“,book1.boo

    10、kname); printf(“作者:“); printf(“%sn“,book1.bookauthor); printf(“出版社:“); printf(“%sn“,book1.press); printf(“价格:“); printf(“%5.1fn“,book1.price); printf(“剩余本数:“); printf(“%dn“,book1.count); break;printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp);/i=0; fclose(fp); void b

    11、ookupdate()/图书修改,功能不完善FILE *fp; struct book book1;int num; int i=0;char choice=y; fp=fopen(“book.dat“,“rb+“); while(choice=y|choice=Y) 7while(1)printf(“请你输入修改的书号(0):“); scanf(“%d“,fflush(stdin);if(num0)break;while(!feof(fp)i=0;/fseek(fp,i*sizeof(struct book),0);fread( if(book1.booknum=num printf(“书号

    12、:“); printf(“%dn“,book1.booknum); printf(“书名:“); printf(“%sn“,book1.bookname); printf(“作者:“); printf(“%sn“,book1.bookauthor); printf(“出版社:“); printf(“%sn“,book1.press); printf(“价格:“); printf(“%5.1fn“,book1.price); printf(“剩余本数:“); printf(“%dn“,book1.count); i+;printf(“你要修改的书的信息为:n“); printf(“请你输入新的书

    13、号:“);fflush(stdin);scanf(“%d“, fflush(stdin);printf(“请你输入新的书名:“); scanf(“%s“,book1.bookname); fflush(stdin);printf(“请你输入新的作者:“); scanf(“%s“,book1.bookauthor); fflush(stdin);printf(“请你输入新的出版社:“); scanf(“%s“,book1.press); fflush(stdin);printf(“请你输入新的价格:“); 8scanf(“%f“, fflush(stdin);printf(“请你输入新剩余本数:

    14、“); scanf(“%d“, fflush(stdin);fseek(fp,-(long)sizeof(struct book),1);fwrite(fseek(fp,(long)sizeof(struct book),1);fread( fflush(stdin);printf(“是否要继续修改吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp);i=0; fclose(fp); void bookdelete()/图书删除FILE *fp,*fp1; struct book book1;int num;in

    15、t i=0;fp=fopen(“book.dat“,“rb“); fp1=fopen(“bookbak.dat“,“wb“); while(1)printf(“请你输入删除的书号(0):“); scanf(“%d“,fflush(stdin);if(num0)break;while(!feof(fp)i=0;fread( if(book1.booknum=num printf(“书号:“); printf(“%dn“,book1.booknum); printf(“书名:“); printf(“%sn“,book1.bookname); printf(“作者:“); printf(“%sn“,

    16、book1.bookauthor); printf(“出版社:“); printf(“%sn“,book1.press); printf(“价格:“); printf(“%5.1fn“,book1.price); printf(“剩余本数:“); printf(“%dn“,book1.count); i+;fseek(fp,(long)sizeof(struct book),1); /文件从当前位置后移sizeof(struct book)个长度break;elsefwrite(fclose(fp);fclose(fp1);fp=fopen(“book.dat“,“wb“); fp1=fope

    17、n(“bookbak.dat“,“rb“);while(!feof(fp1)fread( fwrite(fclose(fp);fclose(fp1);getche();/暂停一下,否则返回菜单太快!fflush(stdin);/*结束图书:增加查询修改删除*/*读者:增加查询修改删除*void readeradd()/读者增加 FILE *fp; struct reader reader1;10int i=0; char choice=y; fp=fopen(“reader.dat“,“wb+“); while(choice=y|choice=Y) while(1)printf(“请你输入第%

    18、d 读者号(0):“,i+1); scanf(“%d“, fflush(stdin);if(reader1.readernum0)break;printf(“请你输入读者姓名:“); scanf(“%s“,reader1.readername); fflush(stdin);printf(“请你输入读者的备注:“); scanf(“%s“,reader1.memo); fflush(stdin);fwrite( fflush(stdin);printf(“是否要输入下一位读者信息(y/n)?:“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)i

    19、+; fclose(fp); void readersearch()/读者查询 FILE *fp; struct reader reader1;int num;char choice=y; fp=fopen(“reader.dat“,“rb“); while(choice=y|choice=Y) while(1)printf(“请你输入查询的读者编号(0):“); 11scanf(“%d“,fflush(stdin);if(num0)break;while(!feof(fp)fread( if(reader1.readernum=num)printf(“你查找的读者的信息为:n“); prin

    20、tf(“读者编号:“); printf(“%dn“,reader1.readernum); printf(“读者姓名:“); printf(“%sn“,reader1.readername); printf(“读者备注:“); printf(“%sn“,reader1.memo); break;printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp);/i=0; fclose(fp); void readerupdate()/读者修改FILE *fp; struct reader rea

    21、der1;int num;int i=0;char choice=y; fp=fopen(“reader.dat“,“rb+“); while(choice=y|choice=Y) while(1)printf(“请你输入修改的读者编号(0):“); scanf(“%d“,if(num0) break;fflush(stdin);12while(!feof(fp)i=0;fread( if(reader1.readernum=num printf(“读者编号:“); printf(“%dn“,reader1.readernum); printf(“姓名:“); printf(“%sn“,rea

    22、der1.readername); printf(“备注:“); printf(“%sn“,reader1.memo); i+;printf(“你要修改的读者信息为:n“); printf(“请你输入新的读者编号(0):“); scanf(“%d“, fflush(stdin);printf(“请你输入新的读者姓名:“); scanf(“%s“,reader1.readername); fflush(stdin);printf(“请你输入新的读者备注:“); scanf(“%s“,reader1.memo); fflush(stdin);fseek(fp,-(long)sizeof(struc

    23、t reader),1);fwrite(fseek(fp,(long)sizeof(struct reader),1);fflush(stdin);printf(“是否要继续修改读者信息吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp); fclose(fp); void readerdelete()/读者删除FILE *fp,*fp1; 13struct reader reader1;int num;int i=0;fp=fopen(“reader.dat“,“rb“); fp1=fopen(“readerb

    24、ak.dat“,“wb“); while(1)printf(“请你输入删除的读者编号(0):“); scanf(“%d“,fflush(stdin);if(num0)break;while(!feof(fp)i=0;fread( if(reader1.readernum=num printf(“读者编号:“); printf(“%dn“,reader1.readernum); printf(“借书卡人姓名:“); printf(“%sn“,reader1.readername); printf(“借书卡备注:“);printf(“%sn“,reader1.memo); i+;fseek(fp,

    25、(long)sizeof(struct reader),1); /把文件指针后移sizeof(struct reader)个长度break;elsefwrite(fclose(fp);fclose(fp1);fp=fopen(“reader.dat“,“wb“); fp1=fopen(“readerbak.dat“,“rb“);for(i=0;fread(i+) / fread( fwrite(fclose(fp);fclose(fp1);14getche();/暂停一下,否则返回菜单太快!fflush(stdin);/*结束读者操作:增加查询修改 删除*/*借还书*void bookborr

    26、ow()/借书FILE *fp,*fp1,*fp2; struct reader reader1;struct book book1;struct borrowreturn borrowreturn1;int num=0,num1=0;int i=0;char choice=y,choice1=n,choice2=n;/*choice 表示是否继续查找读者编号,choice1 是否放弃查询读者编号或书号,choice2 表示是否真的借书*/fp=fopen(“reader.dat“,“rb“); fp1=fopen(“book.dat“,“rb+“); fp2=fopen(“borrowret

    27、urn1.dat“,“a+“);/*查询借书卡号*while(choice=y|choice=Y) printf(“请你输入借阅者的借书卡号(0):“); scanf(“%d“,fflush(stdin);while(!feof(fp)fread( if(reader1.readernum=num)printf(“你查找的读者的信息为(0):n“); printf(“读者编号:“); printf(“%dn“,reader1.readernum); printf(“读者姓名:“); printf(“%sn“,reader1.readername); printf(“借书卡备注:“); prin

    28、tf(“%sn“,reader1.memo); break;if(num=0)printf(“没有找到你找的读者(0)!“);printf(“放弃借书吗(y/n):“); scanf(“%c“,fflush(stdin);15if(choice1=y|choice1=Y)exit(0);printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp);/i=0; fclose(fp);/*查询借阅书号*choice=y;while(choice=y|choice=Y) printf(“请你输入借

    29、阅的书号(0):“); scanf(“%d“,fflush(stdin);while(!feof(fp1)fread( if(book1.booknum=num1)printf(“你要借阅的书的信息为:n“); printf(“书号:“); printf(“%dn“,book1.booknum); printf(“书名:“); printf(“%sn“,book1.bookname); printf(“作者:“); printf(“%sn“,book1.bookauthor); printf(“出版社:“); printf(“%sn“,book1.press); printf(“价格:“);

    30、printf(“%5.1fn“,book1.price); printf(“剩余本数:“); printf(“%dn“,book1.count); break;if(num1=0|book1.count=0)16printf(“没有找到你找的的书号或此书已借阅完!“);printf(“放弃借书吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice1=y|choice1=Y)exit(0);printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp1);/i

    31、=0; /*保存借阅信息*printf(“真的借书吗(y/n):“); scanf(“%c“,fflush(stdin);if(!(choice2=y|choice2=Y)exit(0);elseif(!(reader1.readernum!=0 /reader1.readernum 写入的读者编号, book1.booknum 写入的借书书号book1.count-;/修改所借书的剩余本数fseek(fp1,-(long)sizeof(struct book),1);/定位文件内部指针到修改的信息位置fwrite(/修改所借书的剩余本数borrowreturn1.readernum=read

    32、er1.readernum ;strcpy(borrowreturn1.readername,reader1.readername) ;borrowreturn1.booknum=book1.booknum ;strcpy(borrowreturn1.bookname,book1.bookname) ;strcpy(borrowreturn1.bookauthor,book1.bookauthor) ;borrowreturn1.borr=1;printf(“请输入管理员号:“);17scanf(“%d“,fflush(stdin);printf(“请输入借书日期(格式要求:2009-02-0

    33、6):“);scanf(“%s“,fflush(stdin);fwrite(fclose(fp1);fclose(fp2);void bookreturn()/还书FILE *fp,*fp1,*fp2; struct reader reader1;struct book book1;struct borrowreturn borrowreturn1;int num=0,num1=0;int i=0;char choice=y,choice1=n,choice2=n;/*choice 表示是否继续查找读者编号,choice1 是否放弃查询读者编号或书号,choice2 表示是否真的还书*/fp=

    34、fopen(“reader.dat“,“rb“); fp1=fopen(“book.dat“,“rb+“); fp2=fopen(“borrowreturn1.dat“,“ab+“);/*查询还书卡号*while(choice=y|choice=Y) printf(“请你输入还书者的读者编号(0):“); scanf(“%d“,fflush(stdin);while(!feof(fp)fread( if(reader1.readernum=num)printf(“你查找的还书者的读者信息为:n“); printf(“读者编号:“); printf(“%dn“,reader1.readernum

    35、); printf(“读者姓名:“); printf(“%sn“,reader1.readername); printf(“读者备注:“); printf(“%sn“,reader1.memo); break;18if(num=0)printf(“没有找到你找的读者编号!“);printf(“放弃还书吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice1=y|choice1=Y)exit(0);printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp)

    36、;/i=0; fclose(fp);/*查询还书书号*choice=y;while(choice=y|choice=Y) printf(“请你输入还书的书号(0):“); scanf(“%d“,fflush(stdin);while(!feof(fp1)fread( if(book1.booknum=num1)printf(“你要还的书的信息为:n“); printf(“书号:“); printf(“%dn“,book1.booknum); printf(“书名:“); printf(“%sn“,book1.bookname); printf(“作者:“); printf(“%sn“,book

    37、1.bookauthor); printf(“出版社:“); printf(“%sn“,book1.press); printf(“价格:“); 19printf(“%5.1fn“,book1.price); printf(“剩余本数:“); printf(“%dn“,book1.count); break;if(num1=0)printf(“没有找到你找的的书号!“);printf(“放弃还书吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice1=y|choice1=Y)exit(0);printf(“是否要继续查找吗(y/n):“); scanf(“%

    38、c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp1);/i=0; /*保存还书信息*printf(“真的还书吗(y/n):“); scanf(“%c“,fflush(stdin);if(!(choice2=y|choice2=Y)exit(0);elseif(!(reader1.readernum!=0 /card1.readernum 写入的还书人的读者编号/book1.booknum 写入的借书书号book1.count+;/修改所还书的剩余本数fseek(fp1,-(long)sizeof(struct book),1);/定位文件内部指针到

    39、修改的信息位置fwrite(/修改所还书的剩余本数20borrowreturn1.readernum=reader1.readernum ;strcpy(borrowreturn1.readername,reader1.readername) ;borrowreturn1.booknum=book1.booknum ;strcpy(borrowreturn1.bookname,book1.bookname) ;strcpy(borrowreturn1.bookauthor,book1.bookauthor) ;borrowreturn1.borr=0;/0 表示还书printf(“请输入管理员

    40、号:“);scanf(“%d“,fflush(stdin);printf(“请输入还书日期(格式要求:2009-02-06):“);scanf(“%s“,fflush(stdin);fwrite(fclose(fp1);fclose(fp2);void bookborr()/借还书查询FILE *fp; struct borrowreturn borrowreturn1;int num;char choice=y; fp=fopen(“borrowreturn1.dat“,“rb“); while(choice=y|choice=Y) printf(“请你输入查询的读者编号(0):“); sc

    41、anf(“%d“,fflush(stdin);printf(“你查询的借还书信息为:n“); printf(“ 卡号 读者姓名 书号 书名 作者 借/还 借/还日期n“); while(!feof(fp)fread( while(!feof(fp)if(borrowreturn1.readernum=num)printf(“%6d “,borrowreturn1.readernum); printf(“%10s “,borrowreturn1.readername); 21printf(“%6d “,borrowreturn1.booknum); printf(“%10s“,borrowret

    42、urn1.bookname); printf(“%10s “,borrowreturn1.bookauthor);printf(“%6s “,(borrowreturn1.borr=1)?“借“:“还“); printf(“%13sn “,borrowreturn1.date); fread( printf(“是否要继续查找吗(y/n):“); scanf(“%c“,fflush(stdin);if(choice=y|choice=Y)rewind(fp);/i=0; fclose(fp); /*结束借还书*void main() char ch1,ch2,ch3,ch4; do printf

    43、(“*欢迎进入图书馆管理系统*n“); printf(“* 请你选择操作类型: *n“); printf(“* 1: *n“); printf(“* 2: *n“); printf(“* 3: *n“); printf(“* 0: *n“); printf(“*n“); printf(“请选择 0-3:“); scanf(“%c“, 22getchar();switch(ch1) case 1:do printf(“-欢迎进入图书管理模块!-n“); printf(“ 1:n“); printf(“ 2:n“); printf(“ 3:n“); printf(“ 4:n“); printf(“

    44、 0:n“); printf(“-n“); printf(“请输入 0-4:“); scanf(“%c“, getchar();switch(ch2) case 1:bookadd(); break; case 2:bookdelete();break; case 3:bookupdate();break; case 4:booksearch();break; case 0:break;while(ch2!=0);break;case 2:do /*clrscr()*/; printf(“-欢迎进入读者管理模块!-n“); printf(“ 1:n“); printf(“ 2:n“); printf(“ 3:n“); printf(“ 4:n“); printf(“ 0:n“); printf(“-n“); printf(“请输入 0-4:“); scanf(“%c“, getchar();switch(ch3) case 1:readeradd(); break; case 2:readerdelete();break; case 3:readerupdate();break; 23case 4:readersearc

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:图书信息管理系统.doc
    链接地址:https://www.docduoduo.com/p-6399870.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开