|
|
#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 ;
|
|
|
}
|