这是赋值的代码。
还有我可以避免使用的额外代码吗?我目前正在学习C++,所以我只限于我的资源,但我确实觉得我给了自己额外的工作。有什么建议可以让我在这方面更有效率吗?
选择就是菜单
在输入中回答
退出不在菜单选项之外。它是do-while循环的一部分。
不完全理解时间命令
随机数发生器
用于保持num1可被num6除除。
分配给每个操作的变量
抱歉对代码没有任何评论。
#include<iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int choice,
answer;
const int quit = 5;
unsigned seed = time(0);
srand(seed);
do
{
int num1 = rand() % 10,
num2 = rand() % 10,
num3 = rand() % 11,
num5 = rand() % 9,
num4 = num5 * (rand() % 10 + 1),
num6 = rand() % 10;
while (num6 > num1)
{
num6 = rand() % 10;
}
int answer1 = num1 + num2,
answer2 = num1 - num6,
answer3 = num3 * num1,
answer4 = num4 / num5;
cout << "Menu\n"
<< "1. Addition problem\n"
<< "2. Subtraction problem\n"
<< "3. Multiplication problem\n"
<< "4. Division problem\n"
<< "5. Quit this program\n\n"
<< "Enter your choice (1-5): ";
cin >> choice;
while (choice > 5 || choice < 1)
{
cout << "The valid choices are 1, 2, 3, 4, and 5. Please choose: ";
cin >> choice;
cout << endl;
}
switch (choice)
{
case 1: cout << endl;
cout << " " << num1 << endl;
cout << "+ " << num2 << endl;
cout << " ---" << endl;
cout << " ";
cin >> answer;
if (answer == answer1)
{
cout << endl;
cout << "Congratulations! That's right." << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Sorry, the correct answer is " << answer1 << "." << endl;
cout << endl;
}
break;
case 2: cout << endl;
cout << " " << num1 << endl;
cout << "- " << num6 << endl;
cout << " ---" << endl;
cout << " ";
cin >> answer;
if (answer == answer2)
{
cout << endl;
cout << "Congratulations! That's right." << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Sorry, the correct answer is " << answer2 << "." << endl;
cout << endl;
}
break;
case 3: cout << endl;
cout << " " << num1 << endl;
cout << "* " << num3 << endl;
cout << " ---" << endl;
cout << " ";
cin >> answer;
if (answer == answer3)
{
cout << endl;
cout << "Congratulations! That's right." << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Sorry, the correct answer is " << answer3 << "." << endl;
cout << endl;
}
break;
case 4: cout << endl;
cout << " " << num4 << endl;
cout << "/ " << num5 << endl;
cout << " ---" << endl;
cout << " ";
cin >> answer;
if (answer == answer4)
{
cout << endl;
cout << "Congratulations! That's right." << endl;
cout << endl;
}
else
{
cout << endl;
cout << "Sorry, the correct answer is " << answer4 << "." << endl;
cout << endl;
}
break;
}
} while (choice != quit);
{
cout << "Thank you for using math tutor!" << endl;
cout << endl;
}
system("PAUSE");
return 0;
}发布于 2017-07-18 17:41:22
using namespace std;。是的,无论结果如何,书作者常常被出版商强迫牺牲在简洁的祭坛上,但你不是。读了"为什么“使用命名空间性病;”被认为是不好的做法?“。std::endl,因为冲水很昂贵,所以使用'\n'代替。请记住,std::cin和std::cout是相互关联的。num5可能是零,导致除以零,这是未定义的行为?std::cin读取,这是可移植的、安全的和高效的,避免使用std::system()。std::cin.get();return 0;对main()是隐式的。https://codereview.stackexchange.com/questions/169568
复制相似问题