结对编程1-四则运算GUI实现(58、59)
题目描述
我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
2.有计时功能,能显示用户开始答题后的消耗时间。
3.界面支持中文简体/中文繁体/英语,用户可以选择一种;
需求分析
1.将上次基于控制台的代码改写为GUI界面;
2.需要添加计时的功能方便用户了解自己的做题时间;
3.能够记录历史的对错总数。
coding地址
https://coding.net/u/wumingxiang/p/GUI_szys/git
程序设计
计时功能代码:
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
final Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
Date now2 = new Date(now.getTime() + 1000);
now = now2;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
labTime.setText(formatter.format(now));
}
});
历史纪录存取功能
try {
writer = new BufferedWriter(new FileWriter(new File("history.txt")));
writer.write(a.toString());
writer.newLine();
writer.write(b.toString());
writer.newLine();
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
reader = new BufferedReader(new FileReader(new File("history.txt")));
rightNum = reader.readLine();
errorNum = reader.readLine();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
labRight.setText("历史正确量:"+ rightNum );
labError.setText("历史错误量:"+ errorNum );
}
功能展示
点击运行出现界面:
点击开始答题,时间开始跳动:
点击提交答案,自动判断对错:
再次运行程序,历史对错总数发生改变:
团队合作
PSP
小结
由于上次一次实验没有编程语言要求,我们都是用C++语言编写的,这次需要实现GUI界面,没掌握C++语言的界面编写,所以将我上次的代码以类似的思路改写成java语言代码,java的界面代码花费了我们许多时间,查了许多资料,这次界面使用的是AWT继承架构,因为掌握的不是很熟练,界面较为简单,界面创建完成后,后台的生成算式,判断结果等功能没多久就完成了。
结对编程1-四则运算GUI实现(58、59)的更多相关文章
- 结对编程1——四则运算-GUI
码市链接:https://coding.net/u/hmhhh/p/hmh-homework/git/tree/master/ 201421123003 黄建英 201421123004 黄美海 题目 ...
- 结对编程作业——四则运算GUI程序
毛忠庆 201421122088 赵嘉楠 201421122065 源代码存放位置:https://gitee.com/ouwen0819/SiZeYunSuan.git 题目描述 使用 -n 参数控 ...
- 结对编程1.四则运算GUI版
201421123022 王若凡 201421123026 欧阳勇 coding详细代码 a.需求分析: 这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linu ...
- 结对编程项目——四则运算vs版
结对编程项目--四则运算vs版 1)小伙伴信息: 学号:130201238 赵莹 博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
- 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...
- 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...
- 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...
- 20165223 结对编程之四则运算week2-整体总结
目录 一.结对对象 二.需求分析 三.设计思路 四.核心代码 五.功能截图 六.结对感受 一.结对对象 担任角色(本周交换角色,流动学习) 驾驶员(Driver):20165218 赵冰雨(是控制键盘 ...
- 20165223 结对编程之四则运算week1-阶段性总结
目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...
- 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段
2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...
随机推荐
- crm踩坑记(二)
Linux tmux 如何查看 tmux如何进行滚动呢? prefix + [, prefix为tmux的前置动作,默认是ctrl + b. 使用方向键或者pageUp来进行翻页. q可以退出滚动模式 ...
- 17个新手常见Python运行时错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...
- Oracle基础--体系
1. 连接到Oralce At the operating system prompt, enter the following command to start the SQLCommand Lin ...
- 巧妙利用JS中的自定义函数——化繁为简,提高效率
利用自定义函数编写年月日时间表: (复杂写法)如下: <body> <select id="year" size="1&q ...
- 表格布局扩展/DW设计界面中快速整体布局页面的操作
DW设计界面中快速整体布局页面的操作流程: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- Mysql报错注入原理分析(count()、rand()、group by)
Mysql报错注入原理分析(count().rand().group by) 0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截 ...
- MJExtension框架源码分析
iOS开发中经常会用到数据和模型的互相转换,大致有两种转换方式:1.手动写转换的代码,2.利用开源库进行转换.常用的开源库有:JSONModel.Mantle.MJExtension.YYModel等 ...
- python 如何在一个for循环中遍历两个列表
是我在看<笨方法学python>过程中发现有一行代码看不懂--" for sentence in snippet, phrase:",所以研究了半天,感觉挺有收获的.所 ...
- Three.js使用局部纹理更新
THREE.js开发的应用运行在iphone5下发现有些时候会崩溃,跟了几天发现是因为Sprite太多频繁更新纹理占用显存导致的.通常解决纹理频繁更新问题就要用到one draw all方法,放到纹理 ...
- spring学习笔记2---MVC处理器映射(handlerMapping)三种方式(附源码)
一.根据Beanname访问controller: 在springmmvc-servlet.xml的配置handlermapping中加入beanname,通过该beanname找到对应的contro ...