练习题:
某班的成绩出来了,现在老师要把班级的成绩打印出来。
效果图:
2014年5月9日 星期六--班级总分为: 班级平均分为:
格式要求:
1、显示打印的日期。 格式为类似“2014年03月21日 星期三” 的当前的时间。
2、计算出该班级的平均分(保留整数)。
同学成绩数据如下:
"小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"
任务
第一步:可通过javascript的日期对象来得到当前的日期。
提示:使用Date()日期对象,注意星期返回值为0-6,所以要转成文字"星期X"
第二步:一长窜的字符串不好弄,找规律后分割放到数组里更好操作哦。
第三步:分割字符串得到分数,然后求和取整。
代码实现:
<1>html部分
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>date.string</title>
<link rel="stylesheet" type="text/css" href="styles/001.css" />
</head>
<body>
<script src="styles/001.js"></script>
<div id="time"><input type="button" value="点击获取时间" onclick="sTime()"/></p></div>
<hr/>
<div id="scor">
<h3>学生成绩为:小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76</h3>
<input type="button" value="点击获取平均分" onclick="scppp()" />
<input type="text" id="texttt"/>
</div>
</body>
</html>
<2>css部分
*{margin:0;padding:0;}
body{
width:100%;
}
#time{
margin:auto;
height:50px;
}
#scor{
width:100%;
height:60px;
margin-top: 20px;
}
<3>js部分
1.第一种方法
//获取时间
function sTime()
{
var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
var d = new Date(); //返回当前日期
var x=d.getFullYear(); //返回四位数年份
var y=d.getMonth(); //返回当前月份 0:一月
z=y+1;
s=d.getDate(); //返回日
var i=d.getDay(); //返回星期 0:星期日
document.getElementById("time").innerHTML=x+"年"+z+"月"+s+"日"+weekday[i];
}
//学生成绩
function scppp(){
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var sco1=new Array();
var j=0;
sco1=scoreStr.split(":"); //以“:”为分隔分隔这和字符串,分割后的数组元素存入到sco1数组中
for(i=1;i<=sco1.length-1;i++) //由于sco1【0】没有数字 故从1开始计数 由于本意是想要排除没有数字的sco【0】(小明),但这不太符合编程的计数习惯,那么我们可以利用if语句来进行判断,for(i=1;i<=sco1.length-1;i++) if(parseInt(sco【i】=!NaN))再进行加和
{
s=parseInt(sco1[i]); //利用parseInt提取数组元素中的数字
j=j+s;
}
document.getElementById("texttt").value=parseInt(j/(sco1.length-1));
}
2.第二种方法
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var myarr = scoreStr.split(";");//第一次字符串分割
var num = 0; var str;
for(var i=0;i<myarr.length;i++){
str=myarr[i];//取出数组的所有元素,每个元素其实又是一个字符串 一维数组
myarr[i] = new Array();//然后每个元素的字符串再进行分割
myarr[i] = str.split(":"); //分割方式,第二次字符串分割, 形成二维数组
num =num + parseInt(myarr[i][1]); //二维数组 }
document.write(num); //从数组中将成绩撮出来,然后求和取整,并输出。