2015-11-12 20 views
0

機動車管理局要求您編寫一個程序, 對駕駛執照考試的書面部分進行評分。考試有 有20個選擇題,其答案分別顯示在下面的列表中; 1 ... 20 ;C++ - 使用數組

A B D A B B B C C D A C C C D A B D D B 

假設一共有10名學生參加考試的每一天。你的程序應該在數組中存儲上面顯示的正確答案。 然後,它應該詢問每個學生的答案爲20個問題,而 答案應該存儲在另一個數組中。回答結果爲 後,程序應顯示一條消息,指示學生是否通過了考試(學生必須正確回答20個問題中的18個 才能通過考試)。然後,應該顯示共 共計 正確回答的問題數量和 錯誤地回答了每個學生的問題總數。你的程序 也會顯示在給定的 當天通過測試的學生的百分比。

#include <iostream> 
using namespace std; 

int main() 
{ 
    // Declare variables and constants 
    int correctAnswers = 0; 
    const int QUESTIONS = 20; 
    char answers[QUESTIONS] = {'A', 'B', 'D', 'A', 'B', 'B', 'B', 'C', 'C', 'D', 'A', 'C', 'C', 'C', 'D', 'A', 'B', 'D', 'D', 'B'}; 

    for(int count = 0; count < QUESTIONS; count++) 
    { 
     cout << "Please enter your answer for Question " << (count + 1) << endl; 
     cin >> answers; 
    } 
    if(answers[0] == 'A') 
    { 
     correctAnswers++; 
    } 
    else if(answers[1] = 'B') 
    { 
     correctAnswers++; 
    } 

    return 0; 
}  

所以我已經開始寫了上面列出的問題陳述這段代碼。這是我迄今爲止所擁有的。我開始爲每個答案作出陳述,如果他們輸入了正確的答案,結果會將1加到計數器中。我的問題是,是否有更好的方式來獲取用戶的答案並檢查它們是否正確,或者是我現在正在做什麼,最好的方法呢?

+2

首先,您需要將每個答案存儲在數組的相應成員中。 –

+0

cin >>答案;只是摧毀了你的好答案陣列。你需要將答案存儲在不同的數組中(例如student_asnwers) – pm100

回答

0

在說明書中必須存儲陣列中的正確答案列表。每個學生的答案都必須放在一個陣列中。獲得學生的答案後,您可以遍歷答案並將其與預期答案進行比較。

char correct_answers[QUESTIONS] = {'A', 'B', 'D','A','B', 'B','B','C','C', 'D','A','C' ,'C' , 'C' ,'D' ,'A' ,'B','D', 'D', 'B'}; 
    char answers[QUESTIONS]; 
    for(int count = 0; count < QUESTIONS; count++) { 
     cout << "Please enter your answer for Question " << (count + 1) << endl; 
     cin >> (answers+count); 
    } 

    for(int count = 0; count < QUESTIONS; count++) { 
     if(answers[count] == correct_answers[count]) { 
      correctAnswers++; 
     } 
    } 
-1

讓我們看看..你想在別的東西,但不是答案,因爲那麼你覆蓋你設置爲答案的關鍵!

當你看看你檢查答案[count] == inputValue從cin。

基本上..一些僞代碼..

char inputValue; 

loop .. 
    cin << inputValue; 
    answers[count] == inputValue ... 
     Then ++correctAnswer ...