//Xinnuo Wang CS1A chapter7 #9
/*******************************************************************************
* Grade an Exam
* _____________________________________________________________________________
* The program accepts 20 answers,grades the written portion of the exam and
* displays the total number of correctly answered questions, the total number
* of incorrectly answered questions, and a list showing the question numbers of
* the incorrectly answered questions.
*
* _____________________________________________________________________________
* Input:
* choice : The accepted choices in an array.
* solution : The solutions in an array.
* Output:
* c_num : The total number of correctly answered questions.
* ic_num : The total number of incorrectly answered questions.
*
* ****************************************************************************/
#include <iostream>
using namespace std;
int main( ) {
const int SIZE = 20 ;
char choice[ SIZE] ;
char solution[ SIZE] = { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'C' , 'D' , 'A' , 'D' , 'C' , 'C' , 'B' , 'D' , 'A' } ;
int c_num = 0 ;
int ic_num = 0 ;
int m= 0 ;
int ic_choice[ 20 ] ;
for ( int i = 0 ; i < SIZE; i++ )
{
cout << "Enter your answer of qustion " << i+ 1 ;
cin >> choice[ i] ;
cout << choice[ i] << endl;
// validate check
while ( choice[ i] ! = 'A' && choice[ i] ! = 'B' && choice[ i] ! = 'C' && choice[ i] ! = 'D' )
{
return 0 ;
}
if ( choice[ i] == solution[ i] )
{
c_num ++ ;
}
else
{
ic_num ++ ;
ic_choice[ m] = i+ 1 ;
m++ ;
}
}
// Output Result
if ( c_num >= 15 )
{
cout << "You pass the exam!" << endl;
}
cout << "The total number of correctly answered questions is: " << c_num << endl;
cout << "the total number of incorrectly answered questions is : " << ic_num << endl;
cout << "A list showing the question of the incorrectly answered questions" ;
for ( int n = 0 ; n< ic_num ; n++ )
{
cout << ic_choice[ n] << " " ;
}
return 0 ;
}
Ly9YaW5udW8gV2FuZyAgICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXB0ZXI3ICM5Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEdyYWRlIGFuIEV4YW0KICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogVGhlIHByb2dyYW0gYWNjZXB0cyAyMCBhbnN3ZXJzLGdyYWRlcyB0aGUgd3JpdHRlbiBwb3J0aW9uIG9mIHRoZSBleGFtIGFuZCAKICogZGlzcGxheXMgdGhlIHRvdGFsIG51bWJlciBvZiBjb3JyZWN0bHkgYW5zd2VyZWQgcXVlc3Rpb25zLCB0aGUgdG90YWwgbnVtYmVyIAogKiBvZiBpbmNvcnJlY3RseSBhbnN3ZXJlZCBxdWVzdGlvbnMsIGFuZCBhIGxpc3Qgc2hvd2luZyB0aGUgcXVlc3Rpb24gbnVtYmVycyBvZiAKICogdGhlIGluY29ycmVjdGx5IGFuc3dlcmVkIHF1ZXN0aW9ucy4KICogCiAqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIElucHV0OgogKiAgICBjaG9pY2UgICAgICA6IFRoZSBhY2NlcHRlZCBjaG9pY2VzIGluIGFuIGFycmF5LgogKiAgICBzb2x1dGlvbiAgICA6IFRoZSBzb2x1dGlvbnMgaW4gYW4gYXJyYXkuCiAqIE91dHB1dDoKICogICAgY19udW0gICAgICAgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGNvcnJlY3RseSBhbnN3ZXJlZCBxdWVzdGlvbnMuCiAqICAgIGljX251bSAgICAgIDogVGhlIHRvdGFsIG51bWJlciBvZiBpbmNvcnJlY3RseSBhbnN3ZXJlZCBxdWVzdGlvbnMuCiAqIAogKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWNvbnN0IGludCBTSVpFID0gMjA7CgljaGFyIGNob2ljZVtTSVpFXTsKCWNoYXIgc29sdXRpb25bU0laRV0gPSB7J0InLCAnRCcsICdBJywgJ0EnLCAnQycsICdBJywgJ0InLCAnQScsICdDJywgJ0QnLCAnQicsICdDJywgJ0QnLCAnQScsICdEJywgJ0MnLCAnQycsICdCJywgJ0QnLCAnQSd9OwoJaW50IGNfbnVtID0gMDsKCWludCBpY19udW0gPSAwOwoJaW50IG09IDA7CglpbnQgaWNfY2hvaWNlWzIwXTsKCWZvcihpbnQgaSA9IDA7IGkgPCBTSVpFOyBpKyspCgl7CgkJY291dCA8PCAiRW50ZXIgeW91ciBhbnN3ZXIgb2YgcXVzdGlvbiAiIDw8IGkrMSA7CgkJY2luPj4gY2hvaWNlW2ldOwoJCWNvdXQgPDwgY2hvaWNlW2ldIDw8IGVuZGw7CgkJLy8gdmFsaWRhdGUgY2hlY2sKCQl3aGlsZShjaG9pY2VbaV0hPSAnQScmJmNob2ljZVtpXSE9ICdCJyYmY2hvaWNlW2ldIT0gJ0MnJiZjaG9pY2VbaV0hPSAnRCcpCgkJewoJCQlyZXR1cm4gMDsKCQl9CgkJaWYoY2hvaWNlW2ldID09IHNvbHV0aW9uW2ldKQoJCXsKCQkJY19udW0gKys7CgkJfQoJCWVsc2UgCgkJewoJCQlpY19udW0gKys7CgkJCWljX2Nob2ljZVttXT1pKzE7CgkJCW0rKzsKCQl9Cgl9CgkvLyBPdXRwdXQgUmVzdWx0CglpZiAoY19udW0gPj0xNSkKCXsKCQljb3V0PDwgIllvdSBwYXNzIHRoZSBleGFtISI8PCBlbmRsOwoJfQoJCgljb3V0IDw8ICJUaGUgdG90YWwgbnVtYmVyIG9mIGNvcnJlY3RseSBhbnN3ZXJlZCBxdWVzdGlvbnMgaXM6ICIgPDwgY19udW0gPDwgZW5kbDsKCWNvdXQgPDwgInRoZSB0b3RhbCBudW1iZXIgb2YgaW5jb3JyZWN0bHkgYW5zd2VyZWQgcXVlc3Rpb25zIGlzIDogIiA8PCBpY19udW0gPDwgZW5kbDsKCWNvdXQgPDwgIkEgbGlzdCBzaG93aW5nIHRoZSBxdWVzdGlvbiBvZiB0aGUgaW5jb3JyZWN0bHkgYW5zd2VyZWQgcXVlc3Rpb25zIjsKCglmb3IgKGludCBuID0gMDsgbjwgaWNfbnVtIDsgbisrKQoJewoJCWNvdXQ8PCBpY19jaG9pY2Vbbl08PCAiICIgOwoJfQoJcmV0dXJuIDA7Cn0=