图书管理系统--(c语言).doc
《图书管理系统--(c语言).doc》由会员分享,可在线阅读,更多相关《图书管理系统--(c语言).doc(21页珍藏版)》请在咨信网上搜索。
1、图书管理系统 (c语言) 作者: 日期:2 个人收集整理 勿做商业用途程序设计方法课程设计 问题提出:设计一个图书馆的图书管理,具体要求如下:1录入新采购的图书信息,做成文件book.in,要求有良好的输入界面;2查询各种图书的基本信息,设计出良好的查询界面;3按图书编号进行排序,将排好序的图书信息输出到文件 book。out中。4统计各类图书册数、图书馆的图书总册数。5统计图书的借阅情况.1. 需求分析对于图书馆的管理系统,应该满足以下的用户需求:用户能够增加和删除一些图书。用户根据一些基本信息查询相应的图书,系统可以准确输出所有符合条件的图书信息。用户可以借阅和归还图书馆中的图书。系统可以
2、对图书做出统计,包括图书总数,各类图书数目,图书的借阅情况。2. 设计分析定义图书结构体,其成员包括书名、作者、类型、出版社、价格、是否借阅(整型,1为借出,0为未借)、编号。输入新书时,利用结构体储存书的信息,同时将新书信息以二进制写入book.in文件中,录入结束后,将新书按输入顺序写入book。out中,并且以原来存书的最大编号为基准对新书进行编号,这样可以保证book.out文件存储的图书都是按编号进行排序的。查找图书时,获得所查书目基本信息后,以二进制依次读取文件中的每一本图书信息,并与输入信息相比较,输出符合信息的图书。删除图书时,通过输入的图书编号(编号可通过查找图书获得)查找相
3、应图书,删除相应数据并保存.借阅或归还图书时,通过图书编号(编号可通过查找图书获得)查找相应图书,修改图书的属性(是否借阅)并保存.实现统计功能时,以二进制依次读取文件中的每一本图书信息,设置变量统计图书类型、借阅情况和图书总数,到文件结尾时,输出各个变量的值。3. 系统设计(流程图表示)开始欢迎界面打印主菜单输入选择nn=1是输入新书信息否将新书保存至book.in将book.in中图书按编号保存至book.outn=2是选择查找方式输入查找图书信息否在book.out中能找到相应图书否是输出图书信息出错提示n=3是输入删除图书信息(编号)否是否在book.out中能找到相应图书出错提示删除
4、相应图书否是n=4选择借书或还书操作输入图书信息(编号)否是否在book.out中能找到相应图书出错提示对图书相应属性进行修改n=5是统计book.out中总书数并输出统计各类型书数并输出否统计图书借阅情况并输出是n=0结束4. 程序代码主函数main()int i,a; Struct book standard=a,”a”,000000000,0,0,a,others; FILE fp; if((fp=fopen(book.out,”r))=NULL) if(fp=fopen(book.out”,wb”))=NULL) printf(”wrong!”); exit(0); fwrite(&s
5、tandard,sizeof(struct book),1,fp); fclose(fp); for(i=0;i=14;i+) /*欢迎界面设置*/ clrscr(); gotoxy(18,25i); printf(Welcome to Liberary Management System”); delay(300000000000); sleep(1); gotoxy(18,27i); printf(”Press any key to continue); getch(); clrscr();while(a!=48) /打印主菜单*/ gotoxy(13,5); printf(*”); go
6、toxy(25,8); printf(1:Add new books”); gotoxy(25,10); printf(2:Search books”); gotoxy(25,12); printf(3:Delete books”); gotoxy(25,14); printf(”4:Borrow or return books”); gotoxy(25,16); printf(5:Total numbers”); gotoxy(25,18); printf(”0:Exit); gotoxy(13,21); printf(”*); a=getch() /*调用不同函数实现不同功能*/if(a=
7、49) input_books();if(a=50) search_books();if(a=51) delete_book();if(a=53) total_numbers();if(a=52) br_books();clrscr();函数addone和minusone对图书编号进行操作void addone(char ss) /将编号增加一个/int i;if(ss8=9)ss8=0; ss7=ss7+1; else ss8=ss8+1; for(i=7;i=0;i-) if(ssi=58) ssi=0;ssi1+; void minusone(char ss) /图书编号减一*/int
8、i;if(ss8=0)ss8=9; ss7=ss71; else ss8=ss8-1; for(i=7;i=0;i) if(ssi=47) ssi=9;ssi1; 函数save_books()将book。in的数据写入book.out中void save_books() /*保存图书*/FILE *fp1,*fp2;struct book oldbook,newbook;char ssl10;int n,i;if((fp2=fopen(book.out”,rb+))=NULL)printf(wrong!);exit(0);if(fp1=fopen(”book.in”,”rb”))=NULL)p
9、rintf(”wrong!”);exit(0);fseek(fp2,100L,2);fread(oldbook,sizeof(struct book),1,fp2); /获得目前图书最大编号/strcpy(ssl,oldbook.number);fclose(fp2);fseek(fp1,1L,2);fscanf(fp1,”%d”,&n);rewind(fp1);if(fp2=fopen(”book。out”,ab”)=NULL)printf(”wrong!”);exit(0);for(i=1;i=n;i+)fread(newbook,sizeof(struct book),1,fp1);ad
10、done(ssl);strcpy(newbook。number,ssl); /为新图书编号*/fwrite(newbook,sizeof(struct book),1,fp2);fclose(fp1);fclose(fp2);函数input_book将新书的信息读入book.in中void input_books() /从键盘输入图书函数/FILE fp;struct book newbook;int a=121,n=0;if(fp=fopen(book。in,wb”))=NULL) printf(”wrong!); exit(0); while(a=121)clrscr(); n+; pri
11、ntf(New book %d:n,n); printf(”Name:”); scanf(”%s,newbook.name); printf(”Author:”); scanf(s,newbook.author); printf(Price:); scanf(f”,&newbook。price); printf(”Type:”); scanf(s,newbook.type); printf(Press:); scanf(%s”,newbook.press); newbook.isborrowed=0; strcpy(newbook。number,000000000”); fwrite(&new
12、book,sizeof(struct book),1,fp); /将图书保存到book.in中/ printf(”continue ? (y/n)”); a=getch(); clrscr(); fprintf(fp,d,n); printf(Successfully saved!nPress any key to back”); fclose(fp); save_books(); getch();函数delete_book实现对图书的删除操作void delete_book() /*删除图书函数/long int totalbook,i;int done=0;char a=y,ss10;FI
13、LE *fp1,*fp2;struct book sbook;clrscr();if((fp1=fopen(”book。out”,”rb”))=NULL)printf(”wrong!);exit(0);if(fp2=fopen(”book1。out”,wb”))=NULL)printf(wrong!); exit(0); fseek(fp1,-100L,2);fread(&sbook,sizeof(struct book),1,fp1);totalbook=atol(sbook.number); /*获得图书数目*/rewind(fp1);while(a=121)clrscr();printf
14、(Please input the number of the book:);scanf(”%s,ss);clrscr();fread(&sbook,sizeof(struct book),1,fp1);fwrite(sbook,sizeof(struct book),1,fp2);for(i=1;i=totalbook;i+=1)fread(&sbook,sizeof(struct book),1,fp1); /删除操作*/ if(strcmp(sbook。number,ss)=0) /*将删除过相应图书的数据写入 book1。out*/ done=1; printf(The informa
15、tion of the book:n); printf(”Name:%sn,sbook。name); printf(Author:%sn”,sbook。author); printf(Number:sn”,sbook。number); printf(Price:%-9。2fn”,sbook.price); printf(Press:%sn”,sbook。press); printf(”Are you sure to delete the book?(y/n) ; a=getch(); if(a!=121) break; else if(done=0) fwrite(sbook,sizeof(s
16、truct book),1,fp2); else minusone(sbook.number);fwrite(&sbook,sizeof(struct book),1,fp2);fclose(fp1);fclose(fp2);if(done=0) printf(”Wrong number!);if(done=1 & a=121) exchange(i,totalbook); clrscr(); printf(Successfully deleted!n);getch();clrscr();printf(Continue ? (y/n)”);a=getch();remove(”book1.out
17、”);void exchange(long int i,long int totalbook) /*将book1.out的数据写入book。out中*/FILE *fp1,*fp2;struct book sbook;if(fp1=fopen(book1。out,rb”)=NULL)printf(”wrong!”);exit(0);fp2=fopen(”book。out,”wb);for(i=1;i=totalbook;i+=1)fread(sbook,sizeof(struct book),1,fp1); fwrite(sbook,sizeof(struct book),1,fp2); fc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 语言
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。