结对作业(测试版)

本次结对的同学为 :

                   201306114314 李泳江  

                   201306114309 谢洪跃

package ComputeProject;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public  class MainFrame extends JFrame implements ActionListener{ 
	private JLabel time,jbl0,jbl1,jbl2,jbl3,jbl4,jbl5,jbl6,jbl7,jbl8,jbl9,jbl10, jbl11,jbl12,jbl13,jbl14,jbl15,jbl16,jbl17,jbl18,jbl19,jbl20;  
	private JTextField  jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8,jtf9,jtf10, jtf11,jtf12,jtf13,jtf14,jtf15,jtf16,jtf17,jtf18,jtf19,jtf20; 
	private JButton jb1,jb2,jb3;  
	private JPanel jp1,jp2;   
	private ArrayList questions,answers,results;  
	private static int right=0,wrong=0;  
	private int score=0;  
	private String s=null;     
	class BgPanel extends JPanel   
	{   
		public void paintComponent(Graphics g)
		{    
			Graphics2D gd = (Graphics2D)g;    
			super.paintComponent(g);     
			Image img = Toolkit.getDefaultToolkit().getImage("Images/Main.jpg");    
			gd.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
		}   
	} 
	public MainFrame()  
	{   
		this.InitQuestion();   
		jp1 = new JPanel();   
		jp1.setLayout(null);    
		jp1.setBounds(0,100,800,400);    
		jp1.setOpaque(false);    
		jbl1 = new JLabel("第一题:");    
		jbl1.setBounds(new Rectangle(120,0,50,30));   
		jbl1.setForeground(Color.yellow);   
		jbl2 = new JLabel("第二题:");    
		jbl2.setBounds(new Rectangle(120,40,50,30));   
		jbl2.setForeground(Color.yellow);   
		jbl3 = new JLabel("第三题:");    
		jbl3.setBounds(new Rectangle(120,80,50,30));   
		jbl3.setForeground(Color.yellow);   
		jbl4 = new JLabel("第四题:");    
		jbl4.setBounds(new Rectangle(120,120,50,30));   
		jbl4.setForeground(Color.yellow);   
		jbl5 = new JLabel("第五题:");    
		jbl5.setBounds(new Rectangle(120,160,50,30));   
		jbl5.setForeground(Color.yellow);   
		jbl6 = new JLabel("第六题:");    
		jbl6.setBounds(new Rectangle(120,200,50,30));   
		jbl6.setForeground(Color.yellow);   
		jbl7 = new JLabel("第七题:");    
		jbl7.setBounds(new Rectangle(120,240,50,30));   
		jbl7.setForeground(Color.yellow);   
		jbl8 = new JLabel("第八题:");    
		jbl8.setBounds(new Rectangle(120,280,50,30));   
		jbl8.setForeground(Color.yellow);   
		jbl9 = new JLabel("第九题:");    
		jbl9.setBounds(new Rectangle(120,320,50,30));   
		jbl9.setForeground(Color.yellow);   
		jbl10 = new JLabel("第十题:");    
		jbl10.setBounds(new Rectangle(120,360,50,30));   
		jbl10.setForeground(Color.yellow);    
		jbl11 = new JLabel(" = ");    
		jbl11.setBounds(new Rectangle(440,0,50,30));   
		jbl11.setForeground(Color.yellow);   
		jbl12 = new JLabel(" = ");    
		jbl12.setBounds(new Rectangle(440,40,50,30));   
		jbl12.setForeground(Color.yellow);     
		jbl13 = new JLabel(" = ");
		jbl13.setBounds(new Rectangle(440,80,50,30));   
		jbl13.setForeground(Color.yellow);   
		jbl14 = new JLabel(" = ");    
		jbl14.setBounds(new Rectangle(440,120,50,30));   
		jbl14.setForeground(Color.yellow);   
		jbl15 = new JLabel(" = ");    
		jbl15.setBounds(new Rectangle(440,160,50,30));   
		jbl15.setForeground(Color.yellow);   
		jbl16 = new JLabel(" = ");    
		jbl16.setBounds(new Rectangle(440,200,50,30));   
		jbl16.setForeground(Color.yellow);   
		jbl17 = new JLabel(" = ");    
		jbl17.setBounds(new Rectangle(440,240,50,30));   
		jbl17.setForeground(Color.yellow);    
		jbl18 = new JLabel(" = ");    
		jbl18.setBounds(new Rectangle(440,280,50,30));   
		jbl18.setForeground(Color.yellow);   
		jbl19 = new JLabel(" = ");    
		jbl19.setBounds(new Rectangle(440,320,50,30));   
		jbl19.setForeground(Color.yellow);   
		jbl20 = new JLabel(" = ");    
		jbl20.setBounds(new Rectangle(440,360,50,30));   
		jbl20.setForeground(Color.yellow);   
		jtf1 = new JTextField();    
		jtf1.setHorizontalAlignment(JTextField.CENTER);   
		jtf1.setText((String)questions.get(0));  
		jtf1.setEditable(false);    
		jtf1.setBounds(new Rectangle(200,0,200,30));   
		jtf2 = new JTextField();    
		jtf2.setHorizontalAlignment(JTextField.CENTER);   
		jtf2.setText((String)questions.get(1));   
		jtf2.setEditable(false);    
		jtf2.setBounds(new Rectangle(200,40,200,30));   
		jtf3 = new JTextField();    
		jtf3.setHorizontalAlignment(JTextField.CENTER);   
		jtf3.setText((String)questions.get(2));   
		jtf3.setEditable(false);    
		jtf3.setBounds(new Rectangle(200,80,200,30));   
		jtf4= new JTextField();    
		jtf4.setHorizontalAlignment(JTextField.CENTER);   
		jtf4.setText((String)questions.get(3));    
		jtf4.setEditable(false);    
		jtf4.setBounds(new Rectangle(200,120,200,30));     
		jtf5 = new JTextField();
		jtf5.setHorizontalAlignment(JTextField.CENTER);   
		jtf5.setText((String)questions.get(4));   
		jtf5.setEditable(false);    
		jtf5.setBounds(new Rectangle(200,160,200,30));   
		jtf6 = new JTextField();    
		jtf6.setHorizontalAlignment(JTextField.CENTER);   
		jtf6.setText((String)questions.get(5));    
		jtf6.setEditable(false);    
		jtf6.setBounds(new Rectangle(200,200,200,30));   
		jtf7 = new JTextField();    
		jtf7.setHorizontalAlignment(JTextField.CENTER);   
		jtf7.setText((String)questions.get(6));    
		jtf7.setEditable(false);    
		jtf7.setBounds(new Rectangle(200,240,200,30));   
		jtf8 = new JTextField();    
		jtf8.setHorizontalAlignment(JTextField.CENTER);   
		jtf8.setText((String)questions.get(7));   
		jtf8.setEditable(false);    
		jtf8.setBounds(new Rectangle(200,280,200,30));   
		jtf9 = new JTextField();    
		jtf9.setHorizontalAlignment(JTextField.CENTER);   
		jtf9.setText((String)questions.get(8));   
		jtf9.setEditable(false);    
		jtf9.setBounds(new Rectangle(200,320,200,30));   
		jtf10 = new JTextField();    
		jtf10.setHorizontalAlignment(JTextField.CENTER);   
		jtf10.setText((String)questions.get(9));    
		jtf10.setEditable(false);    
		jtf10.setBounds(new Rectangle(200,360,200,30));   
		jtf11 = new JTextField();    
		jtf11.setBounds(new Rectangle(490,0,150,30));   
		jtf12 = new JTextField();    
		jtf12.setBounds(new Rectangle(490,40,150,30));   
		jtf13 = new JTextField();    
		jtf13.setBounds(new Rectangle(490,80,150,30));   
		jtf14 = new JTextField();    
		jtf14.setBounds(new Rectangle(490,120,150,30));   
		jtf15 = new JTextField();    
		jtf15.setBounds(new Rectangle(490,160,150,30));   
		jtf16 = new JTextField();    
		jtf16.setBounds(new Rectangle(490,200,150,30));   
		jtf17 = new JTextField();    
		jtf17.setBounds(new Rectangle(490,240,150,30));     
		jtf18 = new JTextField();
		jtf18.setBounds(new Rectangle(490,280,150,30));   
		jtf19 = new JTextField();    
		jtf19.setBounds(new Rectangle(490,320,150,30));   
		jtf20 = new JTextField();    
		jtf20.setBounds(new Rectangle(490,360,150,30));       
		jp1.add(jbl1);   
		jp1.add(jbl2);   
		jp1.add(jbl3);   
		jp1.add(jbl4);   
		jp1.add(jbl5);   
		jp1.add(jbl6);   
		jp1.add(jbl7);   
		jp1.add(jbl8);   
		jp1.add(jbl9);   
		jp1.add(jbl10);   
		jp1.add(jbl11);   
		jp1.add(jbl12);   
		jp1.add(jbl13);   
		jp1.add(jbl14);   
		jp1.add(jbl15);   
		jp1.add(jbl16);   
		jp1.add(jbl17);   
		jp1.add(jbl18);   
		jp1.add(jbl19);   
		jp1.add(jbl20);   
		jp1.add(jtf1);   
		jp1.add(jtf2);   
		jp1.add(jtf3);   
		jp1.add(jtf4);   
		jp1.add(jtf5);   
		jp1.add(jtf6);   
		jp1.add(jtf7);   
		jp1.add(jtf8);   
		jp1.add(jtf9);   
		jp1.add(jtf10);  
		jp1.add(jtf11);   
		jp1.add(jtf12);  
		jp1.add(jtf13);  
		jp1.add(jtf14);  
		jp1.add(jtf15);  
		jp1.add(jtf16);  
		jp1.add(jtf17);   
		jp1.add(jtf18);
		jp1.add(jtf19);   
		jp1.add(jtf20);   
		jp2 = new JPanel();
		jp2.setLayout(null);  
		jp2.setBounds(0,500,800,100);  
		jp2.setOpaque(false);      
		jb1 = new JButton("开始");   
		jb1.setBounds(new Rectangle(450,10,70,30)); 
		jb1.addActionListener(this);   
		jb2 = new JButton("提交");  
		jb2.setBounds(new Rectangle(530,10,70,30)); 
		jb2.addActionListener(this); 
		jb3 = new JButton("退出");   
		jb3.setBounds(new Rectangle(610,10,70,30)); 
		jb3.addActionListener(this);  
		jbl0 = new JLabel("时间: ");   
		jbl0.setFont(new Font("微软雅黑",Font.BOLD,15));  
		jbl0.setForeground(Color.red);   
		jbl0.setBounds(new Rectangle(100,10,50,30));  
		time = new JLabel();   
		time.setForeground(Color.red);   
		time.setBounds(new Rectangle(160,10,100,30));       
		jp2.add(jbl0);  
		jp2.add(jb1);  
		jp2.add(jb2);  
		jp2.add(jb3);  
		jp2.add(time);     
		this.setContentPane(new BgPanel()); 
		this.setVisible(true);    
		this.setLayout(null);  
		this.setTitle("四则运算测试系统");  
		this.setSize(800,600);  
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		this.setResizable(false); 
		this.add(jp1);   
		this.add(jp2);  
	}  
	public int timer=0;   
	public boolean running=true;
	public void startTimer()  
	{    
		new java.lang.Thread(new Runnable(){    
			public void run()   
			{     
				while(running)   
				{     
					try{      
						Thread.sleep(1000);//睡一秒        
						}     catch(Exception e){}      
					timer++;      
					time.setText("已使用:  " + String.valueOf(timer) + "  秒");  
					}  
				}  
			}).start(); 
	}
	private  void InitQuestion()   
	{  
		questions = new ArrayList(10);  
		answers = new ArrayList(10);   
		String[] operations = {"+","-","*","/"}; 
		Random random = new Random();  
		String operation = null;  
		int num1 = 0;  
		int num2 = 0;     
		for(int i = 0; i < 10; i++)   
		{        //自动生成运算符     
			operation = operations[(int)(random.nextDouble()*10*2/5)];    //自动生成2个100以内的数      
			num1 = (int)(random.nextDouble()*100);     
			num2 = (int)(random.nextDouble()*100);     
			if(operation.equals("+"))    
			{           
				answers.add(i, s.valueOf(num1+num2));    
				questions.add(i, num1 + "  +  " + num2 );  
			}     
			else if(operation.equals("-"))   
				{      
				answers.add(i, s.valueOf(num1-num2));     
				questions.add(i, num1 + "  -  " +num2);     
				} 
			else if(operation.equals("*"))     
			{     
				answers.add(i, s.valueOf(num1*num2));     
				questions.add(i, num1 + "  *  " +num2);    
			}     
			else if(operation.equals("/"))   
			{      //防止除数为0     
				while(num2 == 0)     
				{       
					num2 = (int)(random.nextDouble()*100);   
				}     
				answers.add(i, s.valueOf(num1/num2));    
				questions.add(i, num1 + "  /  " +num2);   
				}      
			}       
		}   
	public void getResult()  
	{   
		results = new ArrayList(10);  
		results.add(0,jtf11.getText()); 
		results.add(1,jtf12.getText()); 
		results.add(2,jtf13.getText()); 
		results.add(3,jtf14.getText()); 
		results.add(4,jtf15.getText());  
		results.add(5,jtf16.getText()); 
		results.add(6,jtf17.getText());  
		results.add(7,jtf18.getText());  
		results.add(8,jtf19.getText());  
		results.add(9,jtf20.getText());    
	}    
public static void main(String []args)  
	{  
		Component mf = null;
	  MainFrame mf1 = new MainFrame(); 
		JOptionPane.showMessageDialog(mf, "请点击" + "[" + "开始" + "]" + "按钮开始测试!"); 
	}   
	public void actionPerformed(ActionEvent e) 
	{  
		if(e.getSource()==jb1)  
		{     
			this.startTimer(); 
		}    
		else if(e.getSource()==jb2)   
		{ 
			this.getResult();
			running=false;
			for(int i=0;i<10;i++)
			{
				if(results.get(i).equals(answers.get(i)))    
				{      
					right++;     
				}    
				else    
				{     
					wrong++;     
				}          
			}        
			score = right * 10;         
			ResultFrame rf = new ResultFrame(right,wrong,timer,score);     
			this.dispose();      
			}    
		else if(e.getSource()==jb3)   
		{   
			this.dispose();    
			JOptionPane.showMessageDialog(this, "谢谢使用!");  
			System.exit(0);  
		}     
	}  
}


		
	
	
	
				
						
			
		
		
			
		

	

  

package ComputeProject;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.event.AncestorListener;

public  class ResultFrame extends JFrame implements ActionListener{ 
	private JLabel jbl1,jbl2,jbl3,jbl4;  
	private JButton jb1,jb2;  
	private JPanel jp1,jp2; 
	private int compare; 
	class BgPanel extends JPanel  
	{  
		private int compare;
		public void paintComponent(Graphics g)    
		{     
			Graphics2D gd = (Graphics2D)g;  
			super.paintComponent(g);    
			Image img = Toolkit.getDefaultToolkit().getImage("Images/Result.jpg");   
			gd.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);    
		}    
	public void ResultFrame(int right,int wrong,int time,int score)  
	{  
		this.compare = score;
		jp1 = new JPanel();    
		jp1.setBounds(0,50,400,150);  
		jp1.setOpaque(false);  
		jp1.setLayout(null);  
		jbl1 = new JLabel("答  对:   " + right + "  道 题");  
		jbl1.setForeground(Color.yellow);  
		jbl1.setBounds(new Rectangle(80,0,200,30));  
		jbl2 = new JLabel("答  错:   " + wrong + "  道 题");  
		jbl2.setForeground(Color.yellow);   
		jbl2.setBounds(new Rectangle(80,40,200,30)); 
		jbl3 = new JLabel("用  时:   " + time + "  秒");  
		jbl3.setForeground(Color.yellow);    
		jbl3.setBounds(new Rectangle(80,80,200,30));  
		jbl4 = new JLabel("得  分:   " + score);  
		jbl4.setForeground(Color.yellow);   
		jbl4.setBounds(new Rectangle(80,120,200,30));      
		jp1.add(jbl1);   
		jp1.add(jbl2);   
		jp1.add(jbl3);   
		jp1.add(jbl4);     
		jp2 = new JPanel();   
		jp2.setLayout(null);    
		jp2.setOpaque(false);   
		jp2.setBounds(0,200,400,100);  
		jb1 = new JButton("查看评价");   
		jb1.addAncestorListener((AncestorListener) this);    
		jb1.setBounds(new Rectangle(60,20,100,30)); 
		jb2 = new JButton("退出测试");  
		jb2.addActionListener((ActionListener) this);   
		jb2.setBounds(new Rectangle(200,20,100,30));    
		jp2.add(jb1);  
		jp2.add(jb2);     
		this.setContentPane(new BgPanel());  
		this.setLayout(null);   
		this.setTitle("测试结果");  
		this.setResizable(false);  
		this.setSize(400,300); 
		this.add(jp1);    
		this.add(jp2); 
		this.setVisible(true);       
		}   
	private void setResizable(boolean b) {
		// TODO 自动生成的方法存根
		
	}
	private void setTitle(String string) {
		// TODO 自动生成的方法存根
		
	}
	private void setContentPane(BgPanel bgPanel) {
		// TODO 自动生成的方法存根
		
	}
	public void actionPerformed(ActionEvent e)
	{  
		if(e.getSource()==jb1)  
		{   
			if(compare >= 90)     
				JOptionPane.showMessageDialog(this, "恭喜你,获得 A级水平!");   
			else if(compare >= 80)    
				JOptionPane.showMessageDialog(this, "恭喜你,获得B级水平!");   
			else if(compare >= 70)     
				JOptionPane.showMessageDialog(this, "恭喜你,获得C级水平!");  
			else if(compare >= 60)     
				JOptionPane.showMessageDialog(this, "好险啊,你才刚刚及格!");   
			else      
				JOptionPane.showMessageDialog(this, "很遗憾,你没有及格!");   
		}    
		else if(e.getSource()==jb2)  
		{    
			this.dispose();   
			System.exit(0);   
		}  
	}
	private void dispose() {
		// TODO 自动生成的方法存根
		
	}   
}
	
	public ResultFrame(int right, int wrong, int timer, int score) {
		
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成的方法存根
		
	}
}		
		
做这个程序的时候我觉得有难度,界面我和我的伙伴是做出来了,可是有一些按钮的功能实现不了,我和他的Java都不太好,我们讨论了很久也还是不怎么能实现那个提交的功能,这还是个半成品啊,有点失望,做了那么久还是只能做个半成品出来,觉得自己学得还是不够。做这个实验对自己的收获还是很大的,因为Java已经有一段时间没接触了,现在能好好地练习一下,不仅复习了以前的知识,还加固了自己的学习,我们会继续改正,把最好的程序做出来。	
	
		
			

  

posted @ 2015-04-09 20:44  14-李泳江  阅读(183)  评论(4编辑  收藏  举报