图书管理系统源程序

  • 格式:doc
  • 大小:58.00 KB
  • 文档页数:8

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define MAX 100struct Student{int num;/*登录号*/char name[100];/*书名*/char author[100];/*作者名*/char fn[100];/*分类号*/char place[100];/*出版单位*/char day[100];/*出版时间*/float money;/*价格*/}stu[MAX];main()/*主函数*/{void Input();/*输入*/void Display();/*输出*/void Find();/*查找*/void Modify();/*删除*/void Change();/*修改*/int n;for(;;){printf("\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※欢迎来到图书信息管理系统※\n");printf("※※\n");printf("※※\n");printf("※主菜单※\n");printf("※※\n");printf("※▲1.图书信息录入▲※\n");printf("※※\n");printf("※▲2.图书信息浏览▲※\n");printf("※※\n");printf("※▲3.图书信息查询▲※\n");printf("※※\n");printf("※▲4.图书信息删除▲※\n");printf("※※\n");printf("※▲5.图书信息修改▲※\n");printf("※※\n");printf("※▲6.退出系统▲※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");printf("请输入选择项(1-6):");scanf("%d",&n);printf("\n\n\n\n");if(n>0&&n<7){switch(n){case 1:Input();break;case 2:Display();break;case 3:Find();break;case 4:Modify();break;case 5:Change();break;case 6:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※谢谢使用! ※\n");printf("※再见! ※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");exit(0);}}else{printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※输入错误! ※\n");printf("※请退出! ※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");break;}}}void Find()/*查找*/{FILE *fp;int i;int choose,t;char ans[100];do{printf("1.按书名查找\n");printf("2.按作者名查找\n");printf("返回主菜单(其他数字)\n");scanf("%d",&choose);if(choose==1){printf("输入所查书名:\n");scanf("%s",ans);t=-1;if(choose==1){for(i=0;i<MAX;i++) if(strcmp(ans,stu[i].name)==0){t=i;fp=fopen("student","rb");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)printf("%d %s %s %s %s %s %f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,s tu[t].day,stu[t].money);}}if(t==-1) printf("不存在该信息\n");}else if(choose==2){printf("输入所查作者名:\n");scanf("%s",ans);t=-1;if(choose==2){for(i=0;i<MAX;i++)if(strcmp(ans,stu[i].author)==0){ t=i;fp=fopen("student","rb");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)printf("%d %s %s %s %s %s %f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t]. day,stu[t].money);}}if(t==-1) printf("不存在该信息\n");}else return;}while(1);}void Display()/*输出*/{FILE *fp;int i;fp=fopen("student","rb");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++){printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,st u[i].place,stu[i].day,stu[i].money);}fclose(fp);}void Input()/*输入*/{FILE *fp;int n;fp=fopen("student","ab+");for(n=0;n<MAX;n++){printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++);scanf("%d",&n);if(n==-1){fclose(fp);return;}else{printf("请输入登录号书名作者名分类号出版单位出版时间价格\n");scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,st u[n].day,&stu[n].money);fwrite(&stu[n],sizeof(struct Student),1,fp);}}fclose(fp);}void Modify()/*删除*/{FILE *fp;int i,flag,n,s,j;fp=fopen("student","rb+");rewind(fp);printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++){printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].p lace,stu[i].day,stu[i].money);printf("\n");}n=i;printf("输入待删除图书号:\n");scanf("%d",&s);for(i=0,flag=1;flag&&i<n;i++){if(s==stu[i].num){for(j=i;j<n-1;j++){stu[j].num=stu[j+1].num;strcpy(stu[j].name,stu[j+1].name);strcpy(stu[j].author,stu[j+1].author);strcpy(stu[j].fn,stu[j+1].fn);strcpy(stu[j].place,stu[j+1].place);strcpy(stu[j].day,stu[j+1].day);stu[j].money=stu[j+1].money;}flag=0;}}if(!flag)n=n-1;elseprintf("没有此号\n");fp=fopen("student","wb");for(i=0;i<n;i++)fwrite(&stu[i],sizeof(struct Student),1,fp);fclose(fp);fp=fopen("student","r");printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");for(i=0;i<n;i++){fread(&stu[i],sizeof(struct Student),1,fp);printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].p lace,stu[i].day,stu[i].money);printf("\n");}fclose(fp);}void Change()/*修改*/{FILE *fp;int i,num,n;int flag=0;fp=fopen("student","rb");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++){printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,st u[i].place,stu[i].day,stu[i].money);}fclose(fp);printf("请输入要修改的图书号:");scanf("%d",&num);for(i=0;i<=MAX;i++)if(stu[i].num==num){printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].p lace,stu[i].day,stu[i].money);printf("-----------------------------------------------------------\n\n");n=i;flag=1;break;}if(flag==0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 输入错误!\n");printf(" 请返回!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return;}printf("\n\n\n");fp=fopen("student","rb+");fseek(fp,n*sizeof(struct Student),0);printf("登录号书名作者名分类号出版单位出版时间价格\n");scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].d ay,&stu[n].money);fwrite(&stu[i],sizeof(struct Student),1,fp);fclose(fp);fp=fopen("student","rb");printf(" 图书列表\n");printf("-----------------------------------------------------------\n");printf("登录号书名作者名分类号出版单位出版时间价格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++){printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].p lace,stu[i].day,stu[i].money);;}printf("-----------------------------------------------------------\n\n");fclose(fp);}。