组员: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

 小结:本次作业由我与黄海鸿同学一起,与陈麟凤同学一起完成的,在语言定义以及文本输出控制的程序片段中发生很多问题,在不断的讨论以及在网络中寻找解决方法后终于是将代码给写出来。可以说是花费了很多心力。不同于自己写代码,在帮助陈麟凤同学时,发现了自己的想法与他人的想法并不一定能够很好的结合,所以花费了很多的时间在沟通上。

汉堡包式评价:

 先来一片面包:三人一起讨论决定使用麟凤的第一次作业为基础,使用java和GUI实现。这点确定得很快,因为我和黄海鸿同学都认为陈麟凤同学的代码比较的成功做得比较的好。
 

再把肉放上: 在这次编程中出现不少问题,不仅有技术上的更有在交流中发生的争执,与黄海鸿同学发生争执后在陈麟凤同学的劝说下一起重新合作。也侧面体现了交流的重要性。更多时候应该是把想法说出来让同学试着接受而不是硬要使用自己的方法,那样只会让时间流逝而无所成。

再来一片面包:结对编程中有领航员跟驾驶员的关系无疑能对工作的顺利进行起到非常大的作用,可以取长补短极大提高项目的进程,而最重要的是可以增加队友间的感情,使往后的配合更加默契。希望能在下次合作中做得更好。

结对作业--基于GUI的四则运算生成器的更多相关文章

  1. 结对作业-基于GUI的四则运算

    一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web ...

  2. 结队编程-基于gui的四则运算生成器

    成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...

  3. 结对实验---基于GUI的四则运算

    详细代码:https://git.coding.net/wangluo24/NO.2.git 结对伙伴:吕志哲(201421123021) &本人.许明涛 201421123024 一.题目要 ...

  4. 基于GUI的四则运算

    基于GUI的四则运算 李志强 201421123028 连永刚 201421123014 林方言 201421123023 coding 地址 https://git.coding.net/lizhi ...

  5. 结对作业1----基于GUI的四则运算生成器

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...

  6. 结队编程--基于GUI的四则运算

    coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...

  7. 结对作业(1)----基于GUI的四则运算

    小伙伴:201421123031 余洋 201421123044  潘志坚  题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...

  8. 结对作业:基于GUI实现四则运算

    1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...

  9. 结对编程1-基于GUI的四则运算生成器

    201421123016郑怀勇     201421123017康建灿 程序代码 / 康建灿 一.需求分析 记录用户的对错总数. 程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算. 有 ...

随机推荐

  1. [NOIP2009] 靶形数独 骚气的大爆搜

    这两天OD留的题是搜索,这个东西,就是历年的NOIP压轴题嘛.做了几道什么斗地主啊啥的,感觉还是这题我还懂点. 这道题的搜(xia)索(da)思路是这样的:预处理出一切能处理的东西. 数独大家都了解吧 ...

  2. Spring(一)

    1.1 Spring框架的概述 1.1.1什么是Spring Spring是分层的JavaSE和JavaEES一站式轻量级开源框架. 分层: SUN提供的EE的三层结构:web层.业务层.数据访问层( ...

  3. orakill和ALTER SYSTEM KILL SESSION详解

    --orakill和ALTER SYSTEM KILL SESSION详解[转]-----------------------------------------2013/11/05 一个用户进程偶尔 ...

  4. 图片浏览 h5

    @{ Layout = null; } <html> <head> <script type="text/javascript" src=" ...

  5. Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决

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

  6. 最强黑吃黑:WEBSHELL大马隐藏万能密码大全

    因为很多原因,很多新手都不会编写自己的大马,大多数新手都会通过百度去下载对应脚本的大马,然而这些webshell大马都是早期流传出来的,基本上都存在后门,可以通过万能密码登录,即使你修改i过密码了,怎 ...

  7. Django编写RESTful API(五):添加超链接提高模型间的关联性

    前言 在第四篇中,加入了用户模型,以及相关的认证和权限的功能.但是我们在使用的时候,会发现在访问http://127.0.0.1:8000/users/时看到的用户列表,不能够直接点击某个链接然后查看 ...

  8. netcore2.0 ORM框架中如何配置自定义的主外键加载

    环境:netcore2.0 DB :mysql ORM:Ant https://github.com/yuzd/AntData.ORM/tree/netcore2 [给我一个star吧] NUGET: ...

  9. Mybatis --- 创建方法、全局配置

    总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]!     和数据库打交道的技术有:      原生的JDBC技术--->Spring的Jd ...

  10. 一只菜鸟的瞎J8封装系列的目录

    因为这是一个系列...也就是我们所说的依赖关系.后面很多方法都是基于我前面封装的工具来进行的,所以我列一个目录供大家参考... 一只菜鸟的瞎J8封装系列  一.手把手封装数据层之DButil数据库连接 ...