#include <iostream>
#include <string>
#include <vector>
#include <map>
class QuizQuestion {
public :
QuizQuestion( const std:: string & question, const std:: vector < std:: pair < std:: string , std:: string >> & choices_with_letters, char correct_answer_letter)
: question_( question) , choices_( choices_with_letters) , correct_answer_( correct_answer_letter) { }
bool check_answer( char user_answer) const {
return user_answer == correct_answer_;
}
void display_question( ) const {
std:: cout << question_ << std:: endl ;
for ( size_t i = 0 ; i < choices_.size ( ) ; ++ i) {
std:: cout << static_cast < char > ( 'A' + i) << ". " << choices_[ i] .first << std:: endl ;
}
}
char get_correct_answer( ) const {
return correct_answer_;
}
private :
std:: string question_;
std:: vector < std:: pair < std:: string , std:: string >> choices_;
char correct_answer_;
} ;
int main( ) {
std:: vector < QuizQuestion> questions_and_answers {
// 根据文档内容填写具体题目及其选项与正确答案
{ "1919年的五四运动标志着中国( )的伟大开端。" ,
{ { "A. 新民主主义革命" , "新民主主义革命" } ,
{ "B. 资产阶级民主革命" , "资产阶级民主革命" } ,
{ "C. 社会主义革命" , "社会主义革命" } } ,
'A' } ,
{ "1920年6月陈独秀发起建立的( ),是中国成立最早影响最大的早期共产党组织。" ,
{ { "A. 上海共产主义小组" , "上海共产主义小组" } ,
{ "B. 北京共产主义小组" , "北京共产主义小组" } ,
{ "C. 长沙共产主义小组" , "长沙共产主义小组" } } ,
'A' } ,
// 其他题目...
} ;
int score = 0 ;
for ( const auto & q : questions_and_answers) {
q.display_question ( ) ;
char user_choice_letter;
std:: cin >> user_choice_letter;
if ( q.check_answer ( user_choice_letter) ) {
score++ ;
std:: cout << "回答正确!" << std:: endl ;
} else {
std:: cout << "回答错误,正确答案是:" << static_cast < char > ( q.get_correct_answer ( ) + 'A' ) << std:: endl ;
}
}
std:: cout << "总分:" << score << "分" << std:: endl ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgoKY2xhc3MgUXVpelF1ZXN0aW9uIHsKcHVibGljOgogICAgUXVpelF1ZXN0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBxdWVzdGlvbiwgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBjaG9pY2VzX3dpdGhfbGV0dGVycywgY2hhciBjb3JyZWN0X2Fuc3dlcl9sZXR0ZXIpCiAgICAgICAgOiBxdWVzdGlvbl8ocXVlc3Rpb24pLCBjaG9pY2VzXyhjaG9pY2VzX3dpdGhfbGV0dGVycyksIGNvcnJlY3RfYW5zd2VyXyhjb3JyZWN0X2Fuc3dlcl9sZXR0ZXIpIHt9CgogICAgYm9vbCBjaGVja19hbnN3ZXIoY2hhciB1c2VyX2Fuc3dlcikgY29uc3QgewogICAgICAgIHJldHVybiB1c2VyX2Fuc3dlciA9PSBjb3JyZWN0X2Fuc3dlcl87CiAgICB9CgogICAgdm9pZCBkaXNwbGF5X3F1ZXN0aW9uKCkgY29uc3QgewogICAgICAgIHN0ZDo6Y291dCA8PCBxdWVzdGlvbl8gPDwgc3RkOjplbmRsOwogICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hvaWNlc18uc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGNoYXI+KCdBJyArIGkpIDw8ICIuICIgPDwgY2hvaWNlc19baV0uZmlyc3QgPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgIH0KCiAgICBjaGFyIGdldF9jb3JyZWN0X2Fuc3dlcigpIGNvbnN0IHsKICAgICAgICByZXR1cm4gY29ycmVjdF9hbnN3ZXJfOwogICAgfQoKcHJpdmF0ZToKICAgIHN0ZDo6c3RyaW5nIHF1ZXN0aW9uXzsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiBjaG9pY2VzXzsKICAgIGNoYXIgY29ycmVjdF9hbnN3ZXJfOwp9OwoKaW50IG1haW4oKSB7CiAgICBzdGQ6OnZlY3RvcjxRdWl6UXVlc3Rpb24+IHF1ZXN0aW9uc19hbmRfYW5zd2VycyB7CiAgICAgICAgLy8g5qC55o2u5paH5qGj5YaF5a655aGr5YaZ5YW35L2T6aKY55uu5Y+K5YW26YCJ6aG55LiO5q2j56Gu562U5qGICiAgICAgICAgeyIxOTE55bm055qE5LqU5Zub6L+Q5Yqo5qCH5b+X552A5Lit5Zu977yIICAg77yJ55qE5Lyf5aSn5byA56uv44CCIiwKICAgICAgICAge3siQS4g5paw5rCR5Li75Li75LmJ6Z2p5ZG9IiwgIuaWsOawkeS4u+S4u+S5iemdqeWRvSJ9LAogICAgICAgICAgeyJCLiDotYTkuqfpmLbnuqfmsJHkuLvpnanlkb0iLCAi6LWE5Lqn6Zi257qn5rCR5Li76Z2p5ZG9In0sCiAgICAgICAgICB7IkMuIOekvuS8muS4u+S5iemdqeWRvSIsICLnpL7kvJrkuLvkuYnpnanlkb0ifX0sCiAgICAgICAgICdBJ30sCgogICAgICAgIHsiMTkyMOW5tDbmnIjpmYjni6znp4Dlj5Hotbflu7rnq4vnmoTvvIggICDvvInvvIzmmK/kuK3lm73miJDnq4vmnIDml6nlvbHlk43mnIDlpKfnmoTml6nmnJ/lhbHkuqflhZrnu4Tnu4fjgIIiLAogICAgICAgICB7eyJBLiDkuIrmtbflhbHkuqfkuLvkuYnlsI/nu4QiLCAi5LiK5rW35YWx5Lqn5Li75LmJ5bCP57uEIn0sCiAgICAgICAgICB7IkIuIOWMl+S6rOWFseS6p+S4u+S5ieWwj+e7hCIsICLljJfkuqzlhbHkuqfkuLvkuYnlsI/nu4QifSwKICAgICAgICAgIHsiQy4g6ZW/5rKZ5YWx5Lqn5Li75LmJ5bCP57uEIiwgIumVv+aymeWFseS6p+S4u+S5ieWwj+e7hCJ9fSwKICAgICAgICAgJ0EnfSwKICAgICAgICAKICAgICAgICAvLyDlhbbku5bpopjnm64uLi4KICAgIH07CgogICAgaW50IHNjb3JlID0gMDsKICAgIGZvciAoY29uc3QgYXV0byYgcSA6IHF1ZXN0aW9uc19hbmRfYW5zd2VycykgewogICAgICAgIHEuZGlzcGxheV9xdWVzdGlvbigpOwogICAgICAgIGNoYXIgdXNlcl9jaG9pY2VfbGV0dGVyOwogICAgICAgIHN0ZDo6Y2luID4+IHVzZXJfY2hvaWNlX2xldHRlcjsKICAgICAgICBpZiAocS5jaGVja19hbnN3ZXIodXNlcl9jaG9pY2VfbGV0dGVyKSkgewogICAgICAgICAgICBzY29yZSsrOwogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIuWbnuetlOato+ehru+8gSIgPDwgc3RkOjplbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAi5Zue562U6ZSZ6K+v77yM5q2j56Gu562U5qGI5piv77yaIiA8PCBzdGF0aWNfY2FzdDxjaGFyPihxLmdldF9jb3JyZWN0X2Fuc3dlcigpICsgJ0EnKSA8PCBzdGQ6OmVuZGw7CiAgICAgICAgfQogICAgfQoKICAgIHN0ZDo6Y291dCA8PCAi5oC75YiG77yaIiA8PCBzY29yZSA8PCAi5YiGIiA8PCBzdGQ6OmVuZGw7CgogICAgcmV0dXJuIDA7Cn0K