**************************************************************************************
# include & ltstdio.h & gt
# include & ltconio.h & gt
int問題編號;//題庫中問題的數量
int得分= 0;//正確回答的問題數
//顯示菜單
void showMenu() {
Printf("1。回答問題\ n”);
Printf("2。查看分數\ n ");
Printf("3。添加新的問題和答案\ n ");
Printf("4。查看題庫中的問題和答案\ n ");
Printf("5。退出系統\ n ");
Printf("請選擇:");
}
//閱讀問題,isAnswer = 1表示回答問題,isAnswer = 0表示顯示題庫。
無效問題(int isAnswer) {
//打開題庫
FILE * f = fopen("question.data "," r ");
if(f == 0) {
printf(" \ n \ n問題不存在,請先添加!");
返回;
}
長度長;
//讀取文件長度
fseek(f,0,2);
長度= ftell(f);
倒帶(f);
char行[1000],標簽;
line[0]= 0;
question number = 0;
while(ftell(f)& lt;長度){
//顯示問題
fgets(行,1000,f);
printf(" \ n \ n問題% d:% s \ n ",++問題編號,行);
//顯示四個選項
for(tag = ' A ';標簽& lt= ' Dtag++) {
fgets(行,1000,f);
printf("%c :%s\n ",標記,行);
}
//得到答案
fscanf(f," %c\n ",& amp標簽);
If(isAnswer) {//如果是回答問題,則需要輸入答案。
for(;;) {
Printf("請選擇答案(A,B,C,D):");
switch(getche()) {
案例“A”:
case ' A ':if(tag = = ' A ')score++;打破;
案例“B”:
case ' B ':if(tag = = ' B ')score++;打破;
案例“C”:
case ' C ':if(tag = = ' C ')score++;打破;
案例“D”:
case ' D ':if(tag = = ' D ')score++;打破;
默認值:printf(" \ n ");繼續;
}
打破;
}
} else {//如果顯示題庫,直接顯示答案。
Printf("答案:%c ",標簽);
}
}
fclose(f);
}
//添加主題
void addQuestion() {
//打開題庫
FILE * f = fopen("question.data "," a ");
char行[1000],標簽;
//輸入問題
line[0]= 0;
while(line[0] == 0) {
Printf("請輸入問題:");
獲取(行);
}
fprintf(f," %s\n ",line);
//輸入四個選項。
for(tag = ' A ';標簽& lt= ' Dtag++) {
line[0]= 0;
while(line[0] == 0) {
Printf("請輸入選項% c:",標簽);
獲取(行);
}
fprintf(f," %s\n ",line);
}
//輸入答案
for(;;) {
Printf("請輸入答案(A,B,C,D):");
switch(tag = getche()) {
案例“A”:
案例“B”:
案例“C”:
案例“D”:
案例“a”:
案例“b”:
案例“c”:
case 'd' : fprintf(f," %c\n ",tag & gt= 97 ?tag - 32:標簽);打破;
默認值:printf(" \ n ");繼續;
}
打破;
}
fclose(f);
}
int main(int argc,char * argv[]) {
showMenu();
for(;;){//循環操作,直到用戶退出系統。
switch(getche()) {
案例“1”:分數= 0;問題(1);打破;
案例“2”:printf(" \ n \ n您的分數是:%d ",score == 0?0:分數* 100/question number);打破;
事例“3”:printf(" \ n \ n ");add question();打破;
案例“4”:問題(0);打破;
案例“5”:出口(0);打破;
默認:printf(" \ n \ n輸入錯誤,請重新輸入:");繼續;
}
printf(" \ n \ n ");
showMenu();
}
}