📄 main3.c
字号:
fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
fclose(fp1);
printf("修改成功!");
getchar();
}
if(m==2)
{
printf("请输入新班级:\n");
scanf("%d",&oldcard.classes);
fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
fclose(fp1);
printf("修改成功!");
getchar();
}
if(m==3)
{
printf("请输入新名字:\n");
scanf("%s",&oldcard.readername);
printf("请输入新班级:\n");
scanf("%d",&oldcard.classes);
getchar();
fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
fclose(fp1);
printf("修改成功!");
getchar();
}
}//1
}//2
}//while(!feof(fp))
fp=fopen("readcard.txt","w");
fclose(fp);
fp=fopen("readcard.txt","a+");
fp1=fopen("readcard1.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %d\n",&oldcard.cardnum,oldcard.readername,&oldcard.classes);
fprintf(fp,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
}
fclose(fp);
fclose(fp1);
fp1=fopen("readcard1.txt","w");
fclose(fp1);
}//3
}
void countcard() //统计读书卡的总量
{
struct reader oldcard;
int count;
count=0;
FILE *fp;
fp=fopen("readcard.txt","r+");
if(fp==NULL)
{
printf("文件不存在导致打开失败!\n");
getch();
exit(0);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%d %s %d\n",&oldcard.cardnum,oldcard.readername,&oldcard.classes);
if(oldcard.cardnum!=0)
count++;
}
printf("在馆图书数目是 %d\n",count);
}
fclose(fp);
}
//馆员管理模块
void addpeople() /*新增管理员记录*/
{
int record_len;
int i=0;
struct librarian client;
struct librarian newclient;
FILE *fp;
record_len=sizeof(struct librarian);
while(i!=1) //搜索是否有相同的ID
{
if((fp=fopen("administer.txt","a+"))==NULL)
printf("File open error!\n");
else
{
printf("请输入新增管理员ID: (~~输入为0时提示退出操作~~)\n");
scanf("%d",&newclient.librnnum);
getchar();
if(newclient.librnnum==0)
{
printf("退出新增操作!\n");
getch();
i=1;
break;
}
else
{
while(!feof(fp))
{
fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,
&client.librnage,client.librnsex); //读出文件内的记录
if(client.librnnum==newclient.librnnum) //判断是否有相同ID
{
printf("您刚才所输的ID已经存在,请您重新输入一个ID:\n");
scanf("%d",&newclient.librnnum);
fseek(fp,0,0);
}
}
fseek(fp,0,0);
printf("请输入新增的管理员的姓名:\n");
scanf("%s",&newclient.librnname);
printf("请输入新增的管理员的性别:\n");
scanf("%s",&newclient.librnsex);
printf("请输入新增的管理员的年龄:\n");
scanf("%d",&newclient.librnage);
fprintf(fp,"%d %s %d %s\n",newclient.librnnum,newclient.librnname,newclient.librnage,newclient.librnsex);
fclose(fp);
printf("已成功加入该记录!\n");
}
}
}
}
void delpeople() /*删除管理员记录*/
{
FILE *fp;
int t,i,j,k,sum;
char temp[50][81]; //定义二维数组 用于临时存放数据
fp = fopen("administer.txt","r");
if(fp == NULL)
printf("file open error!\n");
else
{
printf("请输入要删除的管理员ID:\n");
scanf("%d",&t);
i = 0;
while(fgets(temp[i++],80,fp)!=NULL);
fclose(fp);
fp = fopen("administer.txt","w");
for(j = 0;j < i;j++)
{
sum = k = 0;
while(temp[j][k] >= '0' && temp[j][k] <= '9') // (temp[j][k] >= '0' && temp[j][k] <= '9')用于计算ID
{
sum = sum*10 + temp[j][k] - '0'; //定义的为char型数组 在此把ID当成字符判断
k++;
}
if(sum != t) //用循环把数组里面的 数据放回administer
fprintf(fp,"%s",temp[j]);
}
printf("删除成功!\n");
getch();
fclose(fp);
}
}
void modpeople( ) /*修改管理员信息*/
{
char ch=' ';
int number;
int i=0;
struct librarian client;;
FILE *fp,*fp1;
fp=fopen("administer.txt","a+");
if(fp==NULL)
{
printf("file open error:");
exit(0);
}
else //3
{
printf("请输入要修改的管理员的ID:\n");
scanf("%d",&number);
getchar();
while(!feof(fp))
{
fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,&client.librnage,client.librnsex);
if(client.librnnum==number)
{
printf("%d %s %d %s\n",client.librnnum,client.librnname,client.librnage,client.librnsex);
i=1;
}
}
if(i==0)
{
printf("您所输入的ID不存在~");
getchar();
exit(0);
}
fseek(fp,0,0);
while(!feof(fp))
{
fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,&client.librnage,client.librnsex);
if(client.librnnum!=number)
{
fp1=fopen("file1.txt","a+");
if(fp1==NULL)
{
printf("file1 open error:");
exit(0);
}
else
{
fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
client.librnage,client.librnsex);
fclose(fp1);
}
}
else //2
{
printf("%d %s %d %s\n",client.librnnum,client.librnname,client.librnage,client.librnsex);
printf("您是否确定修改此管理员的记录:\n");
printf("***修改输'Y'****不修改输'N'****\n");
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
{ fp1=fopen("file1.txt","a+");
if(fp1==NULL)
{
printf("file1 open error:");
exit(0);
}
else
{
client.librnnum=number;
printf("请输入修改后管理员的姓名:\n");
scanf("%s",&client.librnname);
printf("请输入修改后管理员的性别:\n");
scanf("%s",&client.librnsex);
printf("请输入修改后管理员的年龄:\n");
scanf("%d",&client.librnage);
getchar();
fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
client.librnage,client.librnsex);
fclose(fp1);
}
printf("修改完成!\n");
getch();
}
else //1
{
fp1=fopen("file1.txt","a+");
if(fp1==NULL)
{
printf("file1 open error:");
exit(0);
}
else
{
fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
client.librnage,client.librnsex);
fclose(fp1);
}
}//1
}//2
}//while
fp=fopen("administer.txt","w");
fclose(fp);
fp=fopen("administer.txt","a+");
fp1=fopen("file1.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %d %s\n",&client.librnnum,client.librnname,
&client.librnage,client.librnsex);
fprintf(fp,"%d %s %d %s\n",client.librnnum,client.librnname,
client.librnage,client.librnsex);
}
fclose(fp);
fclose(fp1);
fp1=fopen("file1.txt","w");
fclose(fp1);
} //3
}
void countpeople()//统计管理员信息
{
FILE*fp;
char w[81]; //定义数组W,用于暂时存放文件内容,方便统计
int lines=0;
fp=fopen("administer.txt","r");
if(fp==NULL)
printf("error\n");
else //输出文件内容,并统计行数
{
while (fgets(w,80,fp)!=NULL)
{
lines=lines+1;
printf("%s",w);
}
printf("共有管理员%d\n",lines);
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -