• 结对作业(测试版)


    本次结对的同学为 :

                       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已经有一段时间没接触了,现在能好好地练习一下,不仅复习了以前的知识,还加固了自己的学习,我们会继续改正,把最好的程序做出来。	
    	
    		
    			
    

      

  • 相关阅读:
    超实用的PHP代码片段
    推荐五款优秀的PHP代码重构工具
    PHP开发搜索引擎技术全解析
    怎样成为一名PHP专家?
    PHP中该怎样防止SQL注入?
    有关PHP 10条有用的建议
    fir.im Weekly
    可能是一场很 IN 的技术分享
    fir.im Weekly
    更新日志
  • 原文地址:https://www.cnblogs.com/mch-29-wamc/p/4411735.html
Copyright © 2020-2023  润新知