java上机 第十一周 任务1 算术测试小软件

/* 
* 程序头部注释开始   
* 程序的版权和版本声明部分   
* Copyright (c) 2011, 烟台大学计算机学院学生   
* All rights reserved.   
* 文件名称:算术测试小软件                        
* 作    者:薛广晨                               
* 完成日期:2012  年 11 月  07  日   
* 版 本号:x1.0            
   
* 对任务及求解方法的描述部分   
* 输入描述:  
* 问题描述:编写 一个Teacher类负责给出算术题目,
*        随机给出两个整数并进行运算,并判断回答者的答案是否正确;
* 	 编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出答案;
* 	 编写一个程序执行入口运行该软件
* 程序输出:   
* 程序头部的注释结束 
*/
package xue;

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

public class ComputerFrame  extends JFrame implements ActionListener{
	int flag, x, y;
	JButton btn1,btn2;  
	JTextField tf1,tf2,tf3;  
	JLabel labe1,labe2,labe3; 
	Teacher teacher;

    
	ComputerFrame()
	{
		teacher = new Teacher();
		setLayout(new FlowLayout());  
		setTitle("ComputerFrame");
		btn1 = new JButton("获取题目");
		btn2 = new JButton("确认答案");
		tf1 = new JTextField(10);
		tf2 = new JTextField(10);
		tf3 = new JTextField(10);
		labe1 = new JLabel("+");
		labe2 = new JLabel("=");
		labe3 = new JLabel("你还没有回答呢");
		add(btn1);
		add(tf1);
		add(labe1);
		add(tf2);
		add(labe2);
		add(tf3);
		add(btn2);
		add(labe3);
		
		tf1.setEditable(false);
		tf2.setEditable(false);
		
		btn1.addActionListener(this);
		btn2.addActionListener(this);
		
		setBounds(100, 100, 500, 120);  
		setVisible(true);  
		validate(); 
		
	}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == btn1)
		{
			
			
			while(true)
			{
				teacher.getQuestion();
				x = teacher.getX();
				y = teacher.getY();
				flag = teacher.getflag();
				labe3.setText("你还没有回答呢");
				tf3.setText(null);
				
				if(y != 0 && flag != 4)
					break;
				
			}
			
			switch(flag)  
			{  
			case 1:labe1.setText("+");break;  
			case 2:labe1.setText("-");break;  
			case 3:labe1.setText("*");break;  
			case 4:labe1.setText("/");break;                 
			}  
			
			tf1.setText(x + "");
			tf2.setText(y + "");
		}
		else if(e.getSource() == btn2)
		{
			if(tf3.getText().equals(""))
				labe3.setText("请输入答案");
			
			else
			{
				double s = 0;
				int c = 0;
				try
				{
					c = Integer.parseInt(tf3.getText());
					switch(flag)  
					{  
					case 1:s = x + y;break;  
					case 2:s = x - y;break;  
					case 3:s = x * y;break;  
					case 4:s = x / y;break;                 
					}  
					if(c == s)
					{
						labe3.setText("回答正确");
					}
					else
					{
						labe3.setText("回答错误");
					}
				}
				catch(NumberFormatException event)
				{
					labe3.setText("请输入数字");
					//JOptionPane.showMessageDialog(null, "格式不正确", "提示信息",JOptionPane.DEFAULT_OPTION );
				}		
			}
		}
		
	}

}

//Teacher类
package xue;

public class Teacher {
	private int x;
	private int y;
	private int flag;
	public int getX() {
		return x;
	}
	public int getY() {
		return y;
	}
	public int getflag() {
		return flag;
	}
	
	public void getQuestion()
	{
		x = (int) (Math.random() * 100);
		y = (int) (Math.random() * 100);
		flag = (int) (Math.random()*4+1);
	}
}

运行结果:


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值