|
|
|
@ -0,0 +1,110 @@
|
|
|
|
|
#include<stdio.h>
|
|
|
|
|
#include<stdlib.h>
|
|
|
|
|
#include<string.h>
|
|
|
|
|
#include<time.h>
|
|
|
|
|
#define M 100
|
|
|
|
|
void change(){
|
|
|
|
|
typedef struct question{
|
|
|
|
|
char mainq[500];
|
|
|
|
|
char ala[150];
|
|
|
|
|
char alb[150];
|
|
|
|
|
char alc[150];
|
|
|
|
|
char ald[150];
|
|
|
|
|
char ans;
|
|
|
|
|
}ques;
|
|
|
|
|
int z=3;
|
|
|
|
|
char _m[]="password";
|
|
|
|
|
char _n[20];
|
|
|
|
|
while(z--)
|
|
|
|
|
{
|
|
|
|
|
printf("你还有%d次机会输入管理员密码:",z+1);//密码:password
|
|
|
|
|
scanf("%s",_n);
|
|
|
|
|
printf("\n");
|
|
|
|
|
if(strcmp(_m,_n)==0)
|
|
|
|
|
{
|
|
|
|
|
FILE *fp,*fp2;
|
|
|
|
|
int flag=0,n,jud,i,N;
|
|
|
|
|
system("cls");
|
|
|
|
|
char q[500];
|
|
|
|
|
ques que[M],ll;
|
|
|
|
|
fp=fopen("question.dat","ab+");
|
|
|
|
|
if(fp==NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("文件处理失败");
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
do{
|
|
|
|
|
jud=flag=0;
|
|
|
|
|
rewind(fp);
|
|
|
|
|
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);
|
|
|
|
|
N=i;
|
|
|
|
|
flag=1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(flag==1)
|
|
|
|
|
{
|
|
|
|
|
printf("请输入您想修改的项:1.选项A\t2.选项B\t3.选项C\t4.选项D\t5.题干\t6.正确选项\t0.取消修改:\n\t\t\t\t\t\t");
|
|
|
|
|
scanf("%d",&n);
|
|
|
|
|
switch(n)
|
|
|
|
|
{
|
|
|
|
|
case 1:printf("请输入您想修改成的选项A:");
|
|
|
|
|
scanf("%s",que[i].ala);break;
|
|
|
|
|
case 2:printf("请输入您想修改成的选项B:");
|
|
|
|
|
scanf("%s",que[i].alb);break;
|
|
|
|
|
case 3:printf("请输入您想修改成的选项C:");
|
|
|
|
|
scanf("%s",que[i].alc);break;
|
|
|
|
|
case 4:printf("请输入您想修改成的选项D:");
|
|
|
|
|
scanf("%s",que[i].ald);break;
|
|
|
|
|
case 5:printf("请输入您想修改成的题干:");
|
|
|
|
|
scanf("%s",que[i].mainq);break;
|
|
|
|
|
case 6:printf("请输入您想修改成的正确选项:");
|
|
|
|
|
getchar();
|
|
|
|
|
scanf("%c",&que[i].ans);break;
|
|
|
|
|
case 0:printf("取消修改成功");break;
|
|
|
|
|
}
|
|
|
|
|
ll=que[i];
|
|
|
|
|
fclose(fp);
|
|
|
|
|
fp=fopen("question.dat","rb");
|
|
|
|
|
fp2=fopen("que2.dat","wb");
|
|
|
|
|
for(i=0;fread(&que[i],sizeof(ques),1,fp)==1;i++)
|
|
|
|
|
{
|
|
|
|
|
if(i!=N)
|
|
|
|
|
fwrite(&que[i],sizeof(ques),1,fp2);//将除了要修改的试题之外的所有题,原样复制给另外一个文件,需要修改的,将修改之后的输入另外一个文件
|
|
|
|
|
else
|
|
|
|
|
fwrite(&ll,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;i++)
|
|
|
|
|
fwrite(&que[i],sizeof(ques),1,fp);//再复制到回原来的这个文件
|
|
|
|
|
fclose(fp);
|
|
|
|
|
fclose(fp2);
|
|
|
|
|
printf("\n");
|
|
|
|
|
printf("\t\t\t\t修改完成\n");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
printf("\t\t\t\t未找到该试题\n");
|
|
|
|
|
printf("如还需做其它修改请输入1,如无需再进行修改请输入0:");
|
|
|
|
|
scanf("%d",&jud);
|
|
|
|
|
}while(jud==1);
|
|
|
|
|
fclose(fp);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ;
|
|
|
|
|
}
|