//Nathan Dominguez CSC5 Chapter 7, P. 446, #9
//
/*******************************************************************************
*
* Display Driver Exam Results
* _____________________________________________________________________________
* The program will compute the number of correct and incorrect answers of the
* exam, and display the number of questions answered incorrectly, correctly, if
* the user pass or failed the exam, and which questions were answered
* incorrectly.
* _____________________________________________________________________________
* INPUT
* student[grade] : student's choice
* size : holds size for arrays
* key[i] : key to compare for correct answers
*
* OUTPUT
* correct : number of correct answers
* incorrect : number of incorrect answers
* wrongNumber[questions] : holds questions with incorrect answers
*
******************************************************************************/
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
const int size = 20 ; //array size
char key[ size] = { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' ,
'C' , 'D' , 'A' , 'D' , 'C' , 'C' , 'B' , 'D' , 'A' } ; //array list
char choice[ size] ; //answer chosen
int correct = 0 ; //OUTPUT - number of answers chosen correctly
int incorrect = 0 ; //OUTPUT - number of answers chosen incorrectly
int incorrectQ[ size] ; //number of incorrect questions stored
//
//loop program 20 times
for ( int i = 0 ; i < size; i++ )
{
cout << "what is your choice for question " << ( i+ 1 ) << "?: " ;
cin >> choice[ i] ;
while ( choice[ i] ! = 'A' && choice[ i] ! = 'B'
&& choice[ i] ! = 'C' && choice[ i] ! = 'D' )
{
//display error message
cout << endl << "Invalid entry, please try again." << endl;
cin >> choice[ i] ;
}
cout << choice[ i] << endl;
//compute which answers and correct and incorrect
if ( choice[ i] == key[ i] )
correct++ ;
else
{
incorrect++ ;
incorrectQ[ incorrect- 1 ] = ( i+ 1 ) ;
}
}
//ouput passed for failed
if ( correct >= 15 )
cout << "EXAM PASSED" << endl;
else
cout << "EXAM FAILED" << endl;
//ouput final scores
cout << "amount correct: " << correct << endl;
cout << "amount incorrect: " << incorrect << endl;
cout << "incorrect questions: " ;
for ( int i = 0 ; i < incorrect; i++ )
{
cout << incorrectQ[ i] << ", " ;
}
return 0 ;
}
Ly9OYXRoYW4gRG9taW5ndWV6ICAgICAgICAgICAgICAgICAgICBDU0M1ICAgICAgICAgICAgICAgICBDaGFwdGVyIDcsIFAuIDQ0NiwgIzkKLy8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogCiAqIERpc3BsYXkgRHJpdmVyIEV4YW0gUmVzdWx0cwogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogKiBUaGUgcHJvZ3JhbSB3aWxsIGNvbXB1dGUgdGhlIG51bWJlciBvZiBjb3JyZWN0IGFuZCBpbmNvcnJlY3QgYW5zd2VycyBvZiB0aGUgCiAqIGV4YW0sIGFuZCBkaXNwbGF5IHRoZSBudW1iZXIgb2YgcXVlc3Rpb25zIGFuc3dlcmVkIGluY29ycmVjdGx5LCBjb3JyZWN0bHksIGlmCiAqIHRoZSB1c2VyIHBhc3Mgb3IgZmFpbGVkIHRoZSBleGFtLCBhbmQgd2hpY2ggcXVlc3Rpb25zIHdlcmUgYW5zd2VyZWQgCiAqIGluY29ycmVjdGx5LgogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogKiBJTlBVVCAKICogc3R1ZGVudFtncmFkZV0gICAgICAgICAgOiBzdHVkZW50J3MgY2hvaWNlCiAqIHNpemUJCQkgICAgICAgICAgIDogaG9sZHMgc2l6ZSBmb3IgYXJyYXlzCiAqIGtleVtpXQkJICAgICAgICAgICA6IGtleSB0byBjb21wYXJlIGZvciBjb3JyZWN0IGFuc3dlcnMKICogCiAqIE9VVFBVVAogKiBjb3JyZWN0ICAgICAgICAgICAgICAgICAgOiBudW1iZXIgb2YgY29ycmVjdCBhbnN3ZXJzCiAqIGluY29ycmVjdCAgICAgICAgICAgICAgICA6IG51bWJlciBvZiBpbmNvcnJlY3QgYW5zd2VycwogKiB3cm9uZ051bWJlcltxdWVzdGlvbnNdICAgOiBob2xkcyBxdWVzdGlvbnMgd2l0aCBpbmNvcnJlY3QgYW5zd2VycwogKiAKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgbWFpbigpCnsKCWNvbnN0IGludCBzaXplID0gMjA7ICAgICAvL2FycmF5IHNpemUKCWNoYXIga2V5W3NpemVdID0geydCJywgJ0QnLCAnQScsICdBJywgJ0MnLCAnQScsICdCJywgJ0EnLCAnQycsICdEJywgJ0InLCAKCQkJJ0MnLCAnRCcsICdBJywgJ0QnLCAnQycsICdDJywgJ0InLCAnRCcsICdBJ307ICAgIC8vYXJyYXkgbGlzdAoJY2hhciBjaG9pY2Vbc2l6ZV07ICAgICAgICAvL2Fuc3dlciBjaG9zZW4KCWludCBjb3JyZWN0ID0gMDsgICAgICAgICAgLy9PVVRQVVQgLSBudW1iZXIgb2YgYW5zd2VycyBjaG9zZW4gY29ycmVjdGx5CglpbnQgaW5jb3JyZWN0ID0gMDsgICAgICAgIC8vT1VUUFVUIC0gbnVtYmVyIG9mIGFuc3dlcnMgY2hvc2VuIGluY29ycmVjdGx5CglpbnQgaW5jb3JyZWN0UVtzaXplXTsgICAgIC8vbnVtYmVyIG9mIGluY29ycmVjdCBxdWVzdGlvbnMgc3RvcmVkCiAgLy8KICAvL2xvb3AgcHJvZ3JhbSAyMCB0aW1lcwpmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykKewoJY291dCA8PCAid2hhdCBpcyB5b3VyIGNob2ljZSBmb3IgcXVlc3Rpb24gIiA8PCAoaSsxKSA8PCAiPzogIjsKCWNpbiAgPj4gY2hvaWNlW2ldOwoJd2hpbGUgKGNob2ljZVtpXSAhPSAnQScgJiYgY2hvaWNlW2ldICE9ICdCJyAKCQkmJiBjaG9pY2VbaV0gIT0gJ0MnICYmIGNob2ljZVtpXSAhPSAnRCcpCgl7CgkJLy9kaXNwbGF5IGVycm9yIG1lc3NhZ2UKCQljb3V0IDw8IGVuZGwgPDwgIkludmFsaWQgZW50cnksIHBsZWFzZSB0cnkgYWdhaW4uIiA8PCBlbmRsOwoJCWNpbiAgPj4gY2hvaWNlW2ldOwoJfQoJY291dCA8PCBjaG9pY2VbaV0gPDwgZW5kbDsKICAgIC8vY29tcHV0ZSB3aGljaCBhbnN3ZXJzIGFuZCBjb3JyZWN0IGFuZCBpbmNvcnJlY3QKCWlmIChjaG9pY2VbaV0gPT0ga2V5W2ldKQoJCWNvcnJlY3QrKzsKCWVsc2UKCXsKCQlpbmNvcnJlY3QrKzsKCQlpbmNvcnJlY3RRW2luY29ycmVjdC0xXSA9IChpKzEpOwoJfQp9CiAvL291cHV0IHBhc3NlZCBmb3IgZmFpbGVkCmlmIChjb3JyZWN0ID49IDE1KQoJY291dCA8PCAiRVhBTSBQQVNTRUQiIDw8IGVuZGw7CmVsc2UKCWNvdXQgPDwgIkVYQU0gRkFJTEVEIiA8PCBlbmRsOwogLy9vdXB1dCBmaW5hbCBzY29yZXMKY291dCA8PCAiYW1vdW50IGNvcnJlY3Q6ICIgPDwgY29ycmVjdCA8PCBlbmRsOwpjb3V0IDw8ICJhbW91bnQgaW5jb3JyZWN0OiAiIDw8IGluY29ycmVjdCA8PCBlbmRsOwpjb3V0IDw8ICJpbmNvcnJlY3QgcXVlc3Rpb25zOiAiOwpmb3IgKGludCBpID0gMDsgaSA8IGluY29ycmVjdDsgaSsrKQp7Cgljb3V0IDw8IGluY29ycmVjdFFbaV0gPDwgIiwgIjsKfQpyZXR1cm4gMDsKfQo=