结对编程-四则运算GUI的实现
一、项目成员以及coding地址:
洪灏捷(本人)201321122020 coding地址:https://git.coding.net/hoje/The-GUI-operation.git
白至幸 201421122116 博客园地址 http://www.cnblogs.com/EtihwXD/
视频演示地址:http://v.youku.com/v_show/id_XMzEwMjIyMDE3Ng==.html?spm=a2hzp.8253869.0.0
二、结对编程题目描述
在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI,成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
有计时功能,能显示用户开始答题后的消耗时间;
界面支持中文简体/中文繁体/英语,用户可以选择一种。
三、需求分析
- 将上次基于控制台的代码写成GUI界面;
- 设置“英语|简体中文|繁体中文”选项;
- 开始答题并记录答题时间。
四、思维导图

五、项目实现
语言选择的代码实现
private void initialize() {
// TODO Auto-generated method stub
frame = new JFrame();
if(lang == 1){
frame.setTitle("arithmetic");
}
else if(lang == 2){
frame.setTitle("四则运算");
}
else{
frame.setTitle("四則運算");
}
frame.setSize(900, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Label Title = new Label("題目:", Label.CENTER);
Label ans = new Label("答案:", Label.CENTER);
Label time = new Label("用時:", Label.CENTER);
Label right = new Label("正確數量:", Label.CENTER);
Label wrong = new Label("錯誤數量:", Label.CENTER);
final Label Titles = new Label();
final JTextField anss = new JTextField(12);
final Label rns = new Label();
final Label times = new Label();
final Label rights = new Label();
final Label wrongs = new Label();
JButton next = new JButton("下一題");
next.setFont(new Font("宋体", Font.PLAIN, 16));
JButton check = new JButton("檢查答案");
check.setFont(new Font("宋体", Font.PLAIN, 16));
if(lang == 1){
Title.setText("quiz:");
ans.setText("answer: ");
time.setText("time:");
right.setText("correct:");
wrong.setText("wrong:");
next.setText("next");
check.setText("check");
right.setText("Correct question number:");
wrong.setText("Error question number:");
}
else if(lang ==2 ){
Title.setText("题目:");
ans.setText("答案: ");
time.setText("用时:");
right.setText("正确数量:");
wrong.setText("错误数量:");
next.setText("下一题");
check.setText("检查答案");
right.setText("正确题数:");
wrong.setText("错误题数:");
}
计时功能的代码实现
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));
times.setText(str);
if (summary == titles) {
try {
Thread.sleep(2000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}, 1000, 1000);
判断答案是否正确并记录对错数目
check.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(results.equals(anss.getText())){
if(lang == 1){
rns.setText("Correct!");
rightNum = rightNum + 1;
rights.setText(String.valueOf(rightNum));
}
else if(lang == 2){
rns.setText("正确!");
rightNum = rightNum + 1;
rights.setText(String.valueOf(rightNum));
}
else{
rns.setText("正確!");
rightNum = rightNum + 1;
rights.setText(String.valueOf(rightNum));
}
}else{
if(lang == 1){
rns.setText("Wrong!");
wrongNum = wrongNum + 1;
wrongs.setText(String.valueOf(wrongNum));
}
else if(lang == 2){
rns.setText("错误!");
wrongNum = wrongNum + 1;
wrongs.setText(String.valueOf(wrongNum));
}
else{
rns.setText("错误!");
wrongNum = wrongNum + 1;
wrongs.setText(String.valueOf(wrongNum));
}
}
六、功能截图展示
语言选择界面

不同语言界面演示



选择题数和范围
计时运行和判断对错题数

六、小结感受
- 对于结对编程是否能1+1>2的结果?我觉得是肯定的,在编程过程中,有许多自己考虑不到的问题,或许别人一个提醒就豁然开朗;
七、评价
优点:对于问题的综合处理能力好,逻辑思维不错;
缺点:代码写的有乱
希望他提高的地方:多交流,共同进步
八、PSP展示


结对编程-四则运算GUI的实现的更多相关文章
- 结对编程四则运算gui
码市地址:https://git.coding.net/linzhao/sizeyunsuangui.git 林 钊 -- 201421123105 吴世荣 -- 201421123119 王坤彬 - ...
- 结对编程-四则运算-GUI
201421123022 王若凡 201421123026 欧阳勇 https://git.coding.net/ttoyy/sizeyunsuan-GUI.git a.需求分析: ...
- 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结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...
随机推荐
- java获取当前上一周、上一月、上一年的时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calend ...
- Java中的Redis应用
1.配置redis集群 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding ...
- Java多线程由易到难
线程可以驱动任务,因此你需要一种描述任务的方式,这可以由Runnable接口来提供.要想定义任务,只需实现Runnable接口并编写run方法,使得该任务可以执行你的命令. public class ...
- C#中消息的工作流程
C#中的消息被Application类从应用程序消息队列中取出,然后分发到消息对应的窗体,窗体对象的第一个响应函数是对象中的protected override void WndProc(ref Sy ...
- [转载] Redis资料汇总专题
转载自http://www.cnblogs.com/tommyli/archive/2011/12/14/2287614.html 1.Redis是什么? 十五分钟介绍 Redis数据结构 Redis ...
- [转载] Netty
转载自http://lippeng.iteye.com/blog/1907279 Netty是什么? 本质:JBoss做的一个Jar包 目的:快速开发高性能.高可靠性的网络服务器和客户端程序 优点:提 ...
- vim7.3中文乱码问题
在测试机安装vim7.3之后编辑中文文本出现乱码问题. vim在编译安装的时候: ./configure --enable-gdb --enable-multibyte --enable-cscope ...
- mysql数据库常用命令笔记
连接数据库:mysql -h localhost -u root -p 000000 退出:exit; \q; quit; SET foreign_key_checks = 0; 禁用外键 ...
- ubuntu16.04安装交叉编译链
我使用的是arm-linux-gcc 4.3.2版本,其他版本类似,附上下载链接: https://pan.baidu.com/s/1geUOfab 密码: frzy 首先我的安装包是tar.bz2的 ...
- 了解Python列表的一些方法
首先定义一个名字列表,然后使用print() BIF在屏幕上显示这个列表. 接下来,使用len() BIF得出列表中有多少个数据项,然后再访问并显示第2个数据项的值: 创建了列表之后,可以使用列表方法 ...