结对项目-四则运算 “软件”之升级版

作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

Github地址:https://github.com/rg-zpf/rg-software

结对项目成员以及各博客地址:

201606120038李家俊

博客园:https://www.cnblogs.com/-QAQ/

201606120043曾鹏菲

博客园:https://www.cnblogs.com/zpfs/

1.开发环境:IntelliJ IDEA 2018.2.2 x64

2.结对开发软件过程耗时估计与统计表

PSP2.1 Personal Software Process Stages predicted(h) actual(h)
· Planning 计划 1 1
· Estimate 估计这个任务需要多少时间 50 55
· Development 开发 3 3
· Analysis 需求分析 (包括学习新技术) 1 1
· Design Spec 生成设计文档 1 1
· Design Review 设计复审 2 2
· Coding Standard 代码规范 5 5
· Design 具体设计 1 1
· Coding 具体编码 20 22
· Code Review 代码复审 5 5
· Test 测试(自我测试,修改代码,提交修改) 10 13
· Reporting 报告 2 2
· 测试报告 0.5 0.5
· 计算工作量 1 1
· 并提出过程改进计划 0.5 0.5

 

3.扩展方向

1.用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数,并且显示用户的得分(曾鹏菲)

2.程序可以出单个整数阶乘的题目:如:4!=24(阶层在10以内随机产生)(曾鹏菲)

3.用户答题结束以后,程序可以显示用户答题所用的时间(以00:00形式显示)(李家俊)

4.程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。(每一题的答题时间)(曾鹏菲)

5.程序设置总时间5分钟,若5分钟内还未完成所有题目,时间到则当程序结束,未作答的题目当错误(程序总时间)(李家俊)

4.程序运行界面及部分关键代码:

界面:

 

部分关键代码

计时功能:程序运行,即总时间开始倒计时5分钟,若倒计时完毕还未答题完毕,则不能再作答,直接输出最后得分和做对题目数和做错题目数。

 1 tis = new Timer();
 2         tis.schedule(new TimerTask() {
 3             public void run() {
 4 
 5                 if (times==0){
 6                     code = num - count;
 7                     string = string + "\n" + "正确:" +count +"\t"+"错误:" + code +"\n"+ "你的最后分数是:"+(float)count/num*100;
 8                     Content.setText(string);
 9                     tis.cancel();
10                     timer.cancel();
11                     n=-1;
12                 }else {
13 
14                     times--;
15 
16                     long hh = times / 60 / 60 % 60;
17                     long mm = times / 60 % 60;
18                     long ss = times % 60;
19                     StrOut = "还剩" + hh + "小时" + mm + "分钟" + ss + "秒";
20                     outTime.setText(StrOut);
21                 }
22             }
23         }, 0, 1000);

 

输入题目数,题目数不能超过5题,输入完题目数,点击按钮的同时,做题开始计算做题时间(总时间与做题计算时间不同步)

Number.setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                num = Integer.parseInt(NumText.getText());
                if (num>5){
                    string = string + "\n" + "题目数不能超过5题,请重新输入!"+ "\n" + "请输入题目数目:";
                    Content.setText(string );
                }else {
                    string = string + NumText.getText();
                    Content.setText(string);
                }


                TimerTask task1 = new TimerTask() {
                    @Override
                    public void run() {
                        StrTime = String.format("%1$tM:%1$tS",System.currentTimeMillis()-time);
                    }
                };
                new Timer().schedule(task1, 1, 1000);
            }
        });

 

5.结对编程的收获和感悟:

感觉这次的结对项目在个人项目的基础上做起来并不难,两个人工作量太小,至于为什么没有做完8个扩展要求,是因为没什么兴趣写下去。为什么没有兴趣,因为有花了一些力气设计界面的,并且在开始写代码前画了一些草图,但是感觉在界面编码时并不能很好地实现自己草图上的一些设计,设计的界面不太符合现代的审美。这次写界面用了Java Fx,由于个人项目用Java写的,在大二时也学了一点Java Fx,所以一切的发生也好像水到渠成。感觉Java Fx写界面写起来不如网页的界面开发和Android的界面设计写起来那么舒服,Java Fx也有fxcss,但是自己的兴趣并不在界面设计上,fxcss和css差不多,但是我对css一知半解,fxcss也并不想去学,而且了解到还有BootstrapFx,但是资料并不多,估测Java Fx是不是处于一种不太好的发展状态呢,听说JDK11也删除了Java Fx。

  感觉自己在写代码时设计模式还需要学习和加强一些,代码写的有一些臃肿和杂乱,虽然知道MVC模式,但是在代码编写时也没有实现出来,在开发方面,自己还是太稚嫩了。

6.工作照:

 

posted on 2018-10-24 21:11  Lijiajun  阅读(266)  评论(2编辑  收藏  举报

导航