结对编程1

https://coding.net/u/lhl1212/p/ArithmeticTest/git
201421123037&201421123041

题目描述

将上次基于命令行的四则运算小程序做成GUI,成为一个由基本功能、一定价值的程序。在下面的功能需求实现两个。
1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
2.有计时功能,能显示用户开始答题后的消耗时间。
3.界面支持中文简体/中文繁体/英语,用户可以选择一种;

需求分析

  • 具有界面
  • 计时功能
  • 语言选择
  • 增量计算

程序设计

功能流程图

程序流程图

代码展示

语言选择功能:

	public void setLanguage() {
		String[] choiceLanguage = { "简体中文", "繁体中文", "English" };
		String language = (String) JOptionPane.showInputDialog(null, "请选择客户端的语言:\n", "Choice a language for client",
				JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), choiceLanguage, "简体中文");
		if (language == null) {
			System.exit(-1);
		} else {
			try {
				reader = new BufferedReader(new FileReader(new File("language/" + language + ".txt")));
				String s;
				while ((s = reader.readLine()) != null) {
					tips.add(s);
				}
				reader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

计时功能

public void showTime() {
		labTime = new JLabel(tips.get(1) + "00:00");
		labTime.setBounds(50, 0, 120, 50);
		jpMain.add(labTime);
		new Thread() {
			public void run() {
				while (true) {
					try {
						Thread.sleep(1000);
						seconds++;
						if (seconds >= 60) {
							seconds = 0;
							minutes++;
						}
						if (seconds < 10)
							secStr = "0" + seconds.toString();
						else
							secStr = seconds.toString();
						if (minutes < 10)
							minStr = "0" + minutes.toString();
						else
							minStr = minutes.toString();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					labTime.setText(tips.get(1) + minStr + ":" + secStr);
					if(isEnd)
						break;
				}
			}
		}.start();
	}

关闭按钮的鼠标监听事件

public void actionPerformed(ActionEvent e) {
		btnExit.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
		

程序运行

语言选择

进入不同语言界面:

点击提交后:

功能上只实现了计时和语言选择的功能,增量式的还未实现。

小结感受

这次合作虽然没有1+1>2的效果,但是能够在编程过程中多一个伙伴,至少有大于1的效果。在制定编码规范后都能很好的执行。由于是舍友,平常经常接触比较熟悉,再加上我的合作伙伴是一个能听取别人意见的人,在想法不一致的时候能直接提出来进行讨论。再遇到意见相左的时候,我们会分别陈述自己的观点,然后再进行比较,采取双方都同意的方法。
这次的任务有些功能没实现,主要原因我觉得是两个人的能力都不是很强,经常在编码过程卡住然后一起查资料。希望在平常都能再提高一下自己的姿势水平。

psp

合作现场

posted @ 2017-03-15 09:25  是装的  阅读(268)  评论(1编辑  收藏  举报