A Console-Based
Multiple Choice Question


Programming a Multiple-Choice Question

 

Practical Learning: Introduction to Exceptions

  1. Create a new Console Application in a new folder named BibleQuiz
  2. Create a new C++ source file named Exercise
  3. Change the content of the file with the following:
     
    #include <algorithm>
    #include <vector>
    #include <functional>
    #include <iostream>
    using namespace std;
    #include <time.h>
    
    const int NbrOfQuestions = 22;
    int AskQuestion(int q, double &m);
    void Verify(int);
    
    int main(int argc, char* argv[])
    {
     	int i, n;
    	double Average, Sum = 0;
    	typedef vector<int> IntVector;
    	typedef IntVector::iterator IntVectorIt;
    
    	IntVector QuestNbr(NbrOfQuestions);
    	IntVectorIt Start, End;
    
    	for(i = 0; i < NbrOfQuestions; i++)
    		QuestNbr[i] = i;
    
    	Start = QuestNbr.begin();
    	End = QuestNbr.end();
    
    	srand(time(0));
        random_shuffle(Start, End);
    
    	cout << " - Multiple Choice Question -\n\n";
    	do {
    		cout << "How many questions (1-20)? ";
    		cin >> n;
    	} while(n < 1 || n > 20);
    
        system("cls");
    
    	for(i = 0; i < n; i++)
    	{
            system("cls");
    		cout << "Question " << i + 1 << ": ";
    		AskQuestion(QuestNbr[i], Sum);
            getchar();
    	}
    
        system("cls");
    	Average = (Sum / n) * 100;
    	cout << "Answers Overview\n";
    	cout << "Your answers were";
    
    	cout << "\nGood Answers: " << Sum;
    	cout << "\nAverage:      " << Average<< "%";
    
    	cout << "\n\n";
        return 0;
    }
    
    int AskQuestion(int q, double &m)
    {
    	char Answer[10];
    
    	switch(q)
    	{
    	case 0:
    		cout << "\nWho was Jesus Christ\'s mother ? ";
    		cout << "\n1. Leah"
    			 << "\n2. Marthe"
    			 << "\n3. Mary"
    			 << "\n4. salome"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "\nGood Answer";
    			cout << "\nRef: Lk 1:26-31";
    			m += 1;
    		}
    		else
            {
                cout << "\nWrong Answer!";
    			Verify(0);
            }
    		break;
    
    	case 1:
    		cout << "\nHow many books are in the canonical Bible?";
    		cout << "\n1. 33"
    			 << "\n2. 44"
    			 << "\n3. 55"
    			 << "\n4. 66"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '4')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else
            {
                cout << "Wrong Answer!";
    			Verify(1);
            }
    		break;
    
    	case 2:
    		cout << "\nWhat is the first book of the Bible ?";
    		cout << "\n1. Malachi"
    			 << "\n2. Isaiah"
    			 << "\n3. Revelation"
    			 << "\n4. Genesis"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '4')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else
            {
                cout << "Wrong Answer!";
    			Verify(2);
            }
    		break;
    
    	case 3:
    		cout << "\nWhich one of Jacob\'s sons was Joseph\'s "
                 << "brother, his own mother\'s son ?";
    		cout << "\n1. Levi"
    			 << "\n2. Judah"
    			 << "\n3. Asher"
    			 << "\n4. Benjamin"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '4')
    		{
    			cout << "\nGood Answer";
    			cout << "\nRef: Ge 43:29";
    			m += 1;
    		}
    		else
            {
                cout << "Wrong Answer!";
    			Verify(3);
            }
    		break;
    
    	case 4:
    		cout << "\nWhat happened to Ananias and Sapphira after they lied "
                 << "about the money\nthey collected from selling the land ?";
    		cout << "\n1. They died"
    			 << "\n2. They got sick"
    			 << "\n3. They were abandoned by the other discples in the bush"
    			 << "\n4. They were drowned in the sea of Galilee"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '1')
    		{
    			cout << "\nGood Answer";
    			cout << "\nRef: Ac 5:1-11";
    			m += 1;
    		}
    		else          
            {
                cout << "Wrong Answer!";
    			Verify(4);
            }
    		break;
    
    	case 5:
    		cout << "\nHow many apostles did Jesus Christ have?";
    		cout << "\n1. 3"
    			 << "\n2. 6"
    			 << "\n3. 9"
    			 << "\n4. 12"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '4')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else            
            {
                cout << "Wrong Answer!";
    			Verify(5);
            }
    		break;
    
    	case 6:
    		cout << "\nWhat was the craftiest of the wild animals "
                 << "the Lord had made?";
    		cout << "\n1. The dragon"
    			 << "\n2. The serpent"
    			 << "\n3. The lion"
    			 << "\n4. The Dove"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else        
            {
                cout << "Wrong Answer!";
    			Verify(6);
            }
    		break;
    
    	case 7:
    		cout << "\nTo which disciple did Jesus promise the key\n"
                 << "of the kingdom of heaven ?";
    		cout << "\n1. John"
    			 << "\n2. Peter"
    			 << "\n3. Philip"
    			 << "\n4. Paul"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else        
            {
                cout << "Wrong Answer!";
    			Verify(7);
            }
    		break;
    
    	case 8:
    		cout << "\nHow does Paul address Timothy in 1 Timothy?";
    		cout << "\n1. My disciple"
    			 << "\n2. My brother"
    			 << "\n3. My son"
    			 << "\n4. My father"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else              
            {
    			Verify(8);
                cout << "\nWrong Answer!";
            }
            cout << endl;
    		break;
    
    	case 9:
    		cout << "\nWho was the father of the 12 patriarchs?";
    		cout << "\n1. Noah"
    			 << "\n2. Abraham"
    			 << "\n3. Isaac"
    			 << "\n4. Jacob"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '4')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else             
            {
                cout << "\nWrong Answer!";
    			Verify(9);
    
            }
            cout << endl;
    		break;
    
    	case 10:
    		cout << "\nWho was the firstborn son of Adam and Eve?";
    		cout << "\n1. Abel"
    			 << "\n2. Cain"
    			 << "\n3. Shem"
    			 << "\n4. Japhet"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else             
            {
                cout << "Wrong Answer!";
    			Verify(10);
            }
            cout << endl;
    		break;
    
    	case 11:
    		cout << "\nTo whom did James address his book?";
    		cout << "\n1. The 12 tribes"
    			 << "\n2. To those who have received faith"
    			 << "\n3. To the believers"
    			 << "\n4. To Epaphroditus"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '1')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else                
            {
                cout << "Wrong Answer!";
    			Verify(11);
            }
            cout << endl;
    		break;
    
    	case 12:
    		cout << "\nWhat did Micah from the hill country of Ephraim "
                 << "do of the\nyoung Levite who came to stay with him?";
    		cout << "\n1. He taught him to raise the sheep"
    			 << "\n2. He made him a priest"
    			 << "\n3. He killed him"
    			 << "\n4. He sent him away"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "\nGood Answer\n";
    			m += 1;
    		}
    		else               
            {
                cout << "\nWrong Answer!";
    			Verify(12);
            }
            cout << endl;
    		break;
    
    	case 13: 
    		cout << "\nThe account of Noah starts on";
    		cout << "\n1. Ge 5:6"
    		     << "\n2. Ge 6:9"
    		     << "\n3. Ge 8:15"
    		     << "\n4. Ge 9:18"
    		     << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else            
            {
                cout << "Wrong Answer!";
    			Verify(13);
            }
    		break;
    
    	case 14:
    		cout << "\nIn the parable of the weed, what does the field represent?";
    		cout << "\n1. The Ocean"
    			 << "\n2. The world"
    			 << "\n3. The kingdom"
    			 << "\n4. The Earth"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else                
            {
                cout << "Wrong Answer!";
    			Verify(14);
            }
    		break;
    
    	case 15:
    		cout << "\nHow many people (including Noah) got in the ark he built?";
    		cout << "\n1. 6"
    			 << "\n2. 7"
    			 << "\n3. 8"
    			 << "\n4. 9"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '2')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else                
            {
                cout << "Wrong Answer!";
    			Verify(15);
            }
    		break;
    
    	case 16:
    		cout << "\nWho was John the Baptist\'s mother?";
    		cout << "\n1. Salome"
    			 << "\n2. mary"
    			 << "\n3. Elizabeth"
    			 << "\n4. Rebecah"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "Good Answer\n";
    			m += 1;
    		}
    		else        
            {
                cout << "Wrong Answer!";
    			Verify(16);
            }
    		break;
    
    	case 17:
    		cout << "\nIn how many pieces did the young Levite whose"
                 << "concubine was raped by the men of Gibeah cut her?";
    		cout << "\n1. 3"
    			 << "\n2. 7"
    			 << "\n3. 12"
    			 << "\n4. 36"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else
            {
                cout << "\nWrong Answer!";
    			Verify(17);
            }
    		break;
    
    	case 18:
    		cout << "\n\"If anyone would come after me, he must deny\n"
                 << "himself and take up his cross and follow me.\"";
            cout << "\nWho said or wrote it ?";
    		cout << "\n1. Moses"
    			 << "\n2. John the Baptist"
    			 << "\n3. Jesus Christ"
    			 << "\n4. Paul"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else               
            {
                cout << "\nWrong Answer!";
    			Verify(18);
            }
    		break;
    
    	case 19:
    		cout << "\nHow old was Abraham when he died?";
    		cout << "\n1. 175"
    			 << "\n2. 230"
    			 << "\n3. 310"
    			 << "\n4. 425"
    			 << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '1')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else
            {
                cout << "\nWrong Answer!";
    			Verify(19);
            }
    		break;
    
    	case 20:
    		cout << "\nWho said or wrote, \" You are the light of the world \"?";
    		cout << "\n1. Moses"
    		     << "\n2. Paul"
    		     << "\n3. Jesus"
    		     << "\n4. John"
    		     << "\nAnswer: ";
    		cin >> Answer;
    		if(Answer[0] == '3')
    		{
    			cout << "\nGood Answer";
    			m += 1;
    		}
    		else
            {
                cout << "\nWrong Answer!";
    			Verify(20);
            }
    		break;
    
        case 21:
    	cout << "\nFor how long did the rain fall on the earth\n"
    	     << "while Noah and his family were in the ark he built?";
    	cout << "\n1. 30 days"
    	     << "\n2. 40 days"
    	     << "\n3. 50 days"
    	     << "\n4. 60 days"
    	     << "\nAnswer: ";
    	cin >> Answer;
    	if(Answer[0] == '2')
    	{
    		cout << "\nGood Answer";
    		cout << "\nRef: Ge 7:12";
    		m += 1;
    	}
    	else             
    	{
    	    cout << "\nWrong Answer!";
    	    Verify(20);
    	}
    	break;
        }
    
        cout << "\nPress Enter for next question...";
        getchar();
    
        return Answer[q];
    }
    
    void Verify(int t)
    {
    	switch(t)
    	{
    	case 0:
    		cout << "\nLk 1:26-31";
            cout << "\nLuke gives the name of Jesus\' mother as Mary";
    		break;
    	case 1:
    		cout << "\nYou can get the right answer by counting the books";
    		break;
    	case 2:
    		cout << "\nYou can check the answer by opening the Bible";
    		break;
    	case 3:
    		cout << "\nRachel was Jacob\'s wife and gave birth to two sons";
            cout << "\nJoseph was born in Ge 30:22-24";
            cout << "\nBenjamin, was Rachel\'s second son";
    		break;
    	case 4:
    		cout << "\nYou can find the reference at Acts 5:1-11\n";
    		break;
    	case 5:
    		cout << "\nWhen on Earth, Jesus Christ had 12 apostles";
            cout << "\nYou can find a reference at Lk 6:13";
    		break;
    	case 6:
    		cout << "\nThe serpent was the craftiest animal";
            cout << "\nThe reference can be found at Ge 3:1";
    		break;
    	case 7:
    		cout << "\nPeter was promised the key to the kingdom of heaven";
            cout << "\nThis can be checked from Mt 16:19";
    		break;
    	case 8:
    		cout << "\nIn 1Tm 1:2, Paul addresses Timothy as \"My true son\"";
    		break;
    	case 9:
    		cout << "\nThe father of the 12 patriarchs was Jacob ";
            cout << "as indicated in Acts 7:8";
    		break;
    	case 10:
    		cout << "\nAccording to Ge 4:1, Cain was Adam\'s first son";
            cout << "\nAdam\'s second son was Abel, as found in Ge 4:2";
    		break;
    	case 11:
    		cout << "\nJames addressed his book to the 12 tribes";
            cout << "\nReference: James 1:1";
    		break;
    	case 12:
    		cout << "\nMicah made the young man his priest";
            cout << "\nReference: Judges 17:12";
    		break;
    	case 13:
    		cout << "\nThe story of Noah is in Genesis";
            cout << "\nThe reference can be found at Ge 6:9";
    		break;
    	case 14:
    		cout << "\nIn the parable of the weed, the field"
                 << "represents the world";
    		cout << "\nRef: Mt 13:38";
    		break;
    	case 15:
            cout << "\nNoah was married: 2 people";
            cout << "\nNoah had 3 sons and each was married: 6 people";
            cout << "\n2 + 6 means there were 8 people in the arch.";
    		cout << "\nRef: Ge 7:7";
    		break;
    	case 16:
    		cout << "\nElizabeth was John The Baptiste mother";
            cout << "\nRef: Lk 1:36-37";
    		break;
    	case 17:
    		cout << "\nThis story is accounted in Judges 19";
            cout << "\nRef: Jg 19:29";
    		break;
    	case 18:
    		cout << "\nJesus said that in Mt 16:24";
    		break;
    	case 19:
    		cout << "\nAbraham lived 175 years and died";
            cout << "\nThis is indicated in Ge 25:7";
    		break;
    	case 20:
    		cout << "\nThis is quote from The Sermon on the Mount";
    		cout << "\nRef: Mt 5:14"; 
    	case 21:
    		cout << "\nwhile Noah and his family were in the ark he built\n"
                 << "the \"rain fell on the earth 40 days and 40 nights.";
            cout << "\nRef: Ge 7:12";
    		break;
    	}
    }
  4. Test the program.
 

  Copyright © 2003 FunctionX