简单的perl问题!只是调试现有代码-但我是新手

时间:2019-04-14 12:13:24

标签: perl

这是我要做的一项家庭作业-基本上,他们希望我们在以下指导下调试mathq程序:

  1. 他们希望它提供加减法问题以及乘法 和分裂。他们希望选择像以前一样是随机的,但是现在的问题是 随机相乘,除法,加法或减法。操作数范围是 仍然仅限于一位数字,以及除法和减法的答案 问题应该是单数的正数。

  2. 他们想要解决除零问题。尽管零可以是 乘法,它不能是除法问题的除数。

  3. 减法问题的最小值不能为零,尽管它可以是 超越。 (被减数是从被减数中减去的数字。)
    因此,允许6 – 0,但不允许0 –6。

  4. 用户应该能够输入“ q”或“ Q”退出。

  5. 程序启动时,除了说“欢迎”外,还应显示一个 有关如何退出的消息。

  6. 他们还决定,通过获得分数将使用户更有动力。 每次用户回答正确的问题时,他们的答案应得1分。 错误答案是0分。当用户退出时,程序应显示 正确和错误回答的总数和正确的百分比。

    例如:如果用户得到12个正确答案和6个错误答案,程序将显示 像这样:

  

您正确回答了18个问题中的12个,占67%   正确地。      谢谢您玩mathq。

  1. 仅计算正确和错误的答案,而不是无效的答案。

我对此很陌生,我们几乎没有任何指导-我确实需要有关此作业的帮助!

#!/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";

0 个答案:

没有答案