JAVA--第十一周实验--编写一个算术测试小软件

JAVA--第十一周实验--编写一个算术测试小软件_第1张图片

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

public class TestMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		 ComputerFrame frame = new ComputerFrame("算术测试");

	}

}

 

 

 

package ma;

public class Teacher{
	
	int numberone,numbertwo;
	
	String operator="  ";
	
	boolean right;

	public int getnumberone()
	{
		 numberone= (int) (Math.random()*100);
		
		 return numberone;
	}
	
	public int getnumbertwo()
	{
		 numbertwo= (int) (Math.random()*100+1);
		
		 return numbertwo;
	}
	
	public String getoperator()
	{
		
		int i=(int)(Math.random()*10+1);
		
		if(i>0&&i<=3)
		{
			operator="+";
		  
		}
		if(i>3&&i<=5)
		{
			operator="-";
		  
		}
		
		if(i>5&&i<=8)
		{
			operator="*";
		  
		}
		if(i>8&&i<=11)
		{
			operator="/";
		  
		}
		return operator;
		
	}
	
	public boolean check(int answer){
		   if(operator.equals("+")){
		    if(answer==numberone+numbertwo)
		     right=true;
		    else
		     right=false;
		   }
		   else if(operator.equals("-")){
		    if(answer==numberone-numbertwo)
		     right=true;
		    else
		     right=false;
		   }
		   else if(operator.equals("*")){
		    if(answer==numberone*numbertwo)
		     right=true;
		    else
		     right=false;
		   }
		   else if(operator.equals("/")){
		    if(answer==numberone/numbertwo)
		     right=true;
		    else
		     right=false;
		   }
		   return right;
		}
	
	
		


}


 

package ma;

import java.awt.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JFrame;

@SuppressWarnings("serial")
public class ComputerFrame extends JFrame implements ActionListener{
	
	Teacher teacher;
	
	TextField text1,text2,textresult;
	
    Button getquestion,ensureanswer;
    
    Label label1,labelanswer,label2;
    
    ComputerFrame(String s)
    {
         super(s);//命名
    	
    	teacher = new Teacher();
    	
    	setLayout(new FlowLayout());
    	
    	getquestion= new Button("获取题目");
    	
    	text1 = new TextField(10);//创建textOne,其可见字符长是10   

    	
    	text2 = new TextField(10);
    	
    	textresult= new TextField(10);
    	
        label1= new Label("+");
    	
    	label2= new Label ("=");
    	
    	labelanswer= new Label("你还没有答案呢 ?");
    	
    	
    	
    	ensureanswer= new Button("确认答案");
    	
    	
    	add(getquestion);
    	add(text1);
    	add(label1);
    	add(text2);
    	add(label2);
    	add(textresult);
    	add(getquestion);
    	add(ensureanswer);
    	add(labelanswer);
    //	textresult.requestFocus();
    	
    	  
    	text1.setEditable(false);//该方法设置文本框的可编辑性
    	 
    	text2.setEditable(false);
    	
    	getquestion.addActionListener(this);//将当前窗口注册为getquestion的ActionEvent事件监视器
    	
    	ensureanswer.addActionListener(this);
    	
    	textresult.addActionListener(this);
    	
    	setBounds(100,100,450,100);//设置出现屏幕上时的初始位置
    	 
    	setLocationRelativeTo(null);//居中
    	 
    	setVisible(true);//窗口的可见性
    	
    	validate();
    	  
   
    	   

    }
    	   
 @Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==getquestion)
		{
		  int numberone= teacher.getnumberone();
		  
		  int numbertwo= teacher.getnumbertwo();
		  
		  String operator = teacher.getoperator();
		  
		  text1.setText(""+numberone);//设置文本框中为参数字符串指定的文本
		    
		  text2.setText(""+numbertwo);
		  
		 label1.setText(operator);
		   
		 labelanswer.setText("请回答");
		   
		 textresult.setText(null);
		

		}
		if(e.getSource()==ensureanswer)
		{
			String answer = textresult.getText();
			
			try{ int result = Integer.parseInt(answer);
	        if(teacher.check(result)==true){
	       labelanswer.setText("你回答正确");
	        }
	        else{
	       labelanswer.setText("你回答错误");
	        }
	    }
	    catch(NumberFormatException x){
	     labelanswer.setText("请输入数字字符");
	    }
		
			//textresult.requestFocus();
			
			validate();//确保组件具有有效的布局
			
		}
		
	}

		

}
	

 

 

你可能感兴趣的:(JAVA--第十一周实验--编写一个算术测试小软件)