Page

[php]关于php的数组练习题——二维数组随机学生成绩

617Anson16-06-27


php的数组练习题——二维数组随机学生成绩

假定一个班有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;


效果图:


blob.png

代码解释:


首先录入学生的编号和成绩;


使用array_keys取出学生的编号,组成一个索引数组$arr_key;


使用shuffle函数打乱数组$arr_key;


最后for循环出随机的五个学生编号--平时成绩--考试成绩,并求出总评成绩平均值。


来自Anson博客

2016年6月27日



-------------------------2016年6月30日 更新---------------------


之前做题目的时候看漏先计算每个学生的总评成绩,

代码已更新注释和答案