2017-03-09 57 views
0

我需要做这个练习:级计算器

创建一个函数workOutGradeAv - 这种方法将在一些档次阅读,然后制定出并显示平均品位。

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

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

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

1.4.1从输入表格读取成绩到变量。 1.4.2(使用逻辑运算符)条件语句(If)检查等级是否在0到101范围之外(使用布尔或),​​如果是,则输出错误消息。 1.4.3否则,如果等级不是101,则将等级添加到您的总计

。 结束循环并检查分数是不是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> 

当我提交表单的输出只是“平均品位”,也没有结果。我究竟做错了什么?

感谢

+0

佩德罗,什么是$ _Post? $ _Post未定义...您应该使用$ _POST(全部大写)。我假设你没有打开错误报告,请打开错误报告。 –

+0

首先,您正在使用$ _Post ...它应该是:$ _POST。 PHP区分大小写。 http://php.net/manual/en/reserved.variables.post.php – valicu2000

+1

感谢崩溃我的浏览器... while循环做什么? –

回答

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> 
+0

谢谢。但其中一个标准就是“循环”。 1.4 \t使用do循环(来控制程序流程): 1.4。1 \t将输入表格中的成绩读入变量。 1.4.2 \t(使用逻辑运算符)条件语句(If)来检查等级是否在0到101范围之外(使用布尔OR),如果是,则输出错误消息。 1.4.3 \t否则,如果等级不是101,则将等级添加到总共 。 –