结对编程-四则运算-GUI
201421123022 王若凡 201421123026 欧阳勇
https://git.coding.net/ttoyy/sizeyunsuan-GUI.git
a.需求分析:
这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
- 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
- 有计时功能,能显示用户开始答题后的消耗时间。
- 界面支持中文简体/中文繁体/英语,用户可以选择一种;
b.功能设计
1.生成自定义数目算术题。
2.支持整数和分数的加减乘除。
3.输入答案判断对错,错误后写出正确答案。
4.集中收集错题。
5.简繁中英文切换。
6.计时功能。
思维导图

c.设计实现与代码展示(Viewcode)
计时功能:
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 |

总结:
此次结对编程任务与王若凡合作,开始我们先对需求进行了分析,对于功能实现先定了大致方向。基础四则运算算法取用王若凡的程序,在此基础上实现各种功能。在错题集功能上耗费时间较多,想对错题集里的错题进行编号的功能还是无法完成实现。
结对编程无疑提高了我们编程的高效性,互相监督,取长补短,如我的思路较快,而他实际操作网上查找资料能力较强。两个人的思路想法在同一时间产生碰撞,让程序更好更快地完成。一个人编写另一个人旁边护航有效地发现一些错误特别是低级错误,
如此才不会产生当局者迷而陷入死循环。
汉堡包点评:
先来一片面包: 我们有着一个共同任务,对任务有着相同思路,并且我们可以互相信赖,主要是他看上了我的壁纸~;
铺上肉与佐料:队友在编程中充分地展示了他强大的动手能力与资料知识搜索能力,而且他是一个很耐心的人,是能带着我认真打代码的引航者。
不足之处在于对问题解决思路不够清晰,思路的表达条理性不够。若有一个清晰的思路加上他强大的编程动手能力,那肯定会成为无敌的编程大神。
然后再来一片面包:方向盘与gps导航,才能走的更远才能探索未知道路;互相配合,终能完成任务,更上一层楼。
结对编程-四则运算-GUI的更多相关文章
- 结对编程四则运算gui
码市地址:https://git.coding.net/linzhao/sizeyunsuangui.git 林 钊 -- 201421123105 吴世荣 -- 201421123119 王坤彬 - ...
- 结对编程-四则运算GUI的实现
一.项目成员以及coding地址: 洪灏捷(本人)201321122020 coding地址:https://git.coding.net/hoje/The-GUI-operation.git 白至 ...
- 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)
结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...
- 20175305张天钰Java结对编程四则运算(二)
Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...
- 20175305张天钰Java结对编程四则运算
Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...
- 结对编程--四则运算(Java)萧英杰 夏浚杰
结对编程--四则运算(Java)萧英杰 夏浚杰 Github项目地址 功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 使用 -n 参数控制生成题目的个数(实现) 使用 -r 参数控制题目 ...
- 结对编程--四则运算(Java)梅进鹏 欧思良
结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...
- 王译潇20162314 实验报告三plus结对编程四则运算第一阶段
北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162314 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年5月12号 实验密级: 非 ...
- Java结对编程四则运算一周小结
Java结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...
随机推荐
- selenium + ChromeDriver
Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.而对于爬虫来说,使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀 ...
- 6.linux下部署 web 项目
安装java 1.下载 linux 环境的jdk 2.上传该压缩包到 linux 系统中并且解压 tar -zxvf 压缩包名 3.配置环境变量并且刷新配置 export JAVA_HOME=/ali ...
- com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'goodsName' cannot be null
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'goodsName' cannot be n ...
- C#基础课堂笔记
第三章:运算符和表达式 1.认识运算符:运算符又叫操作符,是一个运用于运算的符号,它作用于一个或多个操作数 运算符的分类: (1)按操作数量 一元(目)运算符 作用于一个操作数 二 ...
- phpexcel导入excel处理大数据
先下载对应phpExcel 的包就行了https://github.com/PHPOffice/PHPExcel下载完成 把那个Classes 这个文件夹里面的 文件跟文件夹拿出来就好了.直接写到PH ...
- 在Python3.5中使用 The del.icio.us API
问题:参考<集体智慧编程>一书的第二章中访问del.icio.us网站的数据需要使用到事先编好的Python API.但是书上提供的API并不适用与Python3.5的版本. 解决方法:在 ...
- java版飞机大战 实战项目详细步骤.md
[toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...
- VRTK实现瞬移需要添加的脚本
进入一个新的公司,boss让实现漫游,但是新公司的Unity版本是5.6,我之前的瞬移插件不好用了,无奈之下找到一个我不熟悉的插件VRTK,但是查了很多资料也没有实现瞬移.经过自己查脚本与实验终于得到 ...
- 微信app支付android客户端以及.net服务端实现
由于公司运营需要,需要在客户端(android/ios)增加微信以及支付宝支付,在调用微信app支付时遇到一些问题,也算是一些踩过的坑,记录下来 ,希望能对.net开发者服务端网站更快的集成微信app ...
- Windows常用的一些DOS下的CMD命令整理
Windows常用的一些DOS下的CMD命令整理... -------------- 正斜杠--/////-----向右倒--网址正斜杠反斜杠--\\\\------向左倒--文件路径反斜杠 DOS命 ...