我被困在这个领域。我用这个做什么节目?



我是用c++做这道题的,我现在还不能算出来。我做错了什么?同样,这是在c++中,而不是在python中。

资本测验

编写一个程序,创建一个包含美国各州作为键,各州首府作为值的地图。(你可以在网上找到各州及其首府的列表。)然后,程序应该通过显示一个州的名称随机测试用户,并要求用户输入该州的首府。程序应该记录正确和错误回答的数量。(作为美国各州的替代方案,该程序可以使用国家名称及其首都。)

这是我到目前为止的工作:

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
map<string, string> states = {
{"Alabama", "Montgomery"}, {"Alaska", "Juneau"}, {"Arizona", "Phoenix"} {"Arkansas","Little Rock"},
{"California", "Sacramento"}, {"Colorado", "Denver"}, {"Connecticut", "Hartford"},
{"Delaware", "Dover"}, {"Florida", "Tallahassee"}, {"Georgia", "Atlanta"}, {"Hawaii", "Honolulu"},
{"Idaho", "Boise"}, {"Illinois", "Springfield"}, {"Indiana", "Indianapolis"},
{"Iowa", "Des Moines"}, {"Kansas", "Topeka"}, {"Kentucky", "Frankfort"},
{"Louisiana", "Baton Rouge"}, {"Maine", "Augusta"}, {"Maryland", "Annapolis"},
{"Massachusetts", "Boston"}, {"Michigan", "Lansing"}, {"Minnesota", "Saint Paul"},
{"Mississippi", "Jackson"}, {"Missouri", "Jefferson City"}, {"Montana", "Helena"},
{"Nebraska", "Lincoln"}, {"Nevada", "Carson City"}, {"New Hampshire", "Concord"},
{"New Jersey", "Trenton"}, {"New Mexico", "Santa Fe"}, {"New York", "Albany"},
{"North Carolina", "Raleigh"}, {"North Dakota", "Bismarck"}, {"Ohio", "Columbus"},
{"Oklahoma", "Oklahoma City"}, {"Oregon", "Salem"}, {"Pennsylvania", "Harrisburg"},
{"Rhode Island", "Providence"}, {"South Carolina", "Columbia"}, {"South Dakota", "Pierre"},
{"Tennessee", "Nashville"}, {"Texas", "Austin"}, {"Utah", "Salt Lake City"},
{"Vermont", "Montpelier"}, {"Virginia", "Richmond"}, {"Washington", "Olympia"},
{"West Virginia", "Charleston"}, {"Wisconsin", "Madison"}, {"Wyoming", "Cheyenne"}
};

map<string, string>::iterator it;

for (it = states.begin(); it != states.end(); it++){
cout << "What is the capital of " << states.first << "?" << endl;
cout << states.first << " " << states.second << endl;
};

return 0;
}

看起来您需要一个随机数生成器,一种接收输入/输出的方法,一种访问这些值的方法。

#include <iostream>
#include <random> 
#include <ctime> 
#include <map>
#include <string>
int main()
{
std::map<std::string, std::string> states = {
{"Alabama", "Montgomery"}, {"Alaska", "Juneau"}, {"Arizona", "Phoenix"}, {"Arkansas","Little Rock"},
{"California", "Sacramento"}, {"Colorado", "Denver"}, {"Connecticut", "Hartford"},
{"Delaware", "Dover"}, {"Florida", "Tallahassee"}, {"Georgia", "Atlanta"}, {"Hawaii", "Honolulu"},
{"Idaho", "Boise"}, {"Illinois", "Springfield"}, {"Indiana", "Indianapolis"},
{"Iowa", "Des Moines"}, {"Kansas", "Topeka"}, {"Kentucky", "Frankfort"},
{"Louisiana", "Baton Rouge"}, {"Maine", "Augusta"}, {"Maryland", "Annapolis"},
{"Massachusetts", "Boston"}, {"Michigan", "Lansing"}, {"Minnesota", "Saint Paul"},
{"Mississippi", "Jackson"}, {"Missouri", "Jefferson City"}, {"Montana", "Helena"},
{"Nebraska", "Lincoln"}, {"Nevada", "Carson City"}, {"New Hampshire", "Concord"},
{"New Jersey", "Trenton"}, {"New Mexico", "Santa Fe"}, {"New York", "Albany"},
{"North Carolina", "Raleigh"}, {"North Dakota", "Bismarck"}, {"Ohio", "Columbus"},
{"Oklahoma", "Oklahoma City"}, {"Oregon", "Salem"}, {"Pennsylvania", "Harrisburg"},
{"Rhode Island", "Providence"}, {"South Carolina", "Columbia"}, {"South Dakota", "Pierre"},
{"Tennessee", "Nashville"}, {"Texas", "Austin"}, {"Utah", "Salt Lake City"},
{"Vermont", "Montpelier"}, {"Virginia", "Richmond"}, {"Washington", "Olympia"},
{"West Virginia", "Charleston"}, {"Wisconsin", "Madison"}, {"Wyoming", "Cheyenne"}
};
std::mt19937 mersenne{ static_cast<std::mt19937::result_type>(std::time(nullptr)) };    
std::uniform_int_distribution<> die{0, (int)states.size() - 1};
int totalGuess {};
int correctGuess{};
while(true)
{
int randomNum {die(mersenne)};
auto iter = std::next(states.begin(), randomNum);
std::cout << "What is the capital of " << iter->first << "?";
std::string guess{};
std::cin >> guess;
if(guess == iter->second)
{
std::cout << "Rightn"; 
++correctGuess;
}
else
std::cout << "Wrongn";

++totalGuess;
}

return 0;
}

最新更新