c++ - 我正在制作一个问答游戏,但我无法让第二个问题正常工作

标签 c++

它的作用是,当您回答第一个问题时,它会给您奖励,然后转到下一个问题。这样做的问题是,当它转到下一个问题时,它不会改变问题,只会改变答案。我试图在“void Question:askQuestion()”部分用正确的词添加第二个问题。抱歉,如果这没有多大意义。

/*
The Great Quiz Show Game

by

Seth A----
*/

#include <iostream>
#include <string>

using namespace std;

int Guess;
int Winnings;

//Define question class
class Question
{
private:
    string Question_Text;
    string Answer_1;
    string Answer_2;
    string Answer_3;
    string Answer_4;
    int Correct_Answer;
    int Prize_Ammount;

    public
        :void setValues(string, string, string, string, string, int, int);
    void askQuestion();
};


int main()
{

    //declare local variables
    int High_Score[5];
    string High_Score_Name[5];

    //initialize local variable
    High_Score[0] = 25000;
    High_Score[1] = 12000;
    High_Score[2] = 7500;
    High_Score[3] = 4000;
    High_Score[4] = 2000;
    High_Score_Name[0] = "Gweneth";
    High_Score_Name[1] = "Adam";
    High_Score_Name[2] = "Nastasia";
    High_Score_Name[3] = "Nicolas";
    High_Score_Name[4] = "Dani";

    cout << "***********************" << endl;
    cout << "*                     *" << endl;
    cout << "* The Great Quiz Show *" << endl;
    cout << "*                     *" << endl;
    cout << "*         by          *" << endl;
    cout << "*                     *" << endl;
    cout << "*      Seth Alpha     *" << endl;
    cout << "*                     *" << endl;
    cout << "***********************" << endl;
    cout << endl;

    //instances of questions
    Question q1;
    Question q2;

    q1.setValues("What does cout do?",
        "Eject a CD",
        "Send text to the printer",
        "Print text on the screen",
        "Play a sound",
        3,
        2500);
    q2.setValues("What are the two sections in a class?",
        "Public and local",
        "Global and local",
        "Global and private",
        "Public and private",
        4,
        5000);

    //ask questions
    q1.askQuestion();
    q2.askQuestion();

    //print HS list
    cout << "High Score List" << endl;
    cout << endl;
    for (int i = 0; i < 5; i++)
    {
        cout << High_Score[i] << "" << High_Score_Name[i] << endl;
    }

}

void Question::setValues(string q, string a1, string a2, string a3, string a4, int ca, int pa)
{
    Question_Text = q;
    Answer_1 = a1;
    Answer_2 = a2;
    Answer_3 = a3;
    Answer_4 = a4;
    Correct_Answer = ca;
    Prize_Ammount = pa;

}

void Question::askQuestion()
{
    cout << endl;
    cout << "What does cout do?" << endl;
    cout << "1." << Answer_1 << endl;
    cout << "2." << Answer_2 << endl;
    cout << "3." << Answer_3 << endl;
    cout << "4." << Answer_4 << endl;
    cout << endl;

    //ask for guess
    cout << "What is your answer?" << endl;
    cin >> Guess;

    //if correct add Prize_Ammount to Winnings
    if (Guess == Correct_Answer)
    {
        cout << endl;
        cout << "You are correct!" << endl;
        Winnings = Winnings + Prize_Ammount
            ; cout << "You just won $" << Prize_Ammount << "!" << endl;
        cout << "Total winnings: $" << Winnings << endl;
        cout << endl;
    }
    else
    {
        cout << endl;
        cout << "You are not correct" << endl;
        cout << "Total winnings: $" << Winnings << endl;
        cout << endl;
    }

}

最佳答案

您的问题是您永远不会更改askQuestion 中的问题。您已将问题硬编码

cout << "What does cout do?" << endl;

你应该拥有的是

cout << Question_Text << endl;

关于c++ - 我正在制作一个问答游戏,但我无法让第二个问题正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524678/

相关文章:

C++ 将字符串类型变量中的单词转换为小写

c++ - child 没有在 fork 中正确终止

C++ 查找连接组件的数量(BFS,邻接矩阵)

c++ - 从数组中的随机位置复制到另一个数组

c++ - GNU 使 : How to modify a file without re-executing rules?

c++ - 如何声明一个模板的模板(一个类)

c++ - 一个变量中的最大指针数

python - opencv python中图像倾斜检测的代码

c++ - 解析来自 MS cl.exe 的编译器输出

c++ - Boehm 垃圾收集器中的精确模式