1樓:匿名使用者
分析:問題庫(qas)用外部的配置檔案儲存,每次執行前先載入庫中已經建立的問題。然後再進入操作選擇。
完整**如下:
/*1. 暫時不考慮漢字;
2. 可以用連結串列優化;
3. 將每一種操作封裝成一個函式;
*/#include
#include
#include
#include
// 字串最大長度
#define max_str_len 2048
// 題庫上限
#define max_qas_len 1024
// 配置檔案路徑
#define qas_file_path "d:\\qasconfig.txt"
// 問題結點
typedef struct tagqasnode
qasnode;
// 問題庫
qasnode *g_qaslib[max_qas_len];
int g_qasindex = 0;
// 新增
bool inserttolib(char *pquestion, char *panswer, double score)
// 隨機一個不重複的序號
int getquestionindex()
}return retval;
int main()
// 載入已有的qas
fseek(pstream, 0l, seek_end);
int filesize = ftell(pstream);
fseek(pstream, 0l, seek_set);
while ( !feof(pstream) && filesize )
, tempa[max_str_len] = ;
double temps = 0.0;
fscanf_s(pstream, "%s", tempq, max_str_len);
fscanf_s(pstream, "%s", tempa, max_str_len);
inserttolib(tempq, tempa, temps);}}
// 累計得分
double totalsocore = 0.0;
int currentindex = -1;
// 獲取操作型別
int optype = -1;
printf_s("請選擇操作型別:\n 1. 回答問題;\n 2.
檢視分數;\n 3. 新增新問題;\n 4. 檢視問題庫裡的問題和答案;\n 0.
退出系統;\n\n");
while (optype != 0)
break;
case 1:
srand((unsigned)time(null));
currentindex = getquestionindex();
if (currentindex != -1)
;fflush(stdin);gets_s(tempa, max_str_len);
if (strcmp(tempa, g_qaslib[currentindex]->answer) == 0)
else
}else
}break;
case 2:
else
}break;
case 3:
, tempa[max_str_len] = ;
double temps = 0.0;
printf_s("請輸入新問題:\n");
fflush(stdin);gets_s(tempq, max_str_len);
printf_s("請輸入對應的答案:\n");
fflush(stdin);gets_s(tempa, max_str_len);
printf_s("請輸入對應的分值:\n");
inserttolib(tempq, tempa, temps);
// 新增到題庫
fprintf_s(pstream, "%s %s %f\n", tempq, tempa, temps);}}
break;
case 4:
for (int i=0; iquestion, g_qaslib[i]->answer, g_qaslib[i]->score);}}
break;
default:
break;}}
printf("\n");
return 0;
}執行起來後先建立問題庫!
2樓:匿名使用者
天涯其實一點也不遠。。。因為人已經在天涯。。。天涯還遠嗎。。。」
3樓:匿名使用者
這個似乎太簡單了,本地模組資料庫,用結構體連結串列做,呵呵。
c語言做一個小系統,先設計一個選單程式,再具體寫出。
4樓:
#include
#include
#define num1 20
#define num2 20
#define num3 10
#define n 4
int num=0;
typedef struct studentstudent;
void newstring()
if(u[m]==0)
} }
}printf("%s\n",u);
}void fun()
printf("the result is %d\n",num);
}void studentgoal()
score=score/4.0;
printf("score=%f\n",score);
}void goodbye()
void main()
printf("do you want to continue(y/n)?");
scanf("%c",&start);
getchar();}}
c語言程式設計題,求大神幫忙,c語言程式設計題求幫忙!!
include void main int i,j,m,s 0 scanf d m if m 6 printf no else for i m i for j 1 j include include define n 10000 int main c語言程式設計題求幫忙!是初學者嗎 這樣的問題最好說...
求問c語言大神,求問c語言大神 int a 3 4 那麼a, a, a是什麼型別?有什麼區別?
a是指陣列的首地址,是個地址值 a是陣列第一個位置的元素值,是陣列中的數值 a不能用於取陣列的地址,本身a就是地址了,不能再次取地址,否則得到的值是錯誤的。但是可以取變數的地址。二維陣列陣列名為陣列指標.所以a型別為 int 4 a就是a 0 型別為int,等效於const int a是二維陣列指標...
c語言程式設計問題,求大神相助,c語言程式設計題人口問題求大神幫助 我寫了好多遍一直出不了結果
include include char my strcat char str1,char str2 while str2 0 str 0 return p int main 可以看一下兩個字元的程式 void main int i,j,k printf 請輸入字串1 scanf s s print...