结对作业--基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿
coding 地址 :https://coding.net/u/zhang1995/p/worktwo/git/tree/master/
需求分析:
1、除了整数的四则运算还要支持分数的四则运算;
2、运算符为 +, −, ×, ÷;
3、能处理用户的输入,包括分数;
4、程序基于GUI界面;
5、能记录用户做题的对错数量,下次使用程序时能在之前的数量上增加;
6、有计时功能,能显示用户开始答题后的消耗时间
7、界面支持中文简体/中文繁体/英文,用户选择一种
思维导图:

功能实现:
主要功能除了在第一次作业中的四则运算功能,增加了计时器功能、语言选择功能以及记录对错题总数的功能;
代码展示:
计时器:
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");
lbl.setText(formatter.format(now));
}
});
timer.start();
语言选择的部分代码:
mi1表示中文简体;mi2表示中文繁体;mi3表示英文;
mi1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jlb.setText("请输入生成的题目数量:");
jtf.getText();
jb.setText("生成題目");
}
});
mi2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jlb.setText("請輸入生成的題目數量:");
jtf.getText();
jb.setText("生成題目");
}
});
mi3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jlb.setText("please input the number of questions you want:");
jtf.getText();
jb.setText("generate tests");
}
});
对错题数目存入文件:
jbt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
File file = new File("D:/newfile.txt");
String line =null;
try {
BufferedReader br = new BufferedReader(new FileReader(file));
try {
while((line = br.readLine()) != null){
String[] num = line.split("#");
zheng1=Integer.parseInt(num[1]);
cuo1=Integer.parseInt(num[3]);
}} catch (IOException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
keep();
}
keep();
}
private void keep() {
FileOutputStream fop = null;
File file;
String content = "正确#"+(n-MainFrame.cuowu+zheng1)+"#错误#"+(MainFrame.cuowu+cuo1)+"#";
try {
file = new File("D:/newfile.txt");
fop = new FileOutputStream(file);
if (!file.exists())
{
file.createNewFile();
}
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fop != null)
{
fop.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
测试运行:







本次实验合作照片:

PSP:
|
PSP2.1 |
Personal Software Process Stages |
Time(min) Senior Student |
Time (min) |
|
Planning |
计划 |
5 |
2 |
|
Estimate |
估计这个任务需要多少时间 |
4 |
10 |
|
Development |
开发 |
3 |
0 |
|
Analysis |
需求分析 (包括学习新技术) |
3 |
5 |
|
·Design Spec |
生成设计文档 |
1 |
0 |
|
·Design Review |
设计复审 |
1 |
0 |
|
Coding Standard |
代码规范 |
10 |
5 |
|
· Design |
具体设计 |
5 |
5 |
|
Coding |
具体编码 |
60 |
250 |
|
·Code Review |
代码复审 |
5 |
60 |
|
Test |
测试(自我测试,修改代码,提交修改) |
10 |
5 |
|
Reporting |
报告 |
6 |
3 |
|
测试报告 |
3 |
1 |
|
|
计算工作量 |
4 |
6 |
|
|
并提出过程改进计划 |
5 |
0 |
小结:本次作业由我与黄海鸿同学一起,与陈麟凤同学一起完成的,在语言定义以及文本输出控制的程序片段中发生很多问题,在不断的讨论以及在网络中寻找解决方法后终于是将代码给写出来。可以说是花费了很多心力。不同于自己写代码,在帮助陈麟凤同学时,发现了自己的想法与他人的想法并不一定能够很好的结合,所以花费了很多的时间在沟通上。
汉堡包式评价:
再把肉放上: 在这次编程中出现不少问题,不仅有技术上的更有在交流中发生的争执,与黄海鸿同学发生争执后在陈麟凤同学的劝说下一起重新合作。也侧面体现了交流的重要性。更多时候应该是把想法说出来让同学试着接受而不是硬要使用自己的方法,那样只会让时间流逝而无所成。
再来一片面包:结对编程中有领航员跟驾驶员的关系无疑能对工作的顺利进行起到非常大的作用,可以取长补短极大提高项目的进程,而最重要的是可以增加队友间的感情,使往后的配合更加默契。希望能在下次合作中做得更好。
结对作业--基于GUI的四则运算生成器的更多相关文章
- 结对作业-基于GUI的四则运算
一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web ...
- 结队编程-基于gui的四则运算生成器
成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...
- 结对实验---基于GUI的四则运算
详细代码:https://git.coding.net/wangluo24/NO.2.git 结对伙伴:吕志哲(201421123021) &本人.许明涛 201421123024 一.题目要 ...
- 基于GUI的四则运算
基于GUI的四则运算 李志强 201421123028 连永刚 201421123014 林方言 201421123023 coding 地址 https://git.coding.net/lizhi ...
- 结对作业1----基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...
- 结队编程--基于GUI的四则运算
coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...
- 结对作业(1)----基于GUI的四则运算
小伙伴:201421123031 余洋 201421123044 潘志坚 题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...
- 结对作业:基于GUI实现四则运算
1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...
- 结对编程1-基于GUI的四则运算生成器
201421123016郑怀勇 201421123017康建灿 程序代码 / 康建灿 一.需求分析 记录用户的对错总数. 程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算. 有 ...
随机推荐
- k近邻法(KNN)知识点概括
分类一般分为两种: 积极学习法:先根据训练集构造模型,然后根据模型对测试集分类 消极学习法:推迟建模,先简单存储训练集,等到给定测试集时再进行建模,如KNN算法. 1. 简述 KNN的核心思想就是:物 ...
- 开源社群系统ThinkSNS+PC端最新播报!
亲爱的粉丝,授权客户,企业创业者们,这一次,我们将为你们打造最好用的社交软件系统. 在这里你将看到TSer们本周研发.优化.设计的动态即时播报,可评论留言提出您的问题及建议与我们互动. 同时,研发已经 ...
- Django编写RESTful API(一):序列化
欢迎访问我的个人网站:www.comingnext.cn 关于RESTful API 现在,在开发的过程中,我们经常会听到前后端分离这个技术名词,顾名思义,就是前台的开发和后台的开发分离开.这个技术方 ...
- mysql为什么范围查询(>,<,between,%like,like%)之后的索引无效
因为使用了范围索引,所以会使用满足范围的所有的值,也就是说存储引擎在这个时候会提取出满足之后条件的所有值,并遍历获取满足之后条件的值. http://www.itpub.net/thread-1901 ...
- (译+注解)node.js的C++扩展入门
声明:本文主要翻译自node.js addons官方文档.部分解释为作者自己添加. 编程环境: 1. 操作系统 Mac OS X 10.9.51. node.js v4.4.22. npm v3.9. ...
- let 和 var定义变量的区别-盼盼Degenerate
let和var关键字的区别 声明后未赋值,表现相同 (function() { var varTest; let letTest; console.log(varTest); //输出undefine ...
- 【2016北京集训测试赛(十)】 Azelso (期望DP)
Time Limit: 1000 ms Memory Limit: 256 MB Description 题解 状态表示: 这题的状态表示有点难想...... 设$f_i$表示第$i$个事件经过之 ...
- spring boot / cloud (五) 自签SSL证书以及HTTPS
spring boot / cloud (五) 自签SSL证书以及HTTPS 前言 什么是HTTPS? HTTPS(全称:Hyper Text Transfer Protocol over Secur ...
- go web 第二天 学习笔记
package main import ( "crypto/md5" "fmt" "html/template" "io" ...
- cmder修改默认打开路径
win + alt + p //打开设置 选择Startup-Task,修改{cmd::Cmder}项,把: *cmd /k "%ConEmuDir%\..\init.bat" - ...