java 限时答题

public class Test {
	public static void main(String[] args) {
		StandardExamInTime win=new StandardExamInTime();
		win.setTitle("限时答题!");
		win.setTestFile(new java.io.File("test.txt"));
		win.setMAX(10);
	}

}
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class StandardExamInTime extends JFrame implements ActionListener,ItemListener{
	File testFile;
	int MAX=10;
	int maxTime=MAX,score=0;
	javax.swing.Timer time;//计时器
	JTextArea showQuesion;//显示试题
	JCheckBox choiceA, choiceB, choiceC, choiceD;
	JLabel showScore,showTime;
	String correctAnswer;//正确答案
	JButton reStart;
	FileReader inOne;
	BufferedReader inTwo;
	StandardExamInTime(){
		time=new javax.swing.Timer(1000,this);
		showQuesion=new JTextArea(2,16);
		setLayout(new FlowLayout());
		showScore=new JLabel("分数"+score);
		showTime=new JLabel(" ");
		add(showTime);
		add(new JLabel("问题:"));
		add(showQuesion);
		choiceA=new JCheckBox("A");
		choiceB=new JCheckBox("B");
		choiceC=new JCheckBox("C");
		choiceD=new JCheckBox("D");
		choiceA.addItemListener(this);
		choiceB.addItemListener(this);
		choiceC.addItemListener(this);
		choiceD.addItemListener(this);
		add(choiceA);
		add(choiceB);
		add(choiceC);
		add(choiceD);
		add(showScore);
		reStart=new JButton("再做一遍!");
		reStart.setEnabled(false);
		add(reStart);
		reStart.addActionListener(this);
		setBounds(100,100,200,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	public void setMAX(int n){
		MAX=n;
	}
	public void setTestFile(File f){
		testFile=f;
		score=0;
		try{
			inOne=new FileReader(testFile);
			inTwo=new BufferedReader(inOne);
			readOneQuesion();
			reStart.setEnabled(false);
		}
		catch(IOException exp){
			showQuesion.setText("没有选题!");
		}
	}
	public void readOneQuesion(){
		showQuesion.setText(null);
		try{
			String s=null;
			while((s=inTwo.readLine())!=null){
				if(!s.startsWith("-")){
					showQuesion.append("\n"+s);
				}
				else{
					s=s.replace("-", "");
					correctAnswer=s;
					break;
				}
			}
			time.start();//启动计时
			if(s==null){
				inTwo.close();
				reStart.setEnabled(true);
				showQuesion.setText("题目完毕");
				time.stop();
			}
		}
		catch(IOException exp){}
	}
	public void itemStateChanged(ItemEvent e){
		JCheckBox box=(JCheckBox)e.getSource();
		String str=box.getText();
		boolean booOne=box.isSelected();
		boolean booTwo=str.compareToIgnoreCase(correctAnswer)==0;
		if(booOne){
   			if(booTwo){
    				score++;
    				showScore.setText("分数:"+score);
   	 			time.stop();
    				maxTime=MAX;
    				readOneQuesion();
   			}
   			else{
    				time.stop();
    				maxTime=MAX;
    				readOneQuesion();
   			}
  		}		box.setSelected(false);
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==time){
			showTime.setText("剩:"+maxTime+"秒");
			maxTime--;
			if(maxTime<=0){
				maxTime=MAX;
				readOneQuesion();
			}
		}
		else if(e.getSource()==reStart){
			setTestFile(testFile);
		}
	}
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java在线答题源码下载是一种基于Java语言开发的在线答题系统。该系统可以让用户在线参与答题、提升自己的知识水平。Java在线答题源码可以通过互联网进行下载和安装。在安装完成后,用户可以在任意设备上使用该系统,无需额外付费。 Java在线答题系统支持多种题型。用户可以选择单选、多选、填空、判断等题型进行答题。该系统可以根据用户的选项自动判定答案是否正确,并且还支持对答题结果进行记录和评分。用户可以在答题后查看自己的得分和正确的答案。 除此之外,Java在线答题系统还支持管理员模式。管理员可以登录系统并进行管理操作,如题目管理、成绩管理、用户管理等。该系统还拥有良好的交互界面和友好的用户体验,可以让用户在使用时更加轻松愉悦。 总之,Java在线答题源码下载是一款功能强大、易于使用的在线答题系统。用户可以通过该系统提升自己的知识水平,管理员可以通过该系统进行管理工作。该系统具有高度的灵活性和扩展性,可以满足不同需求的用户。 ### 回答2: Java 在线答题源码是一个基于 Java 技术开发的原始代码,可以用于开发一个在线答题系统。该系统可以用于学校的课程考试、公共考试或自我练习。学生可以在系统上回答各种类型的问题,比如单选题、多选题或者填空题等。答题系统利用计算机技术来处理题目和答案的匹配,从而自动给出得分或评分。 该答题系统主要包括以下部分:前端用户界面、后端数据库和计算处理。前端用户界面提供一个友好的用户界面,让学生方便地上网答题。后端数据库存储了所有的题目题库,程序将答题结果自动保存到数据库中。计算处理模块负责计算答题结果,自动给出得分,并将答题结果反馈给学生。 该源码通常包含 Java 开发工具 Eclipse 或 Netbeans 的实现文件。它提供了完整的开发框架和各种类库,方便使用者进行二次开发和定制。该源码通常还包含使用手册和示例代码,可供参考和学习。 总之,Java 在线答题源码是一个非常有用的工具,可以帮助开发者快速搭建在线答题系统,省去了自己开发答题系统的时间和精力。它也有助于提高学生的学业水平,为在线教育和学习提供了有力支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值