这是我要做的一项家庭作业-基本上,他们希望我们在以下指导下调试mathq程序:
他们希望它提供加减法问题以及乘法 和分裂。他们希望选择像以前一样是随机的,但是现在的问题是 随机相乘,除法,加法或减法。操作数范围是 仍然仅限于一位数字,以及除法和减法的答案 问题应该是单数的正数。
他们想要解决除零问题。尽管零可以是 乘法,它不能是除法问题的除数。
减法问题的最小值不能为零,尽管它可以是
超越。 (被减数是从被减数中减去的数字。)
因此,允许6 – 0,但不允许0 –6。
用户应该能够输入“ q”或“ Q”退出。
程序启动时,除了说“欢迎”外,还应显示一个 有关如何退出的消息。
他们还决定,通过获得分数将使用户更有动力。 每次用户回答正确的问题时,他们的答案应得1分。 错误答案是0分。当用户退出时,程序应显示 正确和错误回答的总数和正确的百分比。
例如:如果用户得到12个正确答案和6个错误答案,程序将显示 像这样:
您正确回答了18个问题中的12个,占67% 正确地。 谢谢您玩mathq。
我对此很陌生,我们几乎没有任何指导-我确实需要有关此作业的帮助!
#!/usr/bin/env perl
$^W = 1; # turn on warnings
use strict; # behave!
# display the startup message
print "Welcome to the mathq program.\n";
my $user_wants_to_quit = 0;
# LOOP until the user wants to quit
until ($user_wants_to_quit) {
# GENERATE A RANDOM MATH QUESTION AND SOLUTION=
# set first_num to a random integer in 0..9
my $first_num = int(rand(10));
# set second_num to a random integer in 0..9
my $second_num = int(rand(10));
my $question;
my $solution;
# pick a random integer from 0 to 1 and use it to choose operation
my $operator = int(rand(2));
if ( $operator == 1 ) {
# <<CREATE MULT QUESTION AND SOLUTION>>
$solution = $first_num * $second_num;
# swap values of first_num and solution
($solution, $first_num) = ($first_num, $solution);
$question = "$first_num / $second_num = ";
}
# <<DISPLAY QUESTION AND GET VALID RESPONSE>>=`enter code here`
my $response;
my $response_is_valid = 0; # set to FALSE
until ( $response_is_valid ) {
print "$question?\n> "; # display question
$response = <STDIN>;
chomp($response);
# <<CHECK IF RESPONSE IS VALID>>=
if ( $response =~ m/^[0-9]+$/ or $response =~ m/^[Qq]/) {
}
}
# <<CHECK CORRECTNESS OF USER'S RESPONSE>>
if ( $response =~ m/^[Qq]/ ) {
$user_wants_to_quit = 1;
}
else {
if ( $response == $solution ){
}
else {
if ( $response == $solution ){
print "Correct!\n";
} else {
print "Incorrect: $question $solution \n";
}
}
}
# display the exit message
print "Exiting the mathq program.\n";