📄 function.cpp
字号:
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book_type),1,fp)!=0;i++)
{
if(strcmp(book[i].name,student[n].lendbook)==0)
{
book[i].amount--;
fwrite(&book[i],sizeof(struct book_type),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book_type),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_type),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book_type),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");
fclose(fp2);
printf("借书完毕,按任意键返回\n");
getch();
return 0;
}
}
printf("不存在这样的书,任意键返回\n");
fclose(fp);
getchar();
getchar();
return 0;
}
}
printf("你的卡号不存在,请申请新卡,按任意键返回\n");
fclose(fp);
getch();
return 0;
}
/* int lendcount() //借书统计
{
FILE *fp;
int i,n=0;
fp=fopen("record.txt","r");
if((fp=fopen("book.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何信息,按回车键进入主菜单选择基本信息的录入!*****\n");
return 0;
}
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{ int num=0;
// printf("请输入你要查询的卡号:\n(按0结束查询)\n");
// scanf("%d",&num);
// if(num==student[i].carnum)
printf("卡号:%3d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);
PRINT1;
PRINT2;
PRINT3;
n=n+1;
printf("目前您共借有%d本书,应归还的日期为借书后的20天内·····\n",n);
if (num==0)
// break;
printf("查询结束·····················\n");
getchar();
getchar();
return 0;
}
fclose(fp);
printf("按任意键\n");
getchar();
getchar();
return 1;
} */
void lendcount() //借书统计
{
FILE *fp;
int i,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);
// PRINT1;
// PRINT2;
// PRINT3;
n=n+1;
}
fclose(fp);
printf("目前共有%d本书借出\n",n);
printf("按任意键\n");
getchar();
getchar();
}
int carcount()//学生卡号统计
{
FILE *fp;
int n=0,i=0;
fp=fopen("car.txt","r"); /*读取卡号记录*/
if((fp=fopen("car.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何信息,按回车键进入上机菜单选择卡号注册信息的录入!*****\n");
return 0;
}
else{
PRINT4;
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/
{
printf("%4d%15s%15d\n",car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1;
}
fclose(fp);
printf("目前共有%d个学生已经注册本图书管理系统\n",n);
printf("···························\n");
printf("按回车键退出·······\n");
getchar();
getchar();
return 1;
}
}
/* 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张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书\n",n);
printf("按任意键\n");
getch();
} */
void bookshow()
{
FILE *fp;
int n=0,i=0;
fp=fopen("book.txt","r");
PRINT1;
PRINT2;
for(i=0;fread(&book[i],sizeof(struct book_type),1,fp)!=0;i++)
{
PRINT3;
}
fclose(fp);
getchar();
getchar();
}
void addcar() //申请新的学生借书卡卡号
{
FILE *fp;
int i=0;
fp=fopen("car.txt","a+");
printf("请你输入卡号\n");
scanf("%d",&car[i].carnum);
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");
getchar();
}
void delcar() //删除学生卡号
{
FILE *fp,*fp2;
int i;
int carnum;
char choice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
printf("请输入你要删除的卡号\n");
printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");
scanf("%d",&carnum);
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum!=carnum)
{
fwrite(&car[i],sizeof(struct car),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("car.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++)
{
fwrite(&car[i],sizeof(struct car),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("按任意键返回\n");
getchar();
}
else
{
printf("按任意键返回\n");
getchar();
}
}
huanbook() /*还书函数*/
{
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
int i,n;
int carnum;
char lendbook[10];
printf("请你输入你的卡号\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*读取卡号记录*/
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/
{
if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf("请输入你要还的书的名字\n");
scanf("%s",lendbook);
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_type),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
{
if(strcmp(book[i].name,lendbook)==0)
{
book[i].amount=book[i].amount++;
fwrite(&book[i],sizeof(struct book_type),1,fp2); /*将还的书的原来状态设为无人借阅的*/
continue;
}
fwrite(&book[i],sizeof(struct book_type),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_type),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book_type),1,fp); /*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件*/
fclose(fp2);
printf("还书完毕,按任意键返回\n");
getch();
return 0;
}
}
printf("你没有借这样的书,不要耍我,任意键返回\n"); /*出错提示*/
fclose(fp);
getch();
return 0;
}
}
printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/
fclose(fp);
getchar();
getchar;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -