结对作业1--基于GUI的四则运算
201421123002 翁珊,201421123006 黄月梅,201421123007 徐晓珊
题目描述:
我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
- 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
- 有计时功能,能显示用户开始答题后的消耗时间。
- 界面支持中文简体/中文繁体/英语,用户可以选择一种;
在软件开发中,我们需要大量使用工具来辅助设计,每个环节大家都要善于学习和使用工具。设计的时候,请使用思维导图设计你的模块之间的关系,
需求分析:
- 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
- 运算符为 +, −, ×, ÷,可以处理用户的输入。
- 有计时功能,能显示用户开始答题后的消耗时间。
- 界面支持中文简体/中文繁体/英语,用户可以选择一种;
思维导图如下:

关键代码分析:
(1)Frames类制作基本框架
- 以流式结构排列
flow = new FlowLayout();
flow.setAlignment(FlowLayout.LEFT);
flow.setHgap();
flow.setVgap();
setTitle(name);
setSize(, );
setLayout(flow); - 界面支持切换语言利用按钮的事件监听器实现(以下只显示繁体部分)
B6.addActionListener(new ActionListener(){//选择繁体
public void actionPerformed(ActionEvent e) {
B1.setText("生成題目");
B2.setText("查看答案");
B3.setText("清除信息");
B4.setText("提交答案");
L1.setText("題目數");
L2.setText("範圍");
L3.setText("伱的答案");
}
}); - 计时功能实现
...
while(true)
{
validate();
if(open==)
{
Minute.setText(String.valueOf(M));
Second.setText(String.valueOf(S));
if(H==)
{
H=;
S++;
}
if(S==)
{
H=;
S=;
M++;
}
if(M==)
{
M=;
S=;
H=;
}
try{
Thread.sleep();
}
catch(Exception e){ }
H++; }
if(clear==)
{
M=S=H=;
Minute.setText(String.valueOf(M));
Second.setText(String.valueOf(S));
clear=;
}
...
(2)Aswer类进行答案的正误判断
static boolean compare(String a, String b)
{
if (a.equals(b))
{System.out.println("回答正确");
return true;}
else
{
System.out.println("回答错误,正确答案是" + b);
return false;
}
}
(3)compute类进行+,—, *,÷的运算(以加法为例)
public static String add(Frac a, Frac b)
{
int i, j, k, s, m, n, p;
i = a.getZi();
j = a.getMu();
k = b.getZi();
s = b.getMu();
m = i * s + j * k;
n = s * j;
p = Answer.getGCD(m, n);
return Answer.Reduction(m / p, n / p);
}
(4)进行分数的构造及化简
public class Frac {
private int Zi;
private int Mu;
private String fra;
public Frac() {
}
(5)Test类调用四则运算的图形框架
public class Test {
public static void main(String[] args) throws Throwable{
Frac f1 = new Frac();
Frac f2 = new Frac();
new Frames("欢迎来到711制作的四则运算",f1,f2);
}
}
实验结果:
语言切换功能展示:
a.简体:

b.繁体:

c.英语:

结对照片展示:

coding链接:https://coding.net/u/xxs24/p/pairhomework1/git/tree/master
PSP表格:
|
PSP2.1 |
Personal Software Process Stages |
Estimated Time(hour) |
Actual Time (hour) |
|
Planning |
计划 |
0.5 |
0.5 |
|
· Estimate |
估计这个任务需要多少时间 |
10 |
12 |
|
Development |
开发 |
5 |
4 |
|
· Analysis |
需求分析 (包括学习新技术) |
0.5 |
1 |
|
· Design Spec |
生成设计文档 |
1 |
1 |
|
· Design Review |
设计复审 |
1.5 |
2 |
|
· Coding Standard |
代码规范 |
0.5 |
0.5 |
|
· Design |
具体设计 |
1 |
1.5 |
|
· Coding |
具体编码 |
6 |
6.5 |
|
· Code Review |
代码复审 |
0.5 |
1/3 |
|
· Test |
测试(自我测试,修改代码,提交修改) |
0.5 |
2/3 |
|
Reporting |
报告 |
0.5 |
0.5 |
|
· |
测试报告 |
1/6 |
1/6 |
|
· |
计算工作量 |
1/6 |
0.25 |
|
· |
并提出过程改进计划 |
0.25 |
0.25 |
小结:
本次实验由于上次的实验我是基于C++的,黄月梅是基于Python的,而我对C++的图形界面还不熟悉,月梅也对Python框架比较模糊,所以在我们三个的讨论下,一致同意使用翁珊同学的实验来进行图形界面的实现。
首先我们一起讨论了总体的布局和分析其需要的功能。也觉得翁珊同学的控制题目范围的这个设计很不错,也继续沿用了下来。主要是增加了GUI框架、计时功能以及语言的切换功能(这里对于本实验很多繁体等于简体表示难过)。由于这个实验翁珊比较熟悉,所以主体编程是由翁珊负责的,我和黄月梅主要负责代码的复审和测试运行以及提出不足,期间效率得到不小的提升。遇到问题一起讨论,也比之前自己一个人思考解决的速度更快!
对于本次实验我们觉得计时器的那一块比较有挑战性。后来经过讨论查找资料以及请教同学之后也顺利解决了。因为经过这次实验后,觉得结对编程的好处真的很多!
汉堡包式评价:
- 先来一片面包:三人达成结对编程的共识,况且我们是一个宿舍的,让人觉得处于一个安全的环境
- 再把肉放上:这次编程过程中,虽然翁珊负责主体编程,但是期间遇到了诸多问题和不足都是大家一起提出来一起想办法解决的。也因为我们三个的编程基础相对也比较薄弱,所以遇到棘手问题也比较难以解决,也比较缺乏耐心。但是我相信,通过几次编程实验的努力完成,吸取经验教训后,我们将会做的更好。
- 然后再来一片面包: 这次编程让我们对对方的编程实力有了更深的了解,也发现只要认真努力对待就可以把工作做好。
结对作业1--基于GUI的四则运算的更多相关文章
- 结对作业:基于GUI实现四则运算
1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...
- 结对作业1----基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...
- 基于GUI的四则运算
基于GUI的四则运算 李志强 201421123028 连永刚 201421123014 林方言 201421123023 coding 地址 https://git.coding.net/lizhi ...
- 结对作业--基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...
- 结队编程-基于gui的四则运算生成器
成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...
- 结队编程--基于GUI的四则运算
coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...
- 【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517
[整体概况] 1.描述最终的代码的实现思路以及关键代码. 2.结对作业两个人配合的过程和两个人分工. 3.API接口文档和两个组的对接. 4.效能分析,优化分析和心得体会. [代码实现] 一. 实现功 ...
- 结对作业(1)----基于GUI的四则运算
小伙伴:201421123031 余洋 201421123044 潘志坚 题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...
- 结对作业-基于GUI的四则运算
一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web ...
随机推荐
- Exceptionless 本地部署踩坑记录
仅已此文记录 Exceptionless 本地部署所遇到的问题 1.安装ElasticSearch文本 执行elasticsearch目录中的elasticsearch.bat 没有执行成功. 使用命 ...
- javaweb 登陆注册页面
视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...
- centos 7.2 配置Nginx
1.添加资源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令(没有换行): rpm -Uvh http://nginx.org/packages/centos/7/noarch ...
- 【Shell Basic】Shell脚本编写规范
shell脚本需要有较高的实用性.可维护.可阅读.方便他人阅读,因而需要建立一定的规范来操作 dream361@master:~$ cat test2.sh #!/bin/bash 所使用的bash程 ...
- malloc/free 的使用要点
函数malloc的原型如下: void * malloc(size_t size); 用malloc申请一块长度为length的整数类型的内存,程序如下: int *p = (int *)mall ...
- python+selenium自动化软件测试(第11章):持续集成jenkins和GitHub的使用
11.1 jenkins持续集成环境 相关安装包下载链接:http://pan.baidu.com/s/1qYhmlg4 密码:dcw2赠送jenkins集成selenium环境视频链接http:// ...
- [2016-03-15]rabbitmq notes
安装 系统:CentOS 6 环境: rabbitmq 依赖的Erlang环境包 wget https://www.rabbitmq.com/releases/erlang/erlang-18.1-1 ...
- .NET Core 2.0 应用程序大小减少50%
.NET Core 2.0减小体积瘦身官方工具 IL Linker. IL Linker 来源于mono的linker https://github.com/mono/linker,目前还是预览版本 ...
- c++ new 的相关
首先是一个链接 这里 说的很详细了 http://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/17/2728019.html 关于c++ ...
- 好用的sql
@ 复制表结构 ; --复制表结构和数据 create table table_name_new as select * from <table_name> @ 查看表信息 select ...