图书馆借阅查询系统(图书馆借阅查询系统毕业设计)
怡怡给大家谈谈图书馆借阅查询系统,以及图书馆借阅查询系统毕业设计应用的知识点,希望对你所遇到的问题有所帮助。
1、#include#include#include#include#include#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0struct student /定义学生类型,用于存放借出的书籍/{int studentnum,phonenum;char lendbook[10];}student[1000];struct book /定义书的类型/{char bookname[11];char publisher[20];char page;char year[6];char status[4];char name[11];char author[51];char booknum;char bookcreat[10];char borrownum;char turefalse; /用于借书和还书模块判断一本书是否借出的条件/}book[1000];struct car /借书卡的数据类型/{int carnum;char studentname[10];int studentclass;int studentphone;}car[100];addcar(){FILE fp;int i=0;double allnum,stillbook,outbook,allmoney,emoney;fp=fopen("car.txt","a+");printf("请你输入学生姓名n");scanf("%s",car[i].studentname);printf("请你输入班级n");scanf("%d",&car[i].studentclass);fwrite(&car[i],sizeof(struct car),1,fp);fclose(fp);printf("注册完毕,任意键返回n");fp=fopen("book.txt","r");emoney=allmoney/allnum;fclose(fp);printf("书籍总数:%ld,已借出的书籍:%ld,在馆的书籍:%ld,书籍贯总金额:%ld,书籍平均价格:%ld",stillbook,outbook,allmoney,emoney);getch();}carcount(){FILE fp;int i,n=0;fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){printf("第%d张卡n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass,car[i].studentphone);n=n+1;}fclose(fp);printf("目前共有%d本书n",n);printf("按任意键n");getch();}void findbook(){FILE fp;char bookname[10];int ture,i,booknum;fp=fopen("book.txt","r");printf("请输入你要查找的booknum");scanf("%d",&booknum);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(booknum,book[i].booknum)==0){if(book[i].turefalse==1)printf("这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n",book[i].booknum,book[i].bookname,book[i].bookcreat);else {printf("这本书已经有人借出n");fclose(fp);return 0;}fclose(fp);return FALSE;}elseprintf("没有你要查询的书籍n");fclose(fp);}return FALSE;}void borrowbook(struct book m) //借阅图书函数{int num;struct book b, b1;printf("输入要借书的编码:");scanf("%d",&num);b = searchbook(num); /调用查找图书结点函数/if(b != NULL){if(m->borrownum {// b->status = '0';// b1 = &m->book[m->borrownum];strcpy(b1->name,b->name);strcpy(b1->author,b->author);b1->booknum = b->booknum;strcpy(b1->year,b->year);b1->page = b->page;strcpy(b1->publisher,b->publisher);// b1->pr = b->pr;// b1->status = b->status;m->borrownum++;printf("%s借书成功!",b->name);getch();}else{printf("你已借满10本书.");getch();}}else{printf("没有你要借的书.");getch();}}huanbook() /还书函数/{FILE fp,fp2; /定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏/int i,n;int carnum,booknum;char lendbook[10];printf("请你输入你的n");scanf("%d",&carnum);fp=fopen("car.txt","r"); /读取记录/{if(car[i].carnum==carnum) /存在,进入下一循环/{n=i;fclose(fp);printf("请输入你要还的书的booknumn");scanf("%d",&booknum);fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /判断是否借阅了输入的书/{if(strcmp(student[i].lendbook,lendbook)==0) /借阅了该书,进入下一循环,否则出错显示/{fclose(fp);fp=fopen("record.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){continue; /删除还掉的书的借录/}fwrite(&student[i],sizeof(struct student),1,fp2); /写入原来没还的书的记录/}fclose(fp);fclose(fp2);fp=fopen("record.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],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(&book[i],sizeof(struct book),1,fp)!=0;i++) /将书的记录写入临时文件,防止因为修改信息破坏以前的记录/{if(i==n){book[i].turefalse=1;fwrite(&book[i],sizeof(struct book),1,fp2); /将还的书的原来状态设为无人借阅的/continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp); /将临时文件写回/}fclose(fp);fclose(fp2);fopen("bookl.txt","w"); /清临时文件/fclose(fp2);printf("还书完毕,按任意键返回n");getch();return 1;}elseprintf("你没有借这样的书,任意键返回n");}/出错提示/fclose(fp);getch();return 0;}elseprintf("系统没这样的卡,和联系,按任意键返回n");}/出错提示/fclose(fp);getch();}void main(){struct book m;char ch5;do{printf("---------------欢迎进入图书查询系统!--------------n");printf(" 1:n");printf(" 2: n");printf(" 3:n");printf(" 4: n");printf(" 5: n");printf(" 0:n");printf("请输入0--5,其他输入非法!n");scanf("%s",&ch5);switch(ch5){case '1':addcar();getch();case '2':carcount();getch();break;case '3':findbook();getch();break;case '4':borrowbook(m );getch();break;case '5':huanbook();getch();break;case '0':break;default:printf("无此作n");getch();break;}}while(ch5!='0');//return FALSE;}。
本文到这结束,希望上面文章对大家有所帮助。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。