编写简单的在线考试系统

 开发一个在线考试系统,你发现考题录入后,给考题排顺序很麻烦。有没有好的解决方法?

现在这里有两个方法实现简单的在线开始系统,希望与你们分享一下

首先创建一个Question类

 

package model;
public class Question {

	private int id;
	private int order;
	private String name;
//	创建无参构造方法
	public Question() {
		super();
		// TODO Auto-generated constructor stub
	}
//	创建含参构造方法
	public Question(int id, int order, String name) {
		super();
		this.id = id;
		this.order = order;
		this.name = name;
	}
//   get,set方法
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getOrder() {
		return order;
	}
	public void setOrder(int order) {
		this.order = order;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

创建QuestionAction

package action;

import java.util.ArrayList;
import java.util.List;

import model.Question;

import com.opensymphony.xwork2.ActionSupport;

public class QuestionAction extends ActionSupport {
	// 未排序试题
	private List<Question> question = new ArrayList<Question>();
	// 已排序试题
	private List<Question> orderquestion = new ArrayList<Question>();
	// 排序后的数组 数组中存放的试题id
	private String[] rightList = new String[4];

	public String[] getRightList() {
		return rightList;
	}
	public void setRightList(String[] rightList) {
		this.rightList = rightList;
	}
	public List<Question> getQuestion() {
		return question;
	}
	public void setQuestion(List<Question> question) {
		this.question = question;
	}
	public List<Question> getOrderquestion() {
		return orderquestion;
	}
	public void setOrderquestion(List<Question> orderquestion) {
		this.orderquestion = orderquestion;
	}
	private List<Question> getAll() {
		List<Question> list = new ArrayList<Question>();
		Question ql = new Question(1, 0, "q1");
		Question q2 = new Question(2, 0, "q2");
		Question q3 = new Question(3, 0, "q3");
		Question q4 = new Question(4, 0, "q4");

		list.add(ql);
		list.add(q2);
		list.add(q3);
		list.add(q4);
		return list;
	}

	// 模拟从数据库查询所有的试题
	public String selectAll() {
		question = getAll();
		return SUCCESS;
	}

	// 传递数据到排序页面
	public String order() {
		question = getAll();
		return SUCCESS;
	}

	// 排序结束
	public String orderback() {
		for(int i=0;i<rightList.length;i++){
			String key=rightList[i];
			//根据主键查询question对象
			Question q =findQuestionByid(key);
			q.setOrder(i+1);
			orderquestion.add(q);
		}
		question =orderquestion;
		return SUCCESS;
	}
	private Question findQuestionByid(String Key){
		if(Key.equals("1")){
			Question q=new Question(1,0,"q1");
			return q;
		}else if(Key.equals("2")){
			Question q=new Question(2,0,"q2");
			return q;	
	   }else if(Key.equals("3")){
		Question q=new Question(3,0,"q3");
		return q;
		}else{
			Question q=new Question(4,0,"q4");
			return q;
			}
		}
}


创建list.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  
  <body>
                 试题列表<br/>
     <s:iterator value="question" var="question">
          题号:<s:property value="order"/>
          试题<s:property value="name"/><br/>      
     </s:iterator>
   <s:a href="hello/order">排序</s:a>
  </body>
</html>

现在使用第一种方法解决排序问题:(Optiontransferselect)

   创建order.jsp

 

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%@taglib uri="/struts-dojo-tags" prefix="sx"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

</head>

<body>
<s:form action="/hello/orderback">
	<s:optiontransferselect 
	    label="试题排序" 
	    leftTitle="未排序试题" 
	    rightTitle="已排序试题"
		doubleList="orderquestion" 
		doubleListKey="id" 
		doubleListValue="name"
		list="question" 
		listKey="id"
		listValue="name"
		name="leftList"
		doubleName="rightList" 
				
		addToLeftLabel="向左移动"
		addToRightLabel="向右移动" 
		headerKey="cnKey"
		headerValue="未排序试题列表"
		doubleHeaderKey="enKey" 
		doubleHeaderValue="已排序试题列表"
		addAllToRightLabel="全部导入右侧" 
        addAllToLeftLabel="全部导入左侧" 
		selectAllLabel="选中所有"
		doubleMultiple="true"
		>

	</s:optiontransferselect>
	<s:submit value="排序完成" 
	 οnclick="selectAllOptionsExceptSome(document.getElementById('leftList'), 'key', 'cnKey');
	          selectAllOptionsExceptSome(document.getElementById('rightList'), 'key', 'enKey');"/>
	</s:form>
</body>
</html>


配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="hello" namespace="/hello" extends="struts-default">
		<action name="question" class="action.QuestionAction" method="selectAll">
			<result name="success">
				/list.jsp
			</result>
		</action>
		<action name="order" class="action.QuestionAction" method="order">
			<result name="success">
				/order.jsp
			</result>
		</action>
		<action name="orderback" class="action.QuestionAction" method="orderback">
			<result name="success">
				/list.jsp
			</result>
		</action>
	</package>
</struts>    

进入order.jsp页面后,页面如图所示:


 

 进入页面后,把所有试题移到已排序试题列表中  ,并对其进行排序。排序后点击排序完成按钮,进入排序成功页面,即list.jsp页面

第二种方法解决排序问题:(利用strust2中updown标签实现排序)

创建index.jsp

  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%@taglib uri="/struts-dojo-tags" prefix="sx"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

</head>

<body>
<s:form action="/hello/orderback">
	 <s:updownselect 
    list="question" 
    allowSelectAll="true" 
    name="rightList" 
    moveDownLabel="向下移" 
    moveUpLabel="向上移" 
    listKey="id" 
    listValue="name" 
    selectAllLabel="全选" 
    headerKey="enKey" 
    headerValue="需要排序的列表"/>
    <s:submit value="排序完成" 
    	 οnclick="selectAllOptionsExceptSome(document.getElementById('rightList'), 'key', 'enKey');"/>
   </s:form>

</body>
</html>

此时struts.xml也要重新配置一下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="hello" namespace="/hello" extends="struts-default">
		<action name="question" class="action.QuestionAction" method="selectAll">
			<result name="success">
				/list.jsp
			</result>
		</action>
		<action name="order" class="action.QuestionAction" method="order">
			<result name="success">
				/index.jsp
			</result>
		</action>
		<action name="orderback" class="action.QuestionAction" method="orderback">
			<result name="success">
				/list.jsp
			</result>
		</action>
	</package>
</struts>   

进入index.jsp页面后,页面如图所示:

进入页面后,对其进行排序,排序完成后点击   排序完成按钮进入成功页面即list.jsp。如图所示:

这只是运用ajax和struts2编写的一个简单的在线考试系统。我会继续努力写出更好的小程序的。



 


 

 

 

 

 


 

 

 

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值