https://git.coding.net/Luo_yujie/sizeyunsuan.app.git

201421123034

201421123032

1. 需求分析

这次作业新引用了语言选择,计时器与统计正确率功能。首先,在搜索语言国际化后发现,现在程序的开发与使用不仅仅仅限于本地,java语言国际化、多元化已经成为一种必然趋势,这就要求我们必须使用同一套规则,所以,语言选择功能是适应潮流所必需的。计时器与统计正确率功能能让使用本程序的用户更加省心、便捷,约束性更强。

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

a.语言选择 用户可以在首界面选择英文、中文、繁体中文语言

b.计时器 按下计时器按钮开始计时,按下结束按钮结束计时,用户可以根据自己需求选择开始做题时间

c.统计正确率 根据用户输入的回答与正确答案的比对,计算正确率并输出

3. 代码展示

a.语言选择功能

    btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();//销毁当前页面
new English().setVisible(true); //下个页面显示出来 }
});

b.统计正确率功能

JButton button_1 = new JButton("提交答案");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String[] ans =textArea_1.getText().split("\n");
String strings[]=new String[list11.size()];
for(int i=0,j=list11.size();i<j;i++){
strings[i]=list11.get(i);
} int count=0;
for(int i = 0;i < list11.size();i++){
if(ans[i].equals(strings[i]))
{
print.add("正确\n");
count++;
}
else{print.add("错误\n");}
} textArea_2.append(print+"\n");
double sum =((double)count/(double)(list11.size()))*100;
lblNewLabel.setText("正确率为:"+sum+"%");
}
});

c.计时器功能

public class timer extends JFrame {
final Label lab = new Label();
Date now = new Date();
@SuppressWarnings("deprecation")
public timer() {
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
setBounds(550, 270, 278, 245);
final Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
Date now2 = new Date(now.getTime() + 1000);
now = now2;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
lab.setText(formatter.format(now));
}
});
Button b1 = new Button("开始");
Button b2 = new Button("停止");
b2.setBounds(235, 209, 67, 40);
b1.setBounds(65, 209, 67, 40);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Button b = (Button) e.getSource();
b.setLabel("开始");
timer.start();
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Button b = (Button) e.getSource();
b.setLabel("停止");
timer.stop();
}
});

4. 程序运行:程序运行及每个功能的使用截图。

a.欢迎界面,选择语言

b.语言分类界面

c.主要功能界面

5. 小结感受:结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。

本次结对编程两个人一起讨论的效果明显比第一次高效而且有帮助,第一次个人作业时,由于每个人的思路不一样,寻求帮助时,听别人的解释也是一头雾水。这次的结对编程时讨论起来就有目的有针对性得多了。

在语言国际化功能设计当中遇到了很多高深的代码,所以这个功能还有待开发。设计过程中最难解决的时题目的输出,经多次实验发现,最合适的还是用JTextArea文本域输出,虽然看起来像是用于输入的文本框,但是像这种多行多个输出还是用文本域比较合适。

在代码设计过程当中,我们还是比较少用到第一次个人作业的思想与方法,基于GUI的设计许多语言跟控制台不一样就得重新设计编写。所以可能下次以结对作业开始,再进行个人作业,让我们自己分开再完善我们自己的功能可能效果更好一点。

6.

PSP2.1 Personal Software Process Stages Time (h) Senior Student Time (h)
Planning 计划 0.2 0.3
· Estimate 估计这个任务需要多少时间 0.1 0.1
Development 开发 5 6.3
· Analysis 需求分析 (包括学习新技术) 0.5 1
· Design Spec 生成设计文档 0.2 0.2
· Design Review 设计复审 0.2 1.2
· Coding Standard 代码规范 0.1 0.1
· Design 具体设计 1 0.5
· Coding 具体编码 1 1.5
· Code Review 代码复审 0.3 0.1
· Test 测试(自我测试,修改代码,提交修改) 0.4 0.5
Reporting 报告 0.15 0.1
· 测试报告 0.05 0.05
· 计算工作量 0.05 0.05
· 并提出过程改进计划 0.2 0.4

7.过程

结对编程1 (四则运算基于GUI)的更多相关文章

  1. 第二次作业:结对编程,四则运算的GUI实现

    小伙伴:201421123031 余洋 201421123044  潘志坚  题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

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

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段 如今的编写,进入了一段时间的中坚阶段,小伙伴的思路虽然很一致,但是总是存在着一定问题,这就造成了我们中坚阶 ...

随机推荐

  1. 特殊的ip地址

    特殊IP地址 一.0.0.0.0 严格说来,0.0.0.0已经不是一个真正意义上的IP地址了.它表示的是这样一个集合:所有不清楚的主机和目的网络.这里的“不清楚”是指在本机的路由表里没有特定条目指明如 ...

  2. Jmeter关联,正则表达式提取器使用

     一.Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据: 二.正则表达式提取器: 1.比如 ...

  3. 前端到后台ThinkPHP开发整站(6)

    今天终于把整个后台管理系统弄好了,其实没什么难点,只是作为一个Thinphp学习的练手项目,这个项目,现在还只能算是做了一半,还有前台展示方面的功能没有完成.先过一遍后台的功能吧! 1.首页 2.菜单 ...

  4. MySQL Flush导致的等待问题

    --MySQL Flush导致的等待问题 -------------------------------2014/07/13 前言 在实际生产环境中有时会发现大量的sql语句处于waiting for ...

  5. 17个新手常见Python运行时错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  6. Oracle execute and call

    --execute和call的区别 -------------------------2014/01/14 EXEC is a sqlplus command that put its argumen ...

  7. mongodb相关 (population)

    记录Mongodb的populate Mongodb是文档型数据库,不存在像关系型数据库一样的外键设置,但通过Mongodb中的populate函数可以模拟关系型数据库的外键连接后的查询功能. 文档型 ...

  8. 【物联网云端对接-3】通过MQTT协议与微软Azure IoT Hub进行云端通信

    在上一篇文章<通过MQTT协议与阿里云物联网套件进行云端通信>中,我们介绍了通过MQTT对接阿里云的物联网套件.其实同样的代码,稍加调整也可以对接到微软Azure IoT hub上,不过需 ...

  9. React Native热更新(iOS)-Pushy

    React Native的出现,使的开发iOS代码出现了更便捷的方式.由于RN是使用脚本语言编写的,实现了"解释执行"的方式,而这种执行方式的修改只需替换脚步即可,不需要重新发布程 ...

  10. 接口的作用(C#)

    C#中的接口(Interface)对于很多初学者来说是个很容易迷糊的东西,使用起来很简单,无非就是定义接口,接口里面包含一些属性.索引器.事件和一些没有修饰符的方法,也没有方法的具体实现代码:然后在类 ...