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;
}运行结果: