📄 readtestquestion.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 + -