假定一个班有10个学生,学号为’DSA’-’DSJ’:
(1)以学号为键,设计一个二维数组students,每个数组元素的值有平时成绩和考试成绩,具体成绩自定。
(如:$students=array(‘DSA’=>array(75,86),…);)
(2)随机抽取5个不同的学生,输出这5个学生的信息
(3)对这随机抽取的5个学生,先计算每个学生的总评成绩(平时成绩*0.3+考试成绩*0.7),然后求这5个学生总评成绩的平均值
参考代码如下:
<?php header("content-type:text/html;charset=utf-8"); $students=array( 'DSA'=>array(90,87), //将学生的成绩录入到二维数组students里面 'DSB'=>array(91,87), 'DSC'=>array(94,87), 'DSD'=>array(92,87), 'DSE'=>array(90,88), 'DSF'=>array(93,58), 'DSG'=>array(95,77), 'DSH'=>array(94,67), 'DSI'=>array(92,86), 'DSJ'=>array(90,47), ); $arr_key=array_keys($students); //取出数组students里面的键(学生编号),并存进索引数组arr_key里面; shuffle($arr_key); //打乱索引数组arr_key里的排序 /** * for循环输出打乱后的arr_key里面的前五位编号学生的平时成绩和考试成绩 * 并求出前五个学生的总评成绩总和 */ $sum=""; echo "学生-平时分-考试分-总评<br />"; for($i=0;$i<5;$i++){ $ps=$students[$arr_key[$i]][0]; $ks=$students[$arr_key[$i]][1]; $sum1=$ps*0.3+$ks*0.7; $sum+=$sum1; echo $arr_key[$i]."----".$ps."----".$ks."----".$sum1."<br />"; } echo "5个学生总评成绩的平均值为".$sum/5;
效果图:
代码解释:
首先录入学生的编号和成绩;
使用array_keys取出学生的编号,组成一个索引数组$arr_key;
使用shuffle函数打乱数组$arr_key;
最后for循环出随机的五个学生编号--平时成绩--考试成绩,并求出总评成绩平均值。
来自Anson博客
2016年6月27日
-------------------------2016年6月30日 更新---------------------
之前做题目的时候看漏先计算每个学生的总评成绩,
代码已更新注释和答案