组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿

coding 地址:代码点这里

需求分析:

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

估计这个任务需要多少时间

3

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

报告

5

3

 

测试报告

3

1

 

计算工作量

3

5

 

并提出过程改进计划

5

0

小结:

本次的作业代码大部分基本由我完成,功能实现以及界面设计由小组内讨论,因为采用的是我的第一次作业为基础,而且我的编程能力稍微会好一点。

起初小组的决定是完成计时器和语言选择功能就可以,将第一次的代码修改一下在加上GUI,然后在看需求添加相应的计时器功能和语言选择功能,但在后期程序基本完成时由张志杰同学添加了简单的记录错题数的功能,在写程序过程也遇到过不少问题,比如在获取输入的答案是会出现获取不到的情况,就是输入的答案没有传到变量里面,纠结了挺久,小组内讨论也是没办法立刻解决,还是后面才发现获取答案的时候用户还没有输入答案导致获取到的只是空值,最后觉得写程序的时候希望自己以及我的组员张志杰同学要有耐心一点,在编程遇到问题的时候冷静一点处理,以及感谢张志杰和黄海鸿同学在完成这次作业的过程中给予的建议。

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

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

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

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

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...

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

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

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

    201421123002 翁珊,201421123006 黄月梅,201421123007 徐晓珊 题目描述: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程 ...

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

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

  6. 基于GUI的四则运算

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

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

    小组成员:王震(201421123054).王杰(201421123055) Coding地址:https://git.coding.net/a506504661/sssss.git 一.题目描述 我 ...

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

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

  9. 【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517

    [整体概况] 1.描述最终的代码的实现思路以及关键代码. 2.结对作业两个人配合的过程和两个人分工. 3.API接口文档和两个组的对接. 4.效能分析,优化分析和心得体会. [代码实现] 一. 实现功 ...

随机推荐

  1. 【技术干货】听阿里云CDN安防技术专家金九讲tengine+lua开发

    一.介绍 二.安装 三.运行 四.开发 1.介绍 Tengine:轻量级.高性能.高并发.配置化.模块化.可扩展.可移植的Web和反向代理 服务器,Tengine是nginx超集,但做了很多优化,包含 ...

  2. python学习===复制list

    """将一个列表的数据复制到另一个列表中.""" """ 使用[:] """ a ...

  3. 关于"软件评测师"

    参考书目 <软件评测师考试考点分析与真题详解>http://item.taobao.com/item.htm?spm=a1z09.2.9.82.qx67QK&id=18924026 ...

  4. Linux删除其他程序正在使用的文件

    今天在逛论坛时发现网友提的一个问题: 今天做实验发现,当前活动日志丢失后,数据库居然还可以正常写数据,还可以正常提交,如果是ORACLE,这个时候数据库已经崩溃了,很奇怪DB2这个时候把事务写到哪儿去 ...

  5. 剑指offer——矩阵覆盖(斐波那契变形)

    ****感觉都可以针对斐波那契写一个变形题目的集合了****** 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? cl ...

  6. css3中空格和>的区别

    A>B 表示选择A元素的所有子B元素. 与A B的区别在于,A B选择所有后代元素,而A>B只选择一代. A+B表示HTML中紧随A的B元素(A与B是同级元素).

  7. Run Performance Testing Which Was Distributed To Multiple Test Agents

    How to solve the VS installed machine cannot run performance testing by .testsettings file, which wi ...

  8. 高CPU业务场景下的任务分发方案Gearman搭建一览

      Gearman是当年LiveJournal用来做图片resize的,大家也明白图片resize是一个高CPU的操作,如果让web网站去做这个高CPU的功能,有可能会拖垮你的 web应用,那本篇我们 ...

  9. spring boot / cloud (十五) 分布式调度中心进阶

    spring boot / cloud (十五) 分布式调度中心进阶 在<spring boot / cloud (十) 使用quartz搭建调度中心>这篇文章中介绍了如何在spring ...

  10. Java8 lamda表达式快速上手

    1.对比着经典foreach 简单的循环 o相当于foreach中的临时变量,要遍历的list放在句首 list.foreach(o->{你要进行的操作}); package com.compa ...