#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#defineTRUE 1
#defineERROR 0
#defineMAX 30
typedefint Status;
typedefstruct{
charoption1[30],option2[30],option3[30],option4[30],subject[150];
char result;
}TestNode;
TestNodeTestquestions[MAX];
StatusSaveNode(int N) //æç»æä½æ°ç»ä¿åå°æ件"cheng"ä¸,å¦æåä¿åè¿åTRUE,å¦åè¿åERROR
{ int i;
FILE *fp;
if((fp=fopen("cheng","wb"))==NULL)return ERROR;
for(i=0;i<N;i++)
fwrite(&Testquestions[i],sizeof(TestNode),1,fp);
fclose(fp);
return TRUE;
}
StatusReadNode(int &N) //ä»æ件读åºç»æä½æ°ç»çå
容,å¦æå读åè¿åTRUE,å¦åè¿åERROR
{ FILE *fp;
int i=0;
if((fp=fopen("cheng","rb"))==NULL)return ERROR;
while(!feof(fp))// ç¨feofæ£æµæ件æ¯å¦ç»æ,å¦æç»æ,è¿åæ£ç¡®
{ fread(&Testquestions[i],sizeof(TestNode),1,fp);
i++;
}
N=i-1;
return TRUE;
}
voidInputTitle(int N)// è¾å
¥Néè¯é¢æ°æ®
{
int i;
for(i=0;i<N;i++)
{ printf("请è¾å
¥ç¬¬%déé¢é¢ç®ãé¢å¹²åé项:\n",i+1);//è¾å
¥ç»æä½å
ç´ å
容
printf("请è¾å
¥é¢ç®:");
gets(Testquestions[i].subject);
printf("请è¾å
¥é项A:");
gets(Testquestions[i].option1);
printf("请è¾å
¥é项B:");
gets(Testquestions[i].option2);
printf("请è¾å
¥é项C:");
gets(Testquestions[i].option3);
printf("请è¾å
¥é项D:");
gets(Testquestions[i].option4);
printf("请è¾å
¥çæ¡:");
scanf("%c",&Testquestions[i].result);getchar();
system("cls"); //æ¸
å±
}
}
StatusInsertNode(int &N) //æå
¥è¯é¢å
容
{
if(N>MAX) return ERROR;
printf("请è¾å
¥æè¦æå
¥é¢é¢ç®ãé¢å¹²åé项:\n");
printf("请è¾å
¥é¢ç®ï¼");
gets(Testquestions[N].subject);
printf("请è¾å
¥é项Aï¼");
gets(Testquestions[N].option1);
printf("请è¾å
¥é项Bï¼");
gets(Testquestions[N].option2);
printf("请è¾å
¥é项Cï¼");
gets(Testquestions[N].option3);
printf("请è¾å
¥é项Dï¼");
gets(Testquestions[N].option4);
printf("请è¾å
¥çæ¡ï¼");
scanf("%c",&Testquestions[N].result);getchar();
N++; //N表示ç»æä½æ°ç»é¿åº¦,éè¿å &å·ä½¿å
¶å¼è½è¿å
return TRUE;
}
StatusDeleteNode(int n)//å é¤æ°ç»ä¸ç第n个å
ç´
{
return TRUE;
}
voidprintNode(TestNode p,int n)//è¾åºç¬¬néé¢é¢ç®
{
printf("(%d) ",n);
printf("%s\n",p.subject);
printf(" A %s ",p.option1);
printf(" B %s \n",p.option2);
printf(" C %s ",p.option3);
printf(" D %s ",p.option4);
}
Status Match(TestNode p,char m)//å¤æmæ¯å¦ä¸ºpé¢ç®ççæ¡ï¼è¥æ¯è¿åTRUEï¼å¦åè¿åERROR
{
if(m==p.result) return TRUE;
else return ERROR;
}
voidanswer(int sum)//è¿è¡çé¢
{
int i,score=0,Num;
char r;
for(i=1;i<=sum;i++)
{ Num=rand()%sum; //éæºå½æ°,以éæºéå®ä½é¢è¿è¡è§£ç
printNode(Testquestions[Num],Num+1);
printf("\n请è¾å
¥çæ¡:");
scanf("%c",&r);getchar();
if( Match(Testquestions[Num],r)) //è°ç¨å½æ°IsMatchå¤ææè¾å
¥ççæ¡ä¸æ åçæ¡æ¯å¦ç¸å
{ printf("\nçæ¡æ£ç¡®!\n");
score++;
}
else printf("\nçæ¡é误!\n");
}
printf("\nä½ çæ»æ绩为:%d\n",score);
}
voidmain()
{ char flag='N';
int N=0,i, sum,score=0,chose;
/*printf("è¾å
¥æ³å»ºç«çé¢ç®æ件é¢ç®æ°ï¼");
scanf("%d",&N);getchar();
InputTitle(N);*/
ReadNode(N);
while(flag=='N'||flag=='n')
{ printf("\t\t\tå项éæ©é¢æ ååèè¯ç³»ç»\n");
printf("\n");
printf(" \t\t\t1 è¿è¡çé¢å¹¶å¤å·\n");
printf(" \t\t\t2 æ¾ç¤ºæ´å¼ è¯å·å
容\n");
printf(" \t\t\t3 æå
¥è¯é¢\n");
printf(" \t\t\t4 ä¿åå°æ件\n");
printf(" \t\t\t5 éåºç³»ç»\n");
printf(" \t\t\t 请éæ©:");
scanf("%d",&chose);getchar();
switch(chose)
{case1:system("cls");
printf("请è¾å
¥ä½ æ³è¦ççé¢æ°ç®:");
scanf("%d",&sum);getchar();
answer(sum);
break;
case 2:system("cls");
for(i=1;i<=N;i++)
{ printNode(Testquestions[i-1],i);
printf("\n");
}
break;
case 3:system("cls");InsertNode(N);break;
case 4:system("cls");
if(SaveNode(N)) printf("ä¿åæå!\n");
else printf("ä¿å失败!\n");break;
case 5:printf("ä½ å°éåºç³»ç»(Y or N)?");
scanf("%c",&flag);getchar();
if(flag=='Y'||flag=='y') exit(0);
system("cls");break;
default:printf("请è¾å
¥æ£ç¡®éæ©!\n");
}
}
}
温馨提示:答案为网友推荐,仅供参考