<php
/
1学生成绩0-59不及格,60-70 普通成绩 70-80 良好 80-90 优秀 90-100 优异。现在有三个学生a,b,c,成绩分别是50分 80分 95分,判断这三个学生分别属于哪类。
首先,各类别分数设定不严谨,正确应该为:0-59不及格,60-69普通,70-79良好,80-89优秀,90-100优异
/
echo "学生a类型为:" getLevel(50) '<br />'; // 学生a,方便演示加了一个 <br /> 换行符
echo "学生b类型为:" getLevel(80) '<br />'; // 学生b,方便演示加了一个 <br /> 换行符
echo "学生c类型为:" getLevel(95) '<br />'; // 学生c,方便演示加了一个 <br /> 换行符
/
2班级有一百名学生,分数区间0-100分。随机生成一百位学生的成绩,学生名称S1-----S100,学生成绩0-59不及格,60-70 普通成绩, 70-80 良好, 80-90 优秀, 90-100 优异,然后判断该学生分数所在档次。
同样,各类别分数设定不严谨,正确应该为:0-59不及格,60-69普通,70-79良好,80-89优秀,90-100优异
/
// 获取随机生成分数数组
$scores = getRandscore(100);
// 循环处理类型
foreach ($scores as $key => $value) {
echo "学生S{$key}分数为:" $value ",类型为:" getLevel($value) '<br />'; // 方便演示加了一个 <br /> 换行符
}
/ 定义自定义函数 /
/
随机生成分数
@param int $number 学生人数
@return array
/
function getRandscore($number = 0) {
// 定义数组
$scores = array();
// FOR 循环
for ($i = 1; $i <= $number; $i++) {
$scores[$i] = rand(0, 100);
}
// 输出结果
return $scores;
}
/
按分数获取等级
@param int $score 分数
@return string
/
function getLevel($score = 0) {
if ($score <= 0) {
$i = 1; // 如果小于或等于0分,直接设定为第一级别,不及格
} elseif ($score >= 100) {
$i = 5; // 如果大于等于100分,直接设定为最高级别,优异
} else {
// 定义等级分数线,格式 array(等级1 => array(当前级别最低分数,当前级别最高分数))
$_score = array('1' => array(0, 59), '2' => array(60, 69), '3' => array(70, 79), '4' => array(80, 89), '5' => array(90, 100));
// 其他分数进行FOR循环判断,$i 值为 1 - 5
for ($i = 1; $i < 6; $i++) {
if ($score >= $_score[$i][0] && $score <= $_score[$i][1]) {
break; //中断循环判断
}
}
}
// 定义等级文字
$_level = array( '1' => '不及格', '2' => '普通', '3' => '良好', '4' => '优秀', '5' => '优异');
// 输出结果
return $_level[$i] $_level[$i] : '其他';
}
//gradehtml 把name="course1"改成name="course[]",类似的全改。
<html>
<head>
<title>Sample Input Form</title>
</head>
<body>
<p>
<h1>Sample Transcript Report Form</h1>
<p>
<form method=POST action="gradephp">
<table border=0 cellspacing=2 cellpadding=2>
<tr><th>Course Name</th>
<th>Units(1-5)</th>
<th>Grade(0-100)</th>
</tr>
<tr>
<td>
<input type="text" name="course[]" size="30" value="">
</td>
<td>
<input type="text" name="units[]" size="10" value="">
</td>
<td>
<input type="text" name="grade[]" size="10" value="">
</td>
</tr>
<tr>
<td>
<input type="text" name="course[]" size="30">
</td>
<td>
<input type="text" name="units[]" size="10">
</td>
<td>
<input type="text" name="grade[]" size="10">
</td>
</tr>
<tr>
<td>
<input type="text" name="course[]" size="30">
</td>
<td>
<input type="text" name="units[]" size="10">
</td>
<td>
<input type="text" name="grade[]" size="10">
</td>
</tr>
<tr>
<td>
<input type="text" name="course[]" size="30">
</td>
<td>
<input type="text" name="units[]" size="10">
</td>
<td>
<input type="text" name="grade[]" size="10">
</td>
</tr>
<tr>
<td height=25> </td>
</tr>
<tr><td colspan=3 align=center>
<input type=submit value="Submit">
</td>
</tr>
</table>
<hr>
</body>
</html>
//gradephp 被提交页面
<php
$count=count($_POST['course']);
echo '<table border="1"><tr><th>course</th><th>units</th><th>grade</th><th>evaluation</th></tr>';
$unitsSum=$gradeSum=0;
for ($i=0; $i < $count; $i++) {
$unitsSum += $_POST['units'][$i];
$gradeSum += $_POST['grade'][$i];
echo '<tr><td>',$_POST['course'][$i],'</td><td>',$_POST['units'][$i],'</td><td>',$_POST['grade'][$i],
'</td><td>',evaluate($_POST['grade'][$i]),'</td></tr>';
}
echo '</table>';
echo 'Total units taken: ',$unitsSum,'<br>Average grade: ',$gradeSum/$count;
function evaluate($grade){
$evaluation='';
if ($grade>=90) {
$evaluation='A';
}elseif ($grade<90 && $grade>=80) {
$evaluation='B';
}elseif ($grade<80 && $grade>=70) {
$evaluation='C';
}else{
$evaluation='D';
}
return $evaluation;
}
echo '<hr>';
echo '<pre>';
var_dump($_POST);
echo '</pre>';
<php
$a=array();
$b=0;
for ($i=0; $i <10 ; $i++) {
$a[$i]=rand(0,100);
$b+=$a[$i];
}$b=$b/10;
print_r($a);
echo"<br>";
print_r('平均成绩'$b);echo"<br>";
$max=max($a);
print_r('最高成绩'$max);echo"<br>";
$min=min($a);
print_r('最低成绩'$min);echo"<br>";
$c=0;
for ($i=0; $i <10 ; $i++) {
if($a[$i]>$b){
$c=$c+1;
}
}
print_r('超过平均值人数'$c);echo"<br>";
>
纯手打不易,望采纳
action 到 doingphp 就要用post或者get之后连接数据库,插入数据并显示数据,下面是个小例子也有注释
<php
$data['class'] = $_POST['class'] + 0;
$data['name'] = trim($_POST['name']);
$data['math'] = $_POST['math'] + 0;
$data['chemistry'] = $_POST['chemistry'] + 0;//以下的自己写
/连接数据库 插入数据/
$conn = mysql_connect('url','username','password');
$sql = 'use db_name';
mysql_query($sql,$conn);
//这个其实可以封装成一个更好的丢向方法就不写了
foreach($data as $k=>$v){
$sql = 'insert into db('$k')value("'$v'")';
mysql_query($sql,$conn);
}
/取出数据并打印/
$sql = 'select class,name,math,chemistry from table_name order by class';
$res = mysql_query($sql,$conn);
echo '<table id="score"><tr><td>班级</td><td>名字</td><td>数学</td><td>化学</td></tr>';
while($row = mysql_fetch_assoc($res)){//取关系数组,打印
echo '<tr><td>'$row['class']'</td><td>'$row['name']'</td><td>'$row['math']'</td><td>'$row['chemistry']'</td></tr>';
}
echo '</table>';>
<php
echo check(779);
function check($score){
if($score>=790){
echo "优";
}else if($score>=780&&$score<790){
echo "良";
}elseif($score>=770&&$score<780){
echo "中";
}
elseif($score>=760&&$score<770){
echo "合格";
}else{
echo "看不出这个是什么字";
}
}
>
<php
switch ($score=43) // 这里不能放表达式的
{
case "$score>=90&&$score<=100": // 这里好像也不能这样
echo"优秀<br>";
break;
case "$score>=80&&$score<90": // 这里好像也不能这样
echo"良好<br>";
break;
case "$score>=70&&$score<80": // 这里好像也不能这样
echo"中等<br>";
break;
case "$score>=60&&$score<70": // 这里好像也不能这样
echo"及格<br>";
break;
case "$score>=0&&$score<60": // 这里好像也不能这样
echo"不及格<br>";
break;
default:
echo"成绩输入错误<br>";
break;
}
// 我觉得判断成绩的,最好用 if 语句,因为 switch 是要具体捕捉某一个值的,不是很适用于大范围的判断
// 还有的是,从输入框输入的是一个字符串,虽然你输入的是数字,但它也会当作字符串来处理
// 有说得不对的,请见谅,,,,
>
以上就是关于用PHP函数排学生成绩问题全部的内容,包括:用PHP函数排学生成绩问题、用PHP输出成绩单表格、用PHP编写 随机产生10个学生的成绩,求平均成绩,最高成绩,最低成绩,并统计高于平均成绩的人数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)