201421123022 王若凡        201421123026  欧阳勇

coding详细代码

a.需求分析:


这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

  1. 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
  2. 有计时功能,能显示用户开始答题后的消耗时间。
  3. 界面支持中文简体/中文繁体/英语,用户可以选择一种;

b.功能设计


1.生成自定义数目算术题。

2.支持整数和分数的加减乘除。

3.输入答案判断对错,错误后写出正确答案。

4.集中收集错题。

5.简繁中英文切换。

6.计时功能。

思维导图

c.设计实现与代码展示    


计时功能:

B0.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
tishu=Integer.parseInt(T1.getText());//获取总题数
timer = new Timer();
finishtime=System.currentTimeMillis();
starttime=finishtime;
timer.schedule(new TimerTask()
{
public void run() {
finishtime=System.currentTimeMillis();
duration=finishtime-starttime;
String str=df.format(new Date(duration));
L12.setText(str);
if(summary==tishu){
try {
Thread.sleep(2000000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, 1000, 1000);
}
});

出题功能:

B1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
noanswer=tishu-dadui-dacuo;//算出未答题数
L9.setText("");
L8.setText(null);
T3.setText(null);
if(summary==tishu)
{
JOptionPane.showMessageDialog(null, "答题已完成,答题总题数:"+tishu+",答对题数:"+dadui+",答错题数:"+dacuo+",未答数:"+noanswer);
frame.setVisible(false);
}
//生成一个随机算术.该处代码由上次作业改成。
if(t==1){summary++;} } });

结果判断与输出

T3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent d) {
if(sum1.equals(T3.getText()))
{
L9.setText("Right!");
dadui++;
L10.setText(String.valueOf(dadui));
}
else
{
L9.setText("Error!answer is:"+sum1);
dacuo++;
FileWriter fw = null;
try {
//如果文件存在,则追加内容;如果文件不存在,则创建文件
File f=new File("D:/cuoti.txt");
fw = new FileWriter(f, true);
}
catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(fw);
pw.println(L8.getText()+"="+T3.getText()+" "+"正确答案:"+sum1 +'\n');
pw.flush();
try {
fw.flush();
pw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
L11.setText(String.valueOf(dacuo));
} }
});

错题统计收集

FileWriter fw = null;
try {
//如果文件存在,则追加内容;如果文件不存在,则创建文件
File f=new File("D:/cuoti.txt");
fw = new FileWriter(f, true);
}
catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(fw);
pw.println(L8.getText()+"="+T3.getText()+" "+"正确答案:"+sum1 +'\n');
pw.flush();
try {
fw.flush();
pw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
B6.addActionListener(new ActionListener(){//错题本打开
public void actionPerformed(ActionEvent d) {
try
{
Runtime.getRuntime().exec("notepad.exe D:/cuoti.txt");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
});

语言切换

 B3.addActionListener(new ActionListener(){//简体中文
public void actionPerformed(ActionEvent e) {
L1.setText("题数:");
L2.setText("题目:");
L3.setText("输入答案:");
L4.setText("结果:");
L5.setText("答对题数:");
L6.setText("答错题数:");
L7.setText("答题时间:");
B0.setText("开始");
B1.setText("下一题");
B6.setText("错题集");
//B2.setText("计时");
}
});
B4.addActionListener(new ActionListener(){//繁体中文
public void actionPerformed(ActionEvent e) {
L1.setText("題數");
L2.setText("題目:");
L3.setText("輸入答案:");
L4.setText("結果:");
L5.setText("答對題數:");
L6.setText("答錯題數:");
L7.setText("答題時間:");
B0.setText("開始");
B1.setText("下一題");
B6.setText("錯題集"); }
});
B5.addActionListener(new ActionListener(){//英文
public void actionPerformed(ActionEvent e) {
L1.setText("Question number");
L2.setText("Test:");
L3.setText("Enter the answer:");
L4.setText("Result:");
L5.setText("Right number:");
L6.setText("Wrong number:");
L7.setText("Answer times:");
B0.setText("Run");
B1.setText("Next");
B6.setText("WrongTest"); }
});

d.测试运行


PSP表格

PSP2.1

Personal Software Process Stages

Estimated time(h)

actual time(h)

Planning

计划

16

17

· Estimate

估计这个任务需要多少时间

16

17

Development

开发

8

9

· Analysis

需求分析 (包括学习新技术)

1

0.5

· Design Spec

生成设计文档

0.5

0.5

· Design Review

设计复审

1

1

· Coding Standard

代码规范

0.5

0.2

· Design

具体设计

2

1.5

· Coding

具体编码

8

8

· Code Review

代码复审

0.5

0.5

· Test

测试(自我测试,修改代码,提交修改)

1

1.5

Reporting

报告

1.5

1.5

·

测试报告

·

计算工作量

0.5

1

·

并提出过程改进计划

1

1

小结


此次代码结对完成,首先我和欧阳勇一起讨论并且决定了程序的总体布局和需要的组件,然后有了明确的目标。此次程序使用我的四则运算算法代码,结对写代码时当出现那种白痴错误时自己没发现而队友在旁边看着马上就能发现然后提醒你,毕竟当局者迷旁观者清。还有就是遇到问题时两个人一起商量或上网搜索然后总结讨论,这样解决问题不仅有效而且省时间。写代码时互相提出建议不断改进。

特别此次在写错题集部分时,出现文本刷新问题,刚开始会替换之前的内容并不能累计错题,然后一起讨论查资料然后综合建议解决了问题。还有就是计时部分解决方案,由于对线程不是很熟悉,然后也是两人一起学习研究解决了困难。

汉堡包式评价?

先来一片面包:两人达成共识使用java和gui实现。而且都认为朱茵是女神~没毛病。

再把肉放上:这次编程中队友的优点很容易发现他对于问题能快速发现并且解决问题的想法思路很清晰快速,做事效率高,当碰到问题时会马上进行处理不会先放那不管;缺点呢可能是编程耐心差了点。耐心点认真点无疑能使他编程水平更上一层楼,对于问题的处理能力也能得到加强。

然后再来一片面包: 两人编程中有领航员和驾驶员关系时确实能使工作更加顺利。也更能发现自己有缺但并更好的改进。

结对编程1.四则运算GUI版的更多相关文章

  1. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  2. 结对编程1——四则运算-GUI

    码市链接:https://coding.net/u/hmhhh/p/hmh-homework/git/tree/master/ 201421123003 黄建英 201421123004 黄美海 题目 ...

  3. 结对编程作业——四则运算GUI程序

    毛忠庆 201421122088 赵嘉楠 201421122065 源代码存放位置:https://gitee.com/ouwen0819/SiZeYunSuan.git 题目描述 使用 -n 参数控 ...

  4. 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...

  5. 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...

  6. 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结

    20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...

  7. 20165223 结对编程之四则运算week2-整体总结

    目录 一.结对对象 二.需求分析 三.设计思路 四.核心代码 五.功能截图 六.结对感受 一.结对对象 担任角色(本周交换角色,流动学习) 驾驶员(Driver):20165218 赵冰雨(是控制键盘 ...

  8. 20165223 结对编程之四则运算week1-阶段性总结

    目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...

  9. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...

随机推荐

  1. 怎样做才是最优雅方式切换 web 项目数据源 ?

    随着业务变迁/需求变更,JavaEE 应用中会被迫连接多个数据源进行业务处理. 怎样在不影响原有项目结构的情况下,已最优雅/最简洁的方式动态切换数据源呢? 本文已一次添加数据源后动态切换实践为例,描述 ...

  2. python之路——面向对象

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复 ...

  3. 关于Java中面向对象章节、IO 流中的重点基础知识。

    一.面向对象的三大特征,以及作用. 答:面向对象的三大特征即,封装性.继承性.多态性. 其分别的作用为 : 封装作用:将数据封装起来,提高数据的安全性, 继承作用:提高代码的复用性,减少冗余代码. 多 ...

  4. EXT.NET高效开发(二)——封装函数

    在上一篇<EXT.NET高效开发(一)--概述>中,大致的介绍了一下EXT.NET.那么本篇就要继续完成未完成的事业了.说到高效开发,那就是八仙过海各显神通.比如使用代码生成器,这点大家可 ...

  5. java修饰符public final static abstract transient

    JAVA 修饰符public final static abstract transient  关键字: public final static abstract ...  1.public prot ...

  6. Fiddler设置代理(PC和Android)

    Fiddler设置 打开Fiddler,进入Tools--->Fiddler Options,勾选以下信息:   OK,就配置完成了.   PC端设置: 以火狐为例,打开选项--->高级 ...

  7. 连上Wi-Fi 热点自动弹窗的实现方法

    当我们连上某个热点, 自动弹出登录窗口的专业名称叫做: Captive portal 原理, 实现方式有三种 1 : dns 跳转, 在热点上面实现配置, 把所有dns请求返回都配置为:服务器地址 : ...

  8. How to get the mapping relationship between two columns in a table

    If a table have column A and B Count(distinct A) as Da Count(distinct B) as Db Count(distinct A, B) ...

  9. css的颜色表示,与透明度

    今天是第一天开始写博客.主要还是想着好记性不如烂笔头.每天学点什么就记下来,也防止以后再去百度.   今天主要是一些旧知识的整理,整理中看到原来写的代码对颜色的表示有用rgb的,有用rega的,有用# ...

  10. Java8 lamda表达式快速上手

    1.对比着经典foreach 简单的循环 o相当于foreach中的临时变量,要遍历的list放在句首 list.foreach(o->{你要进行的操作}); package com.compa ...