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. 读书笔记(一)—— 浅析浏览器渲染过程和html中的文件加载

    在构建页面时,我们会在html中载入一个或多个css和js文件.或许大家都已经习惯了"最佳实践"中,css文件应该放在<head>标签中引入,而js文件则是放在< ...

  2. 实现wpf的值转换器

    从数据库取出来的数据是1,2,3,4,5,不过要显示在控件上的,是1,2,3,4,5对应的string值,怎么办?wpf提供了很好的实现方法,那就是值转换器,我们需要做的是: 1.定义值转换类,继承I ...

  3. [STL] day 1~2 Problem Set

    Q#1 #include <cmath> #include <cstdio> #include <vector> #include <iostream> ...

  4. vcruntime140.dll丢失解决

    之前安装好apache2.4后,打开突然报这样的错误,所以百度一下,发现了问题所在,原因是系统需要安装一个插件,才能正常运行apache2.4 Microsoft Visual C++ 2005 Re ...

  5. securecrt鼠标右键的配置

    在使用的secureCRT的情况下,选择好要复制的内容后点击右键时,会直接在命令行粘贴内容.如果不想右键直接粘贴而是跳出菜单选择,就要进行设置了. 方法如下: options->Gloabal ...

  6. 计蒜客模拟赛D2T3 蒜头君救人:用bfs转移状压dp

    题目链接:https://nanti.jisuanke.com/t/16444 题意: 蒜头君是一个乐于助人的好孩子,这天他所在的乡村发生了洪水,有多名村民被困于孤岛上,于是蒜头君决定去背他们离开困境 ...

  7. Python第一行代码

    Python版本:Python 3.6.1 0x01 命令行交互 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计 ...

  8. 关于浏览器解析html全过程详解

    本人web前端菜鸟一枚,第一次在这里发博客梳理知识,知识都是从各地方查阅引用以及自己的理解得来,有什么错误的地方欢迎指正. DOM文档通常加载的步骤: 1.解析HTML结构. 2.加载外部脚本和样式表 ...

  9. Qt实现冒泡提示框

    通过QLabel创建类似冒泡方式的提示框(提示框显示位置为父类控件居中位置,具体可根据需要自行修改),鼠标停留提示框界面时查看信息,离开时自动淡化消失的效果: 头文件定义 #ifndef _TTipW ...

  10. WTL--SDI框架分析

    创建SDI产生的基本类:CMainFrame,CAboutDlg和CWTLView(WTL为项目名). 由此可见,不同于MFC,WTL少了文档类,它的结构就只有简单的窗口类和视图类,而至于串行化(MF ...