结对编程-四则运算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结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...
随机推荐
- Hibernate框架学习之注解配置关系映射
上篇文章我们通过注解对映射了单个实体类,但是具体项目中往往实体类之间又是相互关联的,本篇文章就是从实体类之间存在的不同关联角度,具体学习下如何映射他们之间的关联,主要涉及内容如下: 单向的一 ...
- ecshop添加菜单以及权限分配
增加菜单并添加权限: admin/includes/inc_menu.php 添加 $modules['**_name1']['name2'] = 'your href' admin/includes ...
- django实现分片上传文件
目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...
- MS08_067漏洞学习研究
p197 MS08-067漏洞渗透攻击 按照书上的设置做,exploit得到错误信息: Exploit failed [unreachable]: Rex::ConnectionRefused The ...
- 优雅的使用Chrome调试Node程序
前言 我不知道大家用什么来调试node程序.可能有的人用node-inspect,但是这货很久没更新了,而且一堆的bug用起来很不爽:可能有的人用命令行来,但是这样操作不够灵活:还有人只用consol ...
- FreeRTOS 移植到WIN10
背景 标题表述的不准确,大意是移植到WIN10的PC机,Intel I5. 最近因为项目接触了FreeRTOS 实时操作系统,想对这个操作系统有一个更深入的了解,所以决定下载源码看看,下面这个链接的随 ...
- 《Linux命令行与shell脚本编程大全》第十六章 控制脚本
一些控制脚本的方式:向脚本发送信号.修改脚本优先级,在脚本运行时切换到运行模式 16.1 处理信号 linux利用信号与运行在系统中的进程进行通信. 也可以通过对脚本进行编程,使其在收到特定信号时执行 ...
- makefile中伪目标的理解
1. 我们知道Makefile中的语法是这样: target ... : prerequisites ... command - - 2. 假如编译两个文件可以这么写: a.o:a.c gcc -c ...
- 0:A+B Problem-poj
0:A+B Problem 总时间限制: 1000ms 内存限制: 65536kB 描述 Calculate a + b 输入 Two integer a,,b (0 ≤ a,b ≤ 10) 输出 ...
- Activity讲解
Activity Activity 是 Android 应用的重要组成单元之一(另外三个是 Service.BroadcastReceiver 和 ContentProvider),而 Activit ...