一、项目成员以及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,成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

  1. 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

  2. 有计时功能,能显示用户开始答题后的消耗时间;

  3. 界面支持中文简体/中文繁体/英语,用户可以选择一种。

三、需求分析

  1. 将上次基于控制台的代码写成GUI界面;
  2. 设置“英语|简体中文|繁体中文”选项;
  3. 开始答题并记录答题时间。

四、思维导图

五、项目实现

      语言选择的代码实现

 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的实现的更多相关文章

  1. 结对编程四则运算gui

    码市地址:https://git.coding.net/linzhao/sizeyunsuangui.git 林 钊 -- 201421123105 吴世荣 -- 201421123119 王坤彬 - ...

  2. 结对编程-四则运算-GUI

     201421123022 王若凡        201421123026  欧阳勇 https://git.coding.net/ttoyy/sizeyunsuan-GUI.git a.需求分析: ...

  3. 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)

    结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...

  4. 20175305张天钰Java结对编程四则运算(二)

    Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...

  5. 20175305张天钰Java结对编程四则运算

    Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...

  6. 结对编程--四则运算(Java)萧英杰 夏浚杰

    结对编程--四则运算(Java)萧英杰 夏浚杰 Github项目地址 功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 使用 -n 参数控制生成题目的个数(实现) 使用 -r 参数控制题目 ...

  7. 结对编程--四则运算(Java)梅进鹏 欧思良

    结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...

  8. 王译潇20162314 实验报告三plus结对编程四则运算第一阶段

    北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162314 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年5月12号 实验密级: 非 ...

  9. Java结对编程四则运算一周小结

    Java结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...

随机推荐

  1. Redis轻快入门

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  2. asp.net web api 文件上传

    1正确的做法 public class AvaterController : BaseApiController { [HttpPost] public async Task<IHttpActi ...

  3. java多线程创建-Thread,Runnable,callable和threadpool

    java创建多线程的方式有许多种,这里简要做个梳理 1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程.示例代码如 ...

  4. mysql数据库相关知识

    什么是数据库?                数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...

  5. postgresql的psql常用命令-4

    psql是PostgreSQL的一个命令行交互式客户端工具 1. 查看postgresql账号 [root@localhost ~]#cat /etc/passwdroot:x:0:0:root:/r ...

  6. SpringCloud学习笔记(1)——Eureka

    Spring Cloud Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性的Token.全局锁.领导者选举.分布式会话.集 ...

  7. ajax处理级联访问数据库显示

    首先创建简单的html页面,写出如下代码: 静态页相关代码: js代码:

  8. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  9. 网页设计——6.html其他标签

    今天学习html的其他标签: 一.列表 1.无序列表ul 基本结构: <ul  type="属性值"> <li>列表内容</li> </u ...

  10. appium测试准备记录

    一 获取应用程序包名(手机中不安装apk) windows 环境下: aapt工具 使用aapt工具,适合给程序自动获取apk的相关信息. //aapt 是sdk自带的一个工具,在SDK/buildt ...