前台打开页面,向后端请求题目。
后端出题,返回给前台数据
前端收到数据,进行题目展现。
在前端做题。做好后题目提交给后台。
后端判卷,返回成绩数据
前端接收成绩,展现成绩。
大概这个流程。
单纯html来做的话,那么你的题库就要在前端,用js来弄,而且做题,判卷都要用js,相对有后台我个人感觉,只题库一项用js来维护就很难管理。
//闲着,码段代码玩(function(){
var div=document.createElement("div")
,create=document.createElement("input")
,tm=document.createElement("div")
,score=document.createElement("div")
,exp=[{js:"+",w:"+"},{js:"-",w:"-"},{js:"*",w:"×"},{js:"/",w:"÷"}]
//出题
function ct(){
score.innerHTML="开始做题吧"
score.style.color="#000"
tm.innerHTML=""
tm.list=[]
for(var i=0i<10i++){
var s=document.createElement("span")
,p=document.createElement("input")
,jg=document.createElement("span")
,rnd=parseInt(Math.random()*4)
,v1=parseInt(Math.random()*1000)//千以内
,v2=exp[rnd]
,v3=parseInt(Math.random()*1000)
//除法,规范数值
if(rnd==3){
while(v3==0){
v3=parseInt(Math.random()*1000)
}
//寻找整除
if(v1<v3){
var t=v3
v3=v1
v1=t
}
if(Math.random()*10>5 && v1/v3<v3){//一半几率调整除数与被除数的间隔
v3=parseInt(v3/3)+1
}
if(v1%v3!=0){
v1-=v1%v3
}
}
s.innerText=v1+v2.w+v3+"="
p.type="text"
p.style.width="80px"
p._value=eval(v1+v2.js+v3)+""
p.jg=jg
p.onblur=js
tm.appendChild(s)
tm.appendChild(p)
tm.appendChild(jg)
tm.appendChild(document.createElement("br"))
tm.list.push(p)
}
}
//出题按钮
create.type="button"
create.value="出题"
create.onclick=ct
//显示界面
div.appendChild(create)
div.appendChild(tm)
div.appendChild(score)
document.body.appendChild(div)
//显示题目
ct()
//计算结果
function js(e){
var o=e.target
//答案错误提示部分
if(o.value==o._value){
o.jg.innerHTML="对"
o.jg.style.color="blue"
}else if(o.value!=""){
o.jg.innerHTML="错"
o.jg.style.color="red"
}else{
o.jg.innerHTML=""
}
var count=0,ecount=0,wzcount=0
for(var i=0i<tm.list.lengthi++){
o=tm.list[i]
if(o.value==o._value){
count++
}else if(o.value!=""){
ecount++
}else{
wzcount++
}
}
score.style.color="#000"
if(wzcount==0){
if(count==10){
score.innerHTML="满分100"
score.style.color="blue"
}else if(count>5){
score.innerHTML=count*10+"分,加油,改正小错误"
}else{
score.innerHTML=count*10+"分,好挫"
score.style.color="red"
}
for(var i=0i<tm.list.lengthi++){
o=tm.list[i]
o.jg.innerHTML=o._value
}
}else if(wzcount<4){
score.innerHTML="冲啊"
}else if(wzcount<6){
score.innerHTML="快点,就好了"
}else{
score.innerHTML="沉着冷静"
}
}
})()
你说的多项选择题,我是不是可以理解成多选??多选的实现是这样的:
第一: 必须将多选框放到form里面。
第二: 然后name属性完全一样,value不相同。这样当你提交到Action中的时候,只需要使用request对象获取toselect的值就行了。
第三: 获取值:request.getParameterValues("toselect"),就会将选中的多选框里面的value获取,并且返回一个String[]数组,这个数组里面就有你想要的值:即选中的值
<html>
<body>
<form>
<input type = "checkbox" value = "A" name = "toselect"/>A
<input type = "checkbox" value = "B" name = "toselect"/>B
<input type = "checkbox" value = "C" name = "toselect"/>C
<input type = "checkbox" value = "D" name = "toselect"/>D
</form>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)