第三次作业

学号:

201421122078

201421122085

项目地址:https://coding.net/u/maobinggan/p/shishi/git

1 .需求分析

1把第一次作业的程序做成GUI,成为一个有基本功能、一定价值的程序。

2.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

3.有计时功能,能显示用户开始答题后的消耗时间。

4.界面支持中文简体/中文繁体/英语,用户可以选择一种;

2.程序设计

针对选择的2-3个新开发功能做设计,使用思维导图:

3.代码展示

3.1计时器代码

        //计时器代码
        class shishi3 extends Thread {
            private long noww = 0l;
            private long start = System.currentTimeMillis();// 程序启动时间的毫秒值
            private long time;
            public void run() {
                int i=0;
                while (true) {

                    noww = System.currentTimeMillis();// 获取一秒之后的毫秒值
                    System.out.println("start="+start);
                    System.out.println("noww="+noww);
                    time = noww - start;// 两个时间相减的到毫秒差
                    System.out.println("time="+time);
                    System.out.println("(time / 1000 % 60)="+(time / 1000 % 60));
                    timetime=time;
                    String ssss=String.format("%02d:%02d:%02d\n",
                            time / (1000 * 60 * 60) % 60/**/, 
                            time / (1000 * 60)% 60/**/, 
                            (time / 1000 % 60)/**/);// 格式化字符串输出
               
                        l1.setText(ssss);
                        i++;
                        try {
                            Thread.sleep(1000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    
                }
            }

3.2从文件读取历史记录

//从文件读取历史记录
				try {
					BufferedReader br3 = new BufferedReader(new FileReader(file3));
					String s = null;	
				
					before = br3.readLine();
					if(before==null) {
						totalright=now;
					}else {
						totalright=Integer.parseInt(before)+now;
						System.out.println("直接打印String类型的before"+before);
						br3.close();	
					}
				
				} catch (Exception e3) {
					e3.printStackTrace();
				}
				System.out.println("try1结束");
				System.out.println("try2");
				try {
					PrintWriter pw3 = new PrintWriter(file3);
					pw3.println(totalright);
					pw3.close();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				System.out.println("try2结束");
				JOptionPane.showMessageDialog(null, co+"\n"+fi+"\n"+"用时:"+(timetime / 1000 % 60)+"秒\n"+"本次答对:"+now+"题"+"\n"+"累计答对:"+totalright+"题");

  

4.程序运行

初始界面:

开始答题

点击提交查看对错:

点击下一页按钮翻页:

 

 

点击结束答题按钮查看统计结果

5.小结感受:结对编程真的能够带来1+1>2的效果吗?

结对编程可以带来1+1>2的效果,通过分工合作能节省时间,提高工作效率。确实完成了更高质量的代码。程序编的不那么容易出BUG,而且代码也写得更为优雅和紧凑.

6.运用“汉堡包”的方式,评价你的合作伙伴,指出优点、缺点,希望ta提高的地方。

在完成代码编程之前,我们一起讨论采用哪些算法思想。在完成代码编程之后,我们一起讨论如何优化完善代码。虽然刚开始各自有各自的想法,但我们经过一番讨论之后,我们得出最终的一个解决方案。能够及时讨论问题,这是他的一个优点。至于缺点,对于这次结对编程项目,没有合理安排时间,以至于后面的工作有点盲目,代码质量差。我想这也是我的缺点所在。

7.PSP表格

 

posted on 2017-10-21 21:44  maobinggan  阅读(209)  评论(1编辑  收藏  举报