C++程序:想设计一个类似选择题的小游戏。

我认为您需要的是类似如下的代码:

#包含?& ltiostream & gt

#包含?& ltvector & gt

#包含?& lt字符串& gt

使用?命名空间?std

//?标题

班级?问题

{

公共:

问题(const?字符串?& amp问题?const?字符串?& ampstrOption)

{

m_strQuestion?=?问题;

m_strOption?=?strOption

}

//?显示问题

作废?ShowQuestion()?常数

{

cout?& lt& lt?m_strQuestion?& lt& lt?endl

cout?& lt& lt?m_strOption?& lt& lt?endl

cout?& lt& lt?请输入您的答案:';

int?n结果呢?=?-1;

cin?& gt& gt?n结果;

回答问题(n结果?-?1);

}

//?设置下一个问题

作废?AddNextQuestion(问题?*pNextQuestion)

{

m _ vnextquestion . push _ back(pNextQuestion);

}

//?设置最后一个问题的结果。

作废?AddResult(const?字符串?& ampstrResult)

{

m _ vresults . push _ back(strResult);

}

私人:

//?直接输出答案,用在最后一题。

作废?ShowResult(int?nAnswer)?常数

{

如果?(0?& gt?nAnswer?||?nAnswer?& gt=?(int)m_vResults.size())

返回;

cout?& lt& lt?m_vResults[nAnswer]?& lt& lt?endl

}

//?设置答案

作废?AnswerQuestion(int?nAnswer)?常数

{

如果?(!m_vResults.empty())

{

show result(nan swer);

返回;

}

如果?(0?& gt?nAnswer?||?nAnswer?& gt=?(int)m_vNextQuestion.size())

返回;

//?显示下一个问题

如果?(nullptr?!=?m_vNextQuestion[nAnswer])

m _ vNextQuestion[nans wer]-& gt;show question();

}

私人:

字符串?m _ strQuestion?//?问题本身。

字符串?m _ strOption?//?回答选项

向量& lt问题* & gt?m _ vNextQuestion//?下一个问题选项集

向量& lt字符串& gt?m _ vResults//?结果集用于最后一个问题。

};

//?

//?问题1,Y-& gt;2,N->三

//?问题2,Y-& gt;4,N->三

//?问题3,Y-& gt;5,N->六

//?问题4,Y-& gt;6,N->五

//?问题5,问题6,直接输出答案。

int?_tmain(int?argc,?_TCHAR*?argv[])

{

//?构造问题

问题?*pQuestion1?=?新的?问题("问题1:balabala ",“1,是吗?2、否”);

问题?*pQuestion2?=?新的?问题(“问题2:balabala”,?“1,是吗?2、否”);

问题?*pQuestion3?=?新的?问题(“问题3:balabala”?“1,是吗?2、否”);

问题?*pQuestion4?=?新的?问题(“问题4:balabala”,?“1,是吗?2、否”);

问题?*pQuestion5?=?新的?问题("问题5:balabala ",“1,是吗?2、否”);

问题?*pQuestion6?=?新的?问题("问题6:balabala ",“1,是吗?2、否”);

//?问题1,Y-& gt;2,N->三

p question 1->;add next question(p question 2);

p question 1->;add next question(p question 3);

//?问题2,Y-& gt;4,N->三

问题2-& gt;add next question(p question 4);

问题2-& gt;add next question(p question 3);

//?问题3,Y-& gt;5,N->六

问题3-& gt;add next question(p question 5);

问题3-& gt;add next question(pquestion 6);

//?问题4,Y-& gt;6,N->五

问题4-& gt;add next question(pquestion 6);

问题4-& gt;add next question(p question 5);

//?问题5,问题6,直接输出答案。

问题5-& gt;AddResult("答案1 ");

问题5-& gt;AddResult("答案2 ");

pquestion 6->;AddResult("答案3 ");

pquestion 6->;AddResult("答案4 ");

//?开始提问

p question 1->;show question();

系统(“暂停”);

//?释放内存

删除?pquestion 1;

删除?pQuestion2

删除?pQuestion3

删除?pQuestion4

删除?pQuestion5

删除?pQuestion6

回归?0;

}运行结果: