C-图书管理程序(共20页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C-图书管理程序(共20页).doc》由会员分享,可在线阅读,更多相关《C-图书管理程序(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上题目:图书登记管理程序需求分析:一: 设计一个图书登记管理程序,其功能描述如下:1、管理功能:1.1录入某图书的信息(图书信息内容包括:ISBN号、书名、作者、出版社、出版日期、价格),即为添加该图书信息1.2给定图书ISBN编号,显示该图书信息1.2给定图书ISBN编号,修改该图书信息1.3给定图书ISBN编号,删除该图书信息2、检索功能:2.1给定某个字符串(关键字),查找并显示所有书名中包括该字符串的图书的信息2.2给定出版社名称,查找并显示该出版社的所有图书的信息2.3给定图书ISBN号,查找并显示该图书信息3、统计功能:3.1统计已登记的图书数量二、函数描述
2、1、addbook()/添加图书信息 FILE *fp; int i=0; char choice=y; fp=fopen(book.txt,a+); while(choice=y|choice=Y) p=(struct book*)malloc(sizeof(struct book); printf(请你输入第%d本书的ISBN编号n,+i); scanf(%s,p-bookISBN); printf(请你输入书名n); scanf(%s,p-bookname); printf(请你输入书的作者n); scanf(%s,p-bookauthor); printf(请你输入出版社名称n); s
3、canf(%s,p-bookpublisher); printf(请你输入出版日期n); scanf(%s,p-bookdate); printf(请你输入书的价格n); scanf(%s,p-bookprice); p-state=1; fwrite(p,sizeof(struct book),1,fp); printf(是否要输入下本书(Y/N)n); scanf(%s,&choice); fclose(fp); 2、delbook()/删除图书信息void delbook() /删除图书信息 FILE *fp,*fp2; int i; char bookISBN20,choice; fp
4、=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(请输入你要删除的图书ISBN号n); printf(如果你输入的图书ISBN号存在,系统自动删除该信息!如果不存在,系统不做任何改动n); scanf(%s,bookISBN); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookISBN,booki.bookISBN)!=0) fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2);
5、 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); fclose(fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(删除完毕
6、,按任意键返回n); getch(); return; else printf(按任意键返回n); getch(); return; 3、changebook()/修改图书信息 FILE *fp,*fp2; char bookISBN20,choice; int i; fp=fopen(book.txt,r+); fp2=fopen(bookl.txt,w); p=(struct book*)malloc(sizeof(struct book); printf(请你输入要修改的图书ISBN编号: ); scanf(%s,bookISBN); for(i=0;fread(p,sizeof(str
7、uct book),1,fp)!=0;i+) if(strcmp(p-bookISBN,bookISBN)!=0) fwrite(p,sizeof(struct book),1,fp2); else printf(你所要修改的书的资料如下,请选择你要修改的内容n); printf(ISBN号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%sn,booki.bookISBN,booki.bookname,booki.bookauthor,booki.bookpublisher,booki.bookdate,booki.bookprice); printf(1:修改书的ISB
8、N号n); printf(2:修改书名n); printf(3:修改作者n); printf(4:修改出版社n); printf(5:修改出版日期n); printf(6:修改价格n); printf(请输入1-6:); scanf(%s,&choice); switch(choice) case 1: printf(请输入新的ISBN号n); scanf(%s,p-bookISBN); fwrite(p,sizeof(struct book),1,fp2); break; case 2: printf(请输入新的书名n); scanf(%s,p-bookname); fwrite(p,siz
9、eof(struct book),1,fp2); break; case 3: printf(请输入新的作者n); scanf(%s,p-bookauthor); fwrite(p,sizeof(struct book),1,fp2); break; case 4: printf(请输入新的出版社n); scanf(%s,p-bookpublisher); fwrite(p,sizeof(struct book),1,fp2); break; case 5: printf(请输入新的出版日期n); scanf(%s,p-bookdate); fwrite(p,sizeof(struct boo
10、k),1,fp2); break; case 6: printf(请输入新的价格n); scanf(%s,p-bookprice); fwrite(p,sizeof(struct book),1,fp2); break; default:printf(没有这样的操作);break; fclose(fp2); fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(p,sizeof(struct book),1,fp2)!=0;i+) fwrite(p,sizeof(struct book),1,fp); fclose(fp); f
11、close(fp2); printf(修改成功!n);getchar();printf(按任意键返回n); getchar(); 4、findbook()/按图书ISBN编号查询 FILE *fp; int i;char bookISBN20; p=(struct book*)malloc(sizeof(struct book);fp=fopen(book.txt,r); if(fp=NULL) putchar(n);printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回n);getch();return;putchar(n);printf( 请输入你要查找的
12、图书ISBN编号: ); scanf(%s,bookISBN); putchar(n);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookISBN,p-bookISBN)=0) if(p-state=1) printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅n 按任意键返回n,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); els
13、e printf(这本书已经有人借出,按任意键返回n);fclose(fp);return ; fclose(fp); getch(); return; printf(没有你要查询的书籍,按任意键返回n); fclose(fp); getch();return; 5、findbook1()/根据出版社名称查询书目 FILE *fp; char bookpublisher20; int i;int count1=0;/标记存在要查找的书目数量,如果count1为0,即没有要查询的书籍,则退出fp=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,
14、请先添加书籍信息n);printf( 按任意键返回n);getch();return;printf(请输入你要查找的出版社名称: ); scanf(%s,bookpublisher); putchar(n);p=(struct book*)malloc(sizeof(struct book);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookpublisher,p-bookpublisher)=0) count1+; printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日
15、期:%s 价格:%s 此书现在无人借阅nn,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); if(count1=0)printf(没有你要查询的书籍,按任意键返回n); elseprintf(按任意键返回n);fclose(fp); getch(); return; 6、findbook2()/根据关键字查找图书 FILE *fp; char bookname20; int i;int count=0;p=(struct book*)malloc(sizeof(struct book);fp
16、=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回n);getch();return;printf(请输入你要查找的关键字: ); scanf(%s,&bookname); putchar(n);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) char *a=strstr(p-bookname,bookname); if(a!=NULL) count+; if(p-state=1) printf(这本书的详细资料是:图书ISBN编号:%s 书名
17、:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅nn ,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); else printf(这本书已经有人借出n);fclose(fp);return; if(count=0)printf(没有你要查询的书籍,按任意键返回n); else printf(按任意键返回n);fclose(fp); getch();return; 7、bookcount()/统计已登记图书数量并显示其图书信息 FILE *fp; int i,n=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理程序 20
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内