You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define M 100
void dele(){
typedef struct question{
char mainq[500];
char ala[150];
char alb[150];
char alc[150];
char ald[150];
char ans;
}ques;
char _m[20]="password";
char _n[20];
int z=3;
while(z--)
{
printf("你还有%d次机会输入管理员密码",z+1);
scanf("%s",_n);
printf("\n");
if(strcmp(_m,_n)==0)
{
FILE *fp,*fp2;
int flag=0,n,jud,i;
system("cls");
char q[500];
ques que[M];
fp=fopen("question.dat","ab+");
if(fp==NULL)
{
printf("文件处理失败");
return ;
}
jud=flag=0;
printf("请输入您想删除的试题的完整题干:\n");
scanf("%s",q);
for(i=0;fread(&que[i],sizeof(ques),1,fp)==1;i++)
{
if(strcmp(q,que[i].mainq)==0)
{
printf("该题目前状态如下:\n");
printf("%s\n",que[i].mainq);
printf("A.%s\n",que[i].ala);
printf("B.%s\n",que[i].alb);
printf("C.%s\n",que[i].alc);
printf("D.%s\n",que[i].ald);
printf("正确选项:%c\n",que[i].ans);
flag=1;
fclose(fp);
fp2=fopen("que2.dat","wb");
fp=fopen("question.dat","rb");
break;
}
}
if(flag)
{
for(i=0;fread(&que[i],sizeof(ques),1,fp)==1;i++){
if(strcmp(q,que[i].mainq)!=0)
fwrite(&que[i],sizeof(ques),1,fp2);}//把除要删除的试题外的所有试题复制给另外一个文件,再把另外一个文件复制回来
fclose(fp);
fclose(fp2);
fp=fopen("question.dat","wb");
fp2=fopen("que2.dat","rb");
for(i=0;fread(&que[i],sizeof(ques),1,fp2)==1;)
{
fwrite(&que[i],sizeof(ques),1,fp);
i++;
}
fclose(fp);
fclose(fp2);
printf("\t\t\t\t成功删除该试题");
}
else
{
fclose(fp);
printf("\t\t\t\t未找到该试题");
}
break;
}
}
return ;
}