成绩计算器

时间:2017-03-09 11:00:17

标签: php html forms

我需要做这个练习:

创建一个函数workOutGradeAv - 此方法将读取某些等级,然后计算并显示平均成绩。

显示有意义的介绍性消息。 1.1稍后在代码中声明您需要的任何变量。

1.2在HTML表单的5个单独的输入框中显示要求5个等级的消息。您还应该解释他们应该每行输入一个等级 1.3除非正确输入所有5个字段并且在等级边界内的值,否则不应该提交表格

1.4使用do循环(控制程序流程):

1.4.1将输入形式的等级读入变量。 1.4.2(使用逻辑运算符)条件语句(If)检查等级是否在0到101范围之外(使用布尔OR)并且如果为真则打印错误消息。 1.4.3否则如果成绩不是101,则将成绩添加到

总。 结束do循环并检查等级不是101

1.5计算平均成绩并使用合适的信息显示结果。

我的代码是这样的: Assess1Grades.php

<!doctype html>
<html>
    <head>
        <title>Grade Assessor</title>
    </head>

    <body>
        <h2>Grade Assessor<h2>
        <table border="1">
            <tr>
                <td>
                    <table>
                        <form action="grades.php" method="post">
                            <tr>
                                <td>
                                    Enter 5 grades. One per each line:
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Grade 1: <input type="number" name="grade1" required>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Grade 2: <input type="number" name="grade2" required>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Grade 3: <input type="number" name="grade3" required>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Grade 4: <input type="number" name="grade4" required>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Grade 5: <input type="number" name="grade5" required>
                                </td>
                            </tr>
                            <tr>
                                <td align="center">
                                    <input type="submit">
                                </td>
                            </tr>
                        </form>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>

grades.php

<!doctype html>
<html>

    <head>
        <title>Grade Assessor</title>
    </head>

    <body>
        <h2>Grade Assessor<h2>
        <table border="1">
            <tr>
                <td>
                    <table>
                        <tr>
                            <td>
                                The Average grade is:
                            </td>
                            <td>
                                <?php
                                function workOutGradeAv() {
                                    $averagegrade=$grades/5;
                                    echo "$averagegrade";
                                }
                                $grades=0;
                                do {
                                    if ($_Post["grade1"] < 0 or $_Post["grade1"] > 101) {
                                        echo "Error! Check Input.";
                                    } elseif ($_Post["grade2"] < 0 or $_Post["grade2"] > 101) {
                                        echo "Error! Check Input.";
                                    } elseif ($_Post["grade3"] < 0 or $_Post["grade3"] >101)  {
                                        echo "Error! Check Input.";
                                    } elseif ($_Post["grade4"] < 0 or $_Post["grade4"] >101)  {
                                        echo "Error! Check Input.";
                                    } elseif ($_Post["grade5"] < 0 or  $_Post["grade5"]>101 ) {
                                        echo "Error! Check Input.";
                                    } else {
                                        $grades = $grades + $_Post["grade1"] + $_Post["grade2"] + $_Post["grade3"] + $_Post["grade4"] + $_Post["grade5"];
                                    }
                                }
                                while ($_Post["grade1"]!= 101);
                                workOutGradeAv();
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>

当我提交表单时,输出只是&#34;平均等级是&#34;而且没有结果。我做错了什么?

由于

1 个答案:

答案 0 :(得分:1)

grades.php

中有多处错误

1)删除不必要的do while循环

2)将$_Post替换为$_POSTPHP是区分大小写的语言。

3)要显示功能等级,您必须将grades声明为全局。或者将其作为参数传递。

<!doctype html>
<html>

<head>
<title>Grade Assessor</title>
</head>

<body>
<h2>Grade Assessor<h2>
<table border="1">
<tr>
<td>
<table>
<tr>
<td>
The Average grade is:
</td>
<td>
<?php

function workOutGradeAv($grades) {

$averagegrade=$grades/5;
echo "$averagegrade";
}
$grades=0;

if ($_POST["grade1"] < 0 || $_POST["grade1"] > 101)   {
echo "Error! Check Input.";
} elseif ($_POST["grade2"] < 0 or $_POST["grade2"] > 101) {
echo "Error! Check Input.";
} elseif ($_POST["grade3"] < 0 or $_POST["grade3"] >101)  {
echo "Error! Check Input.";
} elseif ($_POST["grade4"] < 0 or $_POST["grade4"] >101)  {
echo "Error! Check Input.";
} elseif ($_POST["grade5"] < 0 or  $_POST["grade5"]>101 ) {
echo "Error! Check Input.";
} else {
$grades = $grades + $_POST["grade1"] + $_POST["grade2"] + $_POST["grade3"] + $_POST["grade4"] + $_POST["grade5"];
} 

workOutGradeAv($grades);
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>