5门课程成绩,以表格的形式输出,分为三列(课程名称、学时、成绩),表格底部用JavaScript计算课程加权平均分,计算公式为:Σ课程成绩*学时数/总学时数
并且具有课程名称、学时、成绩录入、修改、查询和删除、动态计算加权成绩的功能。

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5583/5583123.xml?temp=.6763574
    用数据库,功能简单,100分,要求过份
    外包吧
      

  2.   

    给你个简单的自己改去吧 今天要开工了! 不过你的要求是有点过分.都让人家帮你写<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title></head><body>
    <input type="button" value="计算" onclick="createtable();" /><br />
    名称:<input type="text" id="input1" size="5">
    课时:<input type="text" id="input2" size="5">
    成绩:<input type="text" id="input3" size="5">
    <input type="button" value="添加" onclick="addClick();" />
    <input type="button" value="查询" onclick="searchClick();" />
    <br /></body>
    </html>
    <script language="javascript">
    var classes = new Array();
    var maintable = null;
    var a1 = document.getElementById("input1").value;
    var a2 = document.getElementById("input2").value;
    var a3 = document.getElementById("input3").value;
    var $C = function(value){return document.createElement(value);}classes[classes.length] = ["课程1",10,80];
    classes[classes.length] = ["课程2",12,70];
    classes[classes.length] = ["课程3",20,92];
    classes[classes.length] = ["课程4",16,84];
    classes[classes.length] = ["课程5",32,60];
    classes[classes.length] = ["课程6",90,10];
    classes[classes.length] = ["课程7",12,60];function searchClick()
    {
    fsearch(a1,a2,a3);
    }function addClick()
    {
    fadd(a1,a2,a3);
    createtable();
    }//方法 添加(classname:课程名|classcount:课时|result:成绩)
    function fadd(classname,classcount,result)
    {
    if(typeof(classname)=="string" && classname!="" && !isNaN(classcount) && !isNaN(result))
    {
    classes[classes.length] = [classname,Number(classcount),Number(result)];
    }
    }
    //方法 查询(classname:课程名|classcount:课时|result:成绩) 返回第一个完全匹配的数组. 参数可以为空,为空的参数不参与查询.
    function fsearch(classname,classcount,result)
    {
    for(var i=0;i<classes.length;i++)
    {
    if((!Boolean(classname)||classname==classes[i][0]) && (!Boolean(classcount)||Number(classcount)==classes[i][1]) && (!Boolean(result)||Number(result)==classes[i][2]))
    return classes[i];
    }
    return new Array(3);
    }//方法 刷新表格
    function createtable()
    {
    if(maintable!=null)maintable.parentNode.removeChild(maintable);
    var classescount = 0;
    var count = 0;
    for(var i=0;i<classes.length;i++)classescount+=classes[i][1];
    for(var i=0;i<classes.length;i++)count+=classes[i][1]*classes[i][2]/classescount;
    count = Math.round(count*10)/10;
    maintable = $C("table");
    var oTbody = $C("tbody");
    with(maintable)
    {
    border = 1;
    borderColor = "#CCCCCC";
    cellSpacing = 0;
    cellPadding = 0;
    appendChild(oTbody);
    }
    var oTr = $C("<tr bgcolor='#DDDDDD'>");
    oTd = $C("<td align='center' width='120px'>");
    oTd.innerHTML = "课程名称";
    oTr.appendChild(oTd);
    oTd = $C("<td align='center' width='60px'>");
    oTd.innerHTML = "学时";
    oTr.appendChild(oTd);
    oTd = $C("<td align='center' width='60px'>");
    oTd.innerHTML = "成绩";
    oTr.appendChild(oTd);
    oTbody.appendChild(oTr);
    for(var i=0;i<classes.length;i++)
    {
    var oTr = $C("tr");
    for(var j=0;j<classes[i].length;j++)
    {
    oTd = $C("<td align='center'>");
    oTd.innerHTML = classes[i][j];
    oTr.appendChild(oTd);
    }
    oTbody.appendChild(oTr);
    }
    var oTr = $C("tr");
    oTd = $C("<td align='center'>");
    oTd.innerHTML = "平均";
    oTr.appendChild(oTd);
    oTd = $C("<td align='center'>");
    oTd.innerHTML = "&nbsp;";
    oTr.appendChild(oTd);
    oTd = $C("<td align='center' bgcolor='#FFDDDD'>");
    oTd.innerHTML = count;
    oTr.appendChild(oTd);
    oTbody.appendChild(oTr);
    document.body.appendChild(maintable);
    }
    </script>