结对作业(测试版)

本次结对的同学为 :

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

  

时间: 2024-11-03 10:01:48

结对作业(测试版)的相关文章

结对作业:五子棋

本次结对作业我们组做的是五子棋,代码如下:package com.temptation.gobang; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.a

软件工程结对作业02(借鉴版)

软件工程结对作业02(借鉴版) 在编写程序的时候因为不会将Java程序嵌入进jsp中所以借鉴了一个学姐的程序,下面是学姐的程序.但在对学姐程序就行修改时发现了一些问题: 在Newjsp中能调用html中的题目个数的参数 在Myjsp中不能调用html中的题目个数的参数 其中这个参数timugeshu,是我自己后来添加的,用来改变题目个数的,与Java程序无关,只在jsp文件中作用 源程序: NewFeil.html <!DOCTYPE html> <html> <head&g

结对作业电梯调度问题

以下为结对作业,我只能做到看懂,真的不太会编..我会努力学的 问题描述: 某大楼共有20层,现安装4个电梯参数如下: 1号电梯 全楼层 最大负载800kg 2号电梯 单数层 最大负载800kg 3号电梯 双数层 最大负载1600kg 4号电梯 全楼层 最大负载2000kg 分析: 4个电梯是相互独立工作的,那么分为4个相互独立的调度模块.1号电梯与4号电梯均服务于全楼层且仅有最大负载不同,而2号和3号电梯 服务模式类似.那么1.4号电梯调度模块可合并为一个.同样地,2.3号模块也可以合并.电梯调

结对作业——我的体会

首先非常荣幸能和李保全同学搭档 ,因为李保全同学的编程能力非常强,和他搭档可以让我学到很多东西. 在真正实践的过程中,我和李保全同学重复做了好几次算法设计,但是每次都出现很多问题,然后又一次次的推翻,在这个过程中,我最大的感触就是只有不断的尝试,才可以学的更过的东西,虽然在前面几次做算法的时候出现了很多问题,不是考虑太简单,就是考虑的过于复杂.对问题没有一个统筹的认识.在李保全身上我学到了对问题分析的一些东西.例如他把电梯分成了内和外两部分 来考虑,而我刚开始只是考虑功能,没有分开去想,我觉得这

结对作业--电梯调度

结对编程 结对成员:王长(2011040101179)CODING:https://coding.net/u/smile-wang  高庆阳(2013040101173) 博客:http://www.cnblogs.com/gaoqingyang1994/   CODING:https://coding.net/u/gaoqingyang1994 结对编程的优缺点 在结对编程模式下,一对程序员可以平等的.互补地进行开发工作:他们一起分析,一起设计,一起写测试用例,一起编码,一起做测试...这样在

结对作业(1.0版)

import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.LayoutStyle.ComponentPlacement; import java.awt.Font; import javax.swing.JT

软件工程网络15结对作业1

一.需求分析 1.题目需求 1)除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 2)运算符为 +, ?, ×, ÷ 3)并且要求能处理用户的输入,并判断对错,打分统计正确率. 4)要求能处理用户输入的真分数, 如 1/2, 5/12 等 5)使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目Myapp.exe -n 10 题目分析: 1)支持真分数和整数的运算: 2)能够判断对错,且输出正确答案:能够计算正确率并输出: 3)将程序弄

结对作业1

结对作业1 结对成员:孟鲜鲜 代码跳转入口. 代码功能:静态链表实现查找功能 代码审查表 功能模块名称 静态链表实现查找功能 审查人 张子扬 审查日期 2018/4/6 代码名称 用静态链表实现查找功能 代码作者 孟鲜鲜 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 是 头文件和定义文件的目录结构是否合理? 是 版权和版本声明是否完整? 无版权声明 重要 头文件是否使用了 ifndef/define/endif 预处理块? 否 头文件中是否只存放"声明"而不存放&q

软件工程结对作业 四则运算界面设计

软件工程结对作业 四则运算界面设计 康鑫  PB16060203 娄雨禛  PB16060356 一.项目分析 二.进度规划与完成情况 三.主要函数 四.简单的数据测试 五.编程困惑与心得 原文地址:https://www.cnblogs.com/RainLou/p/8735480.html

结对作业——随机生成四则运算

结对作业 UI 第三组 朱池苇 PB16150206 刘鼎乾 PB16070837 Github 地址: 项目简介 这次软件工程结对项目为制作一个给小学生用的四则运算出题软件,然后我们抽到的是UI组,也就是负责人机交互--随机生成四则运算--使用Core组封装好的dll模块. 需求分析 对上述各属性参数(生成题目的数量,操作数的数量,题目及答案中的数值的范围--)进行设置 调用Core模块得到题目和运算结果,显示题目,接受输入,并能判断答案是否正确 增加"倒计时"功能,每个题目必须在2