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

📄 readtestquestion.java

📁 考试系统
💻 JAVA
字号:
import java.io.*;
import java.util.StringTokenizer;

/**读取试题文件方法
 *
 */
public class ReadTestquestion
{
	String fileName="";//存放考题文件名的字符串 
	String correctAnswer="";//存放正确答案的字符串
	String testContent="";//试题内容
	String Selection="";//用户提交的答案
	int Score=0;//用户得分
	long Time=0;//试题用时
	boolean TestOver=false,Over=false;
	File f=null;
	FileReader in=null;
	BufferedReader bf=null;
	
	/**设置试题文件名方法
	 *
	 */
	public void setFileName(String name)
	{
		this.fileName=name;
		try
		{
			if(in!=null&&bf!=null)
			{
				in.close();//关闭流向
				bf.close();//关闭流向
			}
			f=new File(fileName);//创建文件对象
			in=new FileReader(f);//创建字符流对象
			bf=new BufferedReader(in);//创建缓冲流对象
			correctAnswer=(bf.readLine()).trim();//过滤空格
			String temp=(bf.readLine()).trim();//过滤空格
			StringTokenizer token=new StringTokenizer(temp,":");//以":"分割时间
			int hour=Integer.parseInt(token.nextToken());
			int minute=Integer.parseInt(token.nextToken());
			int second=Integer.parseInt(token.nextToken());
			Time=1000*(second+minute*60+hour*60*60);//获取时间的毫秒表示
			}
		catch(Exception e)
		{
			testContent="请选择试题文件";	
		}	
	}
	
	
	/**得到文件名方法
	 *
	 */
	public String getFileName()
	{
		return fileName;	
	}	
	
	/**得到时间方法
	 *
	 */
	public long getTime()
	{
		return Time;	
	}
	
	/**设置是否已完成考试方法
	 *
	 */
	public void setTestOver(boolean b)
	{
		TestOver=b;	
	}
	
	/**得到是否已完成考试的布尔值
	 *
	 */
	public boolean getTestOver()
	{
		return TestOver;	
	}
	
	/**得到试题内容
	 *
	 */
	public String getTestContent()
	{
		try
		{
			String s=null;
			StringBuffer temp=new StringBuffer();//创建缓冲数组
			if(bf!=null)
			{
				while((s=bf.readLine())!=null)
				{
					if(s.startsWith("*"))//判断试题开始标志
					{
						break;	
					}	
					temp.append("\n"+s);
					if(s.startsWith("endend"))//判断结束标志
					{
						in.close();
						bf.close();
						TestOver=true;
					}
					testContent=new String(temp);
				}
			}
			else
			{
				testContent=new String("请选择试题文件!");	
			}	
		}
		catch(Exception e)
		{
			testContent="当前试题已读完,考试结束";
			
		}	
		return testContent;//返回考题内容
	}
	
	/**设置考生答案方法
	 *
	 */
	public void setSelection(String s)
	{
		Selection=Selection+s;	
	}

	
	/**得到成绩方法
	 *
	 */
	public int getScore()
	{
		int length1=Selection.length();//获取考生答案长度
		int length2=correctAnswer.length();//获取正确答案长度
		int min=Math.min(length1,length2);//获取答案长度最小值
		
		for(int i=0;i<min;i++)
		{
			try
			{
				if(Selection.charAt(i)==correctAnswer.charAt(i))//判断考生答案和正确答案是否相同
				{
					Score++;	
				}		
			}
			catch(StringIndexOutOfBoundsException e)
			{
				i=0;	
			}	
		}
		return Score;	
	}
	
	/**得到考生信息方法
	 *
	 */
	public String getMessage()
	{
		int length1=Selection.length();
		int length2=correctAnswer.length();
		int length=Math.min(length1,length2);
		String message="正确答案:"+correctAnswer.substring(0,length)+"\n"+"你的回答:"+Selection+"\n";
		return message;	
	}
}

⌨️ 快捷键说明

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