最近应朋友的需求,自己也正在找工作,想更提高、牢固自己做web系统的能力,所以做模仿驾校考试系统,花了几天时间。数据库表只有几个。
从09年毕业工作就一直用Java平台。asp.net是在学校学的。所以还是用2.0 的。Javascript封装设计的不够好,需要提高一下。
下载地址:http://code.google.com/p/leyipai/downloads/list
用asp.net 2.0做系统自己感觉优点:开发速度快。
部署成本低,小公司比较容易接受。
缺点:就不说了。
前台考试的JS如下:
//考试倒计时 var SysSecond; var InterValObj; function SysExamCountdown() { if (SysSecond > -1) { SysSecond = SysSecond - 1; var second = Math.floor(SysSecond % 60); // 计算秒 var minite = Math.floor((SysSecond / 60) % 60); //计算分 var hour = Math.floor((SysSecond / 3600) % 24); //计算小时 $("#sysEaxmTimeTag").html( hour + ":" + minite + ":" + second + ""); } else {//剩余时间小于或等于0的时候,就停止间隔函数 window.clearInterval(InterValObj); $.blockUI({message:"考试时间到了"});//阴影 } } //考试参数 var singleSelet=true;//是多选的 var totalTopicNum=<%=totalTopicNums %>;//题目总数100 //考题 var eaxmtopics=<%=topics %>; var userKeysArray=new Array(totalTopicNum); //选中答案 function gotoKeys(text){ if (SysSecond < 0) return; var topicId=$("#currentTopic").val(); //索引标题栏变色 var objgt="#EOV"+topicId; $(objgt).removeClass(); $(objgt).addClass("ExamOrderViewVisited"); var topicKeys=$("#currentTopicKeys").html(); if(singleSelet){//单选考试 topicKeys=text; $("#currentTopicKeys").html(text); //保存用户答案 userKeysArray[parseInt(topicId)]=topicKeys; //提交给服务器 if("对"==topicKeys)topicKeys="Y"; if("错"==topicKeys)topicKeys="N"; var stuId=$("#HiddenStudentID").val(); var subId=$("#HiddenSubjectID").val(); var tid=eaxmtopics[parseInt(topicId)].TopicID; $.ajax({ type: "get", dataType: "json", url: 'submitMyKeys.ashx', data: "TopicID="+tid+"&Keys="+topicKeys+"&StudentID="+stuId+"&SubjectID="+subId, success: function(data) { } }); //进入下一题 gontoNext(); }else{//不是单选题 if(''==topicKeys){ topicKeys=text; }else if(topicKeys.indexOf(text)>=0){ topicKeys=topicKeys.replace(text,''); }else{ topicKeys=topicKeys+text; } topicKeys=sortKeys(topicKeys); $("#currentTopicKeys").html(topicKeys); } } /* * 排序 */ var sortKeys =function (str){ if(typeof(str) != "string")return ""; var sarray=new Array(str.length); for(var i=0;i<str.length;i++){ sarray[i]=str.charAt(i); } sarray.sort(); var result=sarray.toString(); return result.replace(/,/g,''); }; //点击数字直达题干 var gotoTopic=function (index){ $("#currentTopic").val(index);//保存当前ID //遍历一下 checkDoneAndSetCss(); //标题栏变色 var objgt="#EOV"+index; $(objgt).removeClass(); $(objgt).addClass("ExamOrderViewHover"); //清空答案 currentTopicKeys var obj=eaxmtopics[parseInt(index)-1]; $("#topicTexts").html(obj.Texts); setKeysListStr(obj); setKeysItem(obj); } //进入下一题 var gontoNext=function(){ checkDoneAndSetCss(); var ctopic=$("#currentTopic").val(); var nexttopic=parseInt(ctopic)+1; if(nexttopic >totalTopicNum) nexttopic=totalTopicNum; gotoTopic(nexttopic); } //进入上一题 var gotoPrevious=function(){ checkDoneAndSetCss(); var ctopic=$("#currentTopic").val(); var Prevtopic=parseInt(ctopic)-1; if(Prevtopic<1)Prevtopic=1; gotoTopic(Prevtopic); } //循环检查完成情况,而且给索引数字换样式 var checkDoneAndSetCss=function(){ for(var i=0;i<userKeysArray.length;i++){ if(null==userKeysArray[i+1] || typeof(userKeysArray[i+1]) == "undefined" || ''== userKeysArray[i+1]){ var objge="#EOV"+(i+1); $(objge).removeClass(); $(objge).addClass("ExamOrderViewWait"); }else if(''!=userKeysArray[i+1]){ var objge="#EOV"+(i+1); $(objge).removeClass(); $(objge).addClass("ExamOrderViewVisited"); } } } // //输出答案列表----就是题干下面的答案列表\ // var setKeysItem=function(node){ var restr=""; if(0==node.Type){ if(null!=node.A && ''!=node.A ){ restr=restr+"<div class=\"keyitems\" id=\"Item_A\" onClick=\"gotoKeys('A')\">A</div>"; } if(null!=node.B && ''!=node.B ){ restr=restr+"<div class=\"keyitems\" id=\"Item_B\" onClick=\"gotoKeys('B')\">B</div>"; } if(null!=node.C && ''!=node.C ){ restr=restr+"<div class=\"keyitems\" id=\"Item_C\" onClick=\"gotoKeys('C')\">C</div>"; } if(null!=node.D && ''!=node.D){ restr=restr+"<div class=\"keyitems\" id=\"Item_D\" onClick=\"gotoKeys('D')\">D</div>"; } if(null!=node.E && ''!=node.E ){ restr=restr+"<div class=\"keyitems\" id=\"Item_E\" onClick=\"gotoKeys('E')\">E</div>"; } if(null!=node.F && ''!=node.F ){ restr=restr+"<div class=\"keyitems\" id=\"Item_F\" onClick=\"gotoKeys('F')\">F</div>"; } if(null!=node.G && ''!=node.G ){ restr=restr+"<div class=\"keyitems\" id=\"Item_G\" onClick=\"gotoKeys('G')\">G</div>"; } if(null!=node.H && ''!=node.H ){ restr=restr+"<div class=\"keyitems\" id=\"Item_H\" onClick=\"gotoKeys('H')\">H</div>"; } if(null!=node.I && ''!=node.I ){ restr=restr+"<div class=\"keyitems\" id=\"Item_I\" onClick=\"gotoKeys('I')\">I</div>"; } if(null!=node.J && ''!=node.J){ restr=restr+"<div class=\"keyitems\" id=\"Item_J\" onClick=\"gotoKeys('J')\">J</div>"; } if(null!=node.K && ''!=node.K ){ restr=restr+"<div class=\"keyitems\" id=\"Item_K\" onClick=\"gotoKeys('K')\">K</div>"; } }else{ restr=restr+"<div class=\"keyitems\" id=\"Item_Y\" onClick=\"gotoKeys('对')\">对</div>"; restr=restr+"<div class=\"keyitems\" id=\"Item_N\" onClick=\"gotoKeys('错')\">错</div>"; } $("#selectItem").html(restr); } //得到选择题的选项 var setKeysListStr=function(node){ var restr=""; if(node.Type==1){// 判断 return null }else if(node.Type==0){ if(null!=node.A && ''!=node.A ){ restr=restr+"<p><font color=\"#993300\">A </font>"+node.A+"</p>"; } if(null!=node.B && ''!=node.B ){ restr=restr+"<p><font color=\"#993300\">B </font>"+node.B+"</p>"; } if(null!=node.C && ''!=node.C ){ restr=restr+"<p><font color=\"#993300\">C </font>"+node.C+"</p>"; } if(null!=node.D && ''!=node.D){ restr=restr+"<p><font color=\"#993300\">D </font>"+node.D+"</p>"; } if(null!=node.E && ''!=node.E ){ restr=restr+"<p><font color=\"#993300\">E </font>"+node.E+"</p>"; } if(null!=node.F && ''!=node.F ){ restr=restr+"<p><font color=\"#993300\">F </font>"+node.F+"</p>"; } if(null!=node.G && ''!=node.G ){ restr=restr+"<p><font color=\"#993300\">G </font>"+node.G+"</p>"; } if(null!=node.H && ''!=node.H ){ restr=restr+"<p><font color=\"#993300\">H </font>"+node.H+"</p>"; } if(null!=node.I && ''!=node.I ){ restr=restr+"<p><font color=\"#993300\">I </font>"+node.I+"</p>"; } if(null!=node.J && ''!=node.J){ restr=restr+"<p><font color=\"#993300\">J </font>"+node.J+"</p>"; }if(null!=node.K && ''!=node.K){ restr=restr+"<p><font color=\"#993300\">K</font>"+node.K+"</p>"; } } $("#topicKeys").html(restr); } $(document).ready(function() { SysSecond =<%=examTime %> //这里我是在服务端算好了剩余的秒数,并保存到客户端,如果过期则返回0 InterValObj = window.setInterval(SysExamCountdown, 1000); //间隔函数,1秒执行 //鼠标滑过样式 var objStr = ".keyitems"; $(objStr).each(function(i){ $(this).mouseover(function(){ $(this).removeClass("keyitems"); $(this).addClass("keyitems_over"); }); $(this).hover(function(){},function(){ $(this).removeClass("keyitems_over"); $(this).addClass("keyitems"); }); //gotoTopic('1');// }); gotoTopic('1'); //alert('D'>'A'); });
运行图片: