结对编程-四则运算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结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...
随机推荐
- Redis轻快入门
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
- asp.net web api 文件上传
1正确的做法 public class AvaterController : BaseApiController { [HttpPost] public async Task<IHttpActi ...
- java多线程创建-Thread,Runnable,callable和threadpool
java创建多线程的方式有许多种,这里简要做个梳理 1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程.示例代码如 ...
- mysql数据库相关知识
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...
- postgresql的psql常用命令-4
psql是PostgreSQL的一个命令行交互式客户端工具 1. 查看postgresql账号 [root@localhost ~]#cat /etc/passwdroot:x:0:0:root:/r ...
- SpringCloud学习笔记(1)——Eureka
Spring Cloud Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性的Token.全局锁.领导者选举.分布式会话.集 ...
- ajax处理级联访问数据库显示
首先创建简单的html页面,写出如下代码: 静态页相关代码: js代码:
- Numpy数组对象的操作-索引机制、切片和迭代方法
前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...
- 网页设计——6.html其他标签
今天学习html的其他标签: 一.列表 1.无序列表ul 基本结构: <ul type="属性值"> <li>列表内容</li> </u ...
- appium测试准备记录
一 获取应用程序包名(手机中不安装apk) windows 环境下: aapt工具 使用aapt工具,适合给程序自动获取apk的相关信息. //aapt 是sdk自带的一个工具,在SDK/buildt ...