⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testequals.java

📁 中应用程序的访问权限对Java Web Console 中应用程序的访问权限 成功登录 Web 控制台后,可能无法自动访问在该控制台中注册的所有应用程序。通常,必须安装应用程序,才能让所有的用户在控制
💻 JAVA
字号:
package edu.yinhe.mis.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import edu.yinhe.mis.dto.Reply_cardDTO;
/**
 * 定义整型变量in 并规定它的值只能为0,1或者2
 * 0表示考生没选中一个正确选项;1表示考生至少选中一个正确选项但有漏选无错选;2表示考生答案与标准答案一致
 * @author 何亮
 *
 */
public class Testequals {
	/**
	 * 考生答案与标准答案的长度相等时
	 * @param obj
	 * @return in
	 */
	public int eq(Object obj) {
		Reply_cardDTO rdto=new Reply_cardDTO();
		rdto=(Reply_cardDTO) obj;
		String a=rdto.getStandard_key();
		String b=rdto.getStudent_key();
		int in=0;
		if(a.length()==2){//标准答案的选项为2个
			char[] c=new char[2];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}
	//		System.out.println(c);
			Character c0=c[0];
			Character c1=c[1];
			if(c0==c1){//考生选取二个一样的答案
				char[] ch={c[0]};//去掉一个答案,转化为考生只选一个答案
				rdto.setStudent_key(String.valueOf(ch));//调用co()方法
				Testequals tq=new Testequals();
				in=tq.co(rdto);
		//		System.out.println(ch);
			}else{
				/**
				 * 将考生答案按字典顺序排序
				 */
				if(c0.hashCode()<c1.hashCode()){
					c[0]=c0;
					c[1]=c1;
				}
				else{
					c[0]=c1;
					c[1]=c0;
				}
			}
			if(a.equals(String.valueOf(c))){
				in=2;
				//	System.out.println("成功");
			}else{
				//	System.out.println("失败");
			}
		}
		if(a.length()==3){//标准答案的选项为3个
			char[] c=new char[3];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}
		//	System.out.println(c);
			Character c0=c[0];
			Character c1=c[1];
			Character c2=c[2];
			if(c0==c1&&c1==c2){//考生选取三个一样的答案
				char[] ch={c[0]};//去掉二个答案,转化为考生只选一个答案
				rdto.setStudent_key(String.valueOf(ch));//调用co()方法
				Testequals tq=new Testequals();
				in=tq.co(rdto);
	//			System.out.println(ch);
			}else{
				if(c0==c1||c0==c2||c1==c2){//考生答案中有二个一样的选项
					char[] ch1=new char[2];
			//		System.out.println("考生选取重复的答案");
					for(int i=0;i<b.length();i++){//去掉一个重复答案 
						c[i]= b.charAt(i);
						Character ci=c[i];
						for(int j=0;j<b.length();j++){
							c[j]= b.charAt(j);
							Character cj=c[j];
							if(i!=j&&ci.hashCode()==cj.hashCode()){
							char[] ch={c[2-j],c[Math.abs(j-1)]};
							ch1=ch;
						//	System.out.println(ch);
							}
						}
					}
					rdto.setStudent_key(String.valueOf(ch1));//调用co()方法
					Testequals tq=new Testequals();
					in=tq.co(rdto);
			//		System.out.println(c);
				}else{//考生选取的答案中的选项都不同

					/**
					 * 将考生答案按字典顺序排序
					 */
					if(c0.hashCode()<c1.hashCode()){
						c[0]=c0;
						c[1]=c1;
						c0=c[0];
						c1=c[1];
					}else{
						c[0]=c1;
						c[1]=c0;
						c0=c[0];
						c1=c[1];
					}if(c1.hashCode()<c2.hashCode()){
						c[1]=c1;
						c[2]=c2;
						c1=c[1];
						c2=c[2];
					}else{
						c[1]=c2;
						c[2]=c1;
						c[1]=c2;
						c[2]=c1;
						c1=c[1];
						c2=c[2];
					}if(c0.hashCode()<c1.hashCode()){
						c[0]=c0;
						c[1]=c1;
						c0=c[0];
						c1=c[1];
					}else{
						c[0]=c1;
						c[1]=c0;
						c0=c[0];
						c1=c[1];
					}
					if(a.equals(String.valueOf(c))){
						in=2;
						//	System.out.println("成功");
					}else{
						//	System.out.println("失败");
					}
					//	System.out.println(c);
				}
			}
		}
		if(a.length()==4){//标准答案的选项为4个
			char[] c=new char[4];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}
		//	System.out.println(c);
			Character c0=c[0];
			Character c1=c[1];
			Character c2=c[2];
			Character c3=c[3];
			if(c0!=c1&&c0!=c2&&c0!=c3&&c1!=c2&&c1!=c3&&c2!=c3){//考生选取四个完全不一样的答案
				in=2;
			}else{//考生漏选
				in=1;
			}

		}

		return in;
	}
	/**
	 * 考生答案的选项比标准答案的选项少
	 * @param obj
	 * @return in
	 */
	public int co(Object obj) {
		Reply_cardDTO rdto=new Reply_cardDTO();
		rdto=(Reply_cardDTO) obj;
		String a=rdto.getStandard_key();
		String b=rdto.getStudent_key();
		int in=0;
		if(b.length()==1){
			if(a.indexOf(b)==-1){//标准答案的选项中没有考生的选项
				in=0;
			}else{
				in=1;
			}
		}
		if(b.length()==2){
			char[] c=new char[2];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}
			if(c[0]!=c[1]){
				if(a.indexOf(c[0])!=-1&&a.indexOf(c[1])!=-1){//标准答案的选项中没有考生的选项
					in=1;
				}
			}
		}
		return in;
	}
	/**
	 * 考生答案的选项比标准答案的选项多
	 * @param obj
	 * @return in
	 */
	public int cy(Object obj) {
		Reply_cardDTO rdto=new Reply_cardDTO();
		rdto=(Reply_cardDTO) obj;
		String a=rdto.getStandard_key();
		String b=rdto.getStudent_key();
		int in=0;
		if(b.length()==3){//考生答案的选项为3个
			char[] c=new char[3];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}if(c[0]==c[1]&&c[1]==c[2]){
				if(a.indexOf(c[0])!=-1){
					in=1;
				}
			}else{
				if(a.indexOf(c[0])!=-1&&a.indexOf(c[1])!=-1&&a.indexOf(c[2])!=-1){//标准答案的选项中没有考生的选项
					in=2;
				}else{
					in=0;
				}
			}
		}
		if(b.length()==4){//考生答案的选项为4个
			char[] c=new char[4];
			for(int i=0;i<b.length();i++){
				c[i]= b.charAt(i);
			}
			if(c[0]==c[1]&&c[1]==c[2]&&c[2]==c[3]){
				if(a.indexOf(c[0])!=-1){
					in=1;
				}
			}
			if(a.length()==2){
				if(a.indexOf(c[0])!=-1&&a.indexOf(c[1])!=-1&&a.indexOf(c[2])!=-1&&a.indexOf(c[3])!=-1){//标准答案的选项中没有考生的选项
					in=2;
				}else{
					in=0;
				}
			}
			if(a.length()==3){
				char[] d=new char[3];
				for(int i=0;i<b.length();i++){
					d[i]= a.charAt(i);
				}
				if(a.indexOf(c[0])!=-1&&a.indexOf(c[1])!=-1&&a.indexOf(c[2])!=-1&&a.indexOf(c[3])!=-1){
					if(b.indexOf(d[0])!=-1&&b.indexOf(d[1])!=-1&&b.indexOf(d[2])!=-1){
						in=2;
					}else{
						in=1;
					}
				}
			}
			
		}
		return in;
	}
}	



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -