📄 main3.c
字号:
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
{
printf("*********删除完成**********\n");
getch();
}
else //1
{
fp1=fopen("book1.txt","a+");
if(fp1==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else
{
fprintf(fp1,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname//写进myfile1
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
fclose(fp1);
}
} //else1
} //else2
} //while
if(ch==' ')
printf("没有找到这本书\n");
fp=fopen("book.txt","w"); //清空myfile
fclose(fp);
fp=fopen("book.txt","a+");
fp1=fopen("book1.txt","r+");
while(!feof(fp1))//将文件myfile1复制到myfile
{
fscanf(fp1,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname//从file1读出一条记录
,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
fprintf(fp,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname//写进file
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
}
fclose(fp);
fclose(fp1);
fp1=fopen("book1.txt","w");
fclose(fp1);
} //else3
}
void modbook( ) //修改图书
{
char ch;
int number;
struct book oldbook; //书库中的书*
FILE *fp,*fp1;
fp=fopen("book.txt","a+");
if(fp==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else //3
{
printf("===================================\n");
printf("请输入要修改的书的编号:\n");
scanf("%d",&number);
getchar();
while(!feof(fp))
{
fscanf(fp,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
if(oldbook.booknum!=number)
{
fp1=fopen("book1.txt","a+");
if(fp1==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else
{
fprintf(fp1,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
fclose(fp1);
}
}
else //2
{
printf(" %d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
printf("您是否确定删除这本书的记录:\n");
printf("***修改输'Y'****不修改输'N'****\n");
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
{
fp1=fopen("book1.txt","a+");
if(fp1==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else
{
oldbook.booknum=number;
printf("请输入要修改的书名:\n");
scanf("%s",oldbook.bookname);
printf("请输入要修改的出版社:\n");
scanf("%s",oldbook.bookcreat);
printf("请输入要修改的作者:\n");
scanf("%s",oldbook.writer);
printf("请输入要修改的借还标志:\n");
scanf("%d",&oldbook.lendture);
getchar();
fprintf(fp1,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
fclose(fp1);
}
printf("*********修改完成**********\n");
}//if
else //1
{
fp1=fopen("book1.txt","a+");
if(fp1==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else
{
fprintf(fp1,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
fclose(fp1);
}
} //else1
}//else2
} //while
fp=fopen("book.txt","w");
fclose(fp);
fp=fopen("book.txt","a+");
fp1=fopen("book1.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
fprintf(fp,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
}
fclose(fp);
fclose(fp1);
fp1=fopen("book1.txt","w");
fclose(fp1);
} //else3
}
void countbook()//统计图书
{
int i=0;
FILE *fp;
struct book oldbook;
fp=fopen("book.txt","a+");
if(fp==NULL)
{
printf("文件不存在导致打开失败!");
exit(0);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname
,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
if(oldbook.booknum!=0)
i++;
}
fclose(fp);
printf("图书馆书籍管理库中一共有%d:\n",i);
}
}
//借阅模块函数
void findbook() //查找图书
{
struct book bookst; //调用书库中的书
int booknumber;
int i;
int choosenumf,cyclef;
cyclef=1;
getchar();
FILE *fp;
fp=fopen("book.txt","r+"); //打开文件
if(fp==NULL)
{
printf("文件不存在导致打开失败!\n"); //文件不存在报错
getch();
exit(0);
}
else
while(cyclef!=-1) //应用一个循环使查找书目不存在时能查找其他书目
{ printf("请输入所要查找的书的编号:\n"); //文件存在就提示输入所要查找的书目
scanf("%d",&booknumber);
getchar();
while(!feof(fp))
{
i=0;
fscanf(fp,"%d %s %s %s %d\n",&bookst.booknum,bookst.bookname,
bookst.bookcreat,bookst.writer,&bookst.lendture); //读出所搜索到的指针所指的书的信息
if(bookst.booknum == booknumber)
{
printf("%d %s %s %s %d\n",bookst.booknum,bookst.bookname,
bookst.bookcreat,bookst.writer,bookst.lendture); //在编译器上显示书的信息
i=1;
fseek(fp,0,0); //查找完成后将指针指向首头
break; //查找成功,跳出循环并显示
}
}
fseek(fp,0,0); //查找完成后将指针指向首头
if(i==0)
printf("抱歉!您所要查找的书本馆没有收藏!\n");
printf("您可以1.退出该系统 2.查找其他书目 请选择:\n"); //查找不成功,选择1退出系统;选择其他继续查找
scanf("%d",&choosenumf);
switch(choosenumf)
{
case 1:printf("谢谢使用本系统!\n");
cyclef=-1;break;
case 2:printf("===========================\n");
break;
default:printf("===========================\n");
break;
}
}
fclose(fp);
}
void lendbook() //外借图书
{
struct reader one;
struct card oldcard;
struct card newcard;
int cardnumber;
int i=0;
FILE *fp,*fp1,*fp2;
fp=fopen("lendcard.txt","a+");
if(fp==NULL)
{
printf("文件不存在导致打开失败!\n"); //文件不存在报错
getch();
exit(0);
}
else //2
{
fp=fopen("lendcard.txt","r+"); //打开借书卡
printf("请输入您的卡号:\n");
scanf("%d",&cardnumber);
while(!feof(fp))
{
fscanf(fp,"%d %s %d %d %d\n",&oldcard.one.cardnum,oldcard.one.readername,
&oldcard.one.classes,&oldcard.booknum,&oldcard.lenddate); //读取借书卡信息
if(oldcard.one.cardnum==cardnumber&&oldcard.booknum==0) //if 判定读书卡号存在而且对应所借书目为空
{
fp1=fopen("lendcard1.txt","a+");
if(fp1==NULL)
{
printf("该文件不存在!");
exit(0);
}
else
{
printf("请输入所借阅的图书的编号:\n");
scanf("%d",&oldcard.booknum);
printf("请输入借阅本书的日期:\n");
scanf("%d",&oldcard.lenddate);
fprintf(fp1,"%d %s %d %d %d\n",oldcard.one.cardnum,oldcard.one.readername,
oldcard.one.classes,oldcard.booknum,oldcard.lenddate); //将满足IF条件的语句修改即加上booknum和lenddate
fclose(fp1);
}
fp=fopen("lendcard.txt","a+"); //将修改好了后的这条信息加到借书卡文件中
fp1=fopen("lendcard1.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %d %d %d\n",&oldcard.one.cardnum,&oldcard.one.readername,
&oldcard.one.classes,&oldcard.booknum,&oldcard.lenddate);
fprintf(fp,"%d %s %d %d %d\n",oldcard.one.cardnum,oldcard.one.readername,
oldcard.one.classes,oldcard.booknum,oldcard.lenddate);
}
fclose(fp);
fclose(fp1);
fp1=fopen("lendcard1.txt","w");
fclose(fp1);
i=1;
printf("借书登记完毕!\n");
getch();
exit(0);
}//if
} //while
if(i==0) //用个while判定读书卡可用信息
{
printf("本卡不可以使用!\n");
getch();
exit(0);
}
} //else 2
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -