软件工程第三周结对编程

结对编程之四则运算


1、项目成员

连燕波:201521123081

曾飞远:201521123080

队员风采展示

结对编程码云地址:https://gitee.com/Yanboooooooo/software_engineering_201521123081


2、需求分析

随着课余娱乐项目的增加,现在的小孩子在学习上变得越来越不自觉,需要老师、家长在背后催着才会做作业,因此需要实现一个计时功能,以时间的流逝来给孩子一些紧迫感。另外,在经过长期的运算训练之后,如何才知道学生的运算水平是否有显著提高呢?将做题过程进行计时可以解决这个问题,从花费时间的长短就可以看出是否取得进步。

为了让这个四则运算自动生成器的使用人群跨越国界,就需要我们实现语言切换功能。不仅让中国大陆的小孩可以简单上手这个小程序,同时还能让中国台湾以及外国的小孩同样可以使用。实现这样一个小小的功能,就可以让我们这个自动生成器的受众面遍布世界各地,不受语言的障碍。

在原有代码上的改进:

  Ⅰ改正一些错误的编码和用法;

  Ⅱ修改部分代码风格;

  Ⅲ修正复习题出现重复的BUG;

  Ⅳ修改了部分GUI界面;

Ⅴ发现正确率不正确的问题。


3、程序设计

基础功能

1、计时功能,显示并记录使用者答题所花费的时间;

2、支持三种语言文字,中文简体/中文繁体/英语,选择多样,可再改进;

扩展功能

3、记录使用者错误题集,程序退出再启动的时候,能将以前的对错数量保存并在此基础上增量计算;

4、对用户输入题数的内容设置了容错功能,只可以输入1~10之间的数字,输入字母或者不在范围内的数字将无法点击确定按钮;

高级功能

5、设置错题集,实现了错题复习功能,可以将用户使用以来做错的题目保存在文档中,点击“复习”按钮,生成的题目将全部是之前用户做错的题目,达到用户复习的目的。

思维导图

代码规范


Arithmetic类
astr            返回答案字符串
qstr            返回问题字符串
int_operation()        整数计算函数
fra_operation()        分数计算函数
common_divisor(int m,int n)
公约数计算函数
toString()        输出函数

Frame类
hs            实例化History
hh            实例化QA_List
timer            实例化Work_Time
Time            计时器动态窗口
answer1~10        输入窗口
Review            复习按钮
question1~10        题目显示标签
Right_answer1~10    正确答案显示标签
Tip1~10         提示正确与否标签
Time_cost         所花时间显示标签
Right_percent        正确率显示标签
Set_question         开始按钮
jLabel5            历史正确题数
jLabel7            历史总题数
rn            单次正确题数
tot            单次总题数
Frame()            Frame构造函数
initComponents()    窗体显示
xxxClicked(KeyEvent evt)
点击事件
KeyPressed(JLabel i,JLabel j,JLabel l,int x,JTextField k)
点击事件批量处理函数
Hide()            使不需要的输入窗口关闭
Tip(String answer,int i)提示对错并计入

Histroy类
qstr            问题字符串
astr            答案字符串
str            答案+问题字符串(写入文件)
str2            正确题数+总题数字符串(写入文件)
tot            总题数
rn            正确题数
qstrlist        问题字符串列(读入文件)
astrlist        答案字符串列(读入文件)
scan(String qstr,String astr)
qstr+" "+astr
scan2(int tot,int rn)
tot+" "+rn
Histroy_create()    历史文档生成
Histroy_save()        存储历史题目与答案
Histroy_saveNum()    存储历史题目数目
Histroy_read()        读入历史题目与答案
History_num()        读入历史题目数目
QA_List类
i            加入列题目个数
Qusetion        问题字符串列
Answer            答案字符串列
QA_List()        QA_List构造函数

Test_Number类
i            显示Test_Number窗体次数
l            语言转化参数标识
Cancel_Button        取消按钮
Sure_Button        确定按钮
English            英文界面标签
Simplified_Chinese    简体中文界面标签
Traditional_Chinese    繁体中文界面标签
Number            所需题数
Test_Number()        Test_Number构造函数
initComponents()    Test_Number窗体显示
xxxClicked(KeyEvent evt)
点击事件

Test类
main(String[] args)
Work_Time类
x            00:00.x
y            00:y.00
z            z.00.00

局部变量和方法按照驼峰风格命名,类名采用Pascal风格。

PSP表格

PSP2.1 个人开发流程 预估耗费时间(min) 实际耗费时间(min)
Planning 计划 15 13
Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 10 7
Development 开发 180 200
Analysis 需求分析(包括学习新技术) 30 30
Design Spec 生成设计文档 10 5
Design Review 设计复审 5 7
Coding Standard 代码规范 5 4
Design 具体设计 20 16
Coding 具体编码 60 60
Code Review 代码复审 10 5
Test 测试(自我测试、修改代码、提交修改) 20 15
Reporting 报告 8 10
测试报告 5 5
计算工作量 5 5
提出过程改进计划 5 3

单元测试

覆盖率


4、部分代码展示及其运行情况

使用工具绘制界面实现多种语言文字

计时器

问题及其答案产生

题目对错判断及答案


6、码云提交展示


5、小结

第一次使用结对编程的合作模式,并非认知中的,你写这些内容,而我负责这些内容。但是通过这两周的合作发现并非如此,在我负责某些版块任务的时候,搭档则在一旁指点,两个人在开发中交流,在交流中学习、进步。并且明显感觉到1+1>2!
另外,结对编程中,两个人一直在进行角色互换,两人都不会感到特别疲乏。极大改善了双方的编程体验。

原文地址:https://www.cnblogs.com/LianYanbo/p/8646202.html

时间: 2024-11-09 14:35:44

软件工程第三周结对编程的相关文章

20175325 第一周结对编程项目 四则运算

20175325 第一周结对编程项目 四则运算 一.需求分析: 能根据用户输入的数字生成四则运算的题目数量 能自动生成规定范围内的四则运算题目(加.减.乘.除) 能够判断四则运算的结果是否正确并进行数量统计 能多次生成四则运算题目 支持多运算符 用户能够选择是否开始答题 统计题目正确率 题目去重 多语言支持:简体中文, 繁體中文, English 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路: 和之前所学的C语言中的四则运算方法作类比,在JAVA中运用了C语言里的一

20175325 第二周结对编程项目 四则运算

20175325 第二周结对编程项目 四则运算 一.需求分析: 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 题目去重 能多次生成四则运算题目 能根据用户输入的数字生成四则运算的题目数量 多语言支持: 简体中文, 繁體中文, English 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 用户能够选择是否开始答题 二. 设计思路: 产生随机数并且考虑符号的优先级. 能实现整

软件工程第二次作业—结对编程

一. 作业要求 两人组成一队,进行结对编程. 从第一次软件工程作业中选出一人的作业作为这次作业的基础. 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序.网页程序或者手机程序. 设计的应用程序可以完成加法.减法.乘法.除法运算. 应用程序可以完成真分数的四则运算. 例如:1/2 + 1/3 = 5/6 例如:1/5 + 3/10 = 1/2(而不是5/10) 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:" ' "为1'1/3整数

第二周结对编程-20165222

一题目要求 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率. 二需求分析 1.用随机数随机生成数字,能够随机生成符号加减乘除(除数不为0). 2.支持分数和整数的四则运算,同样是利用随机数分别生成分子与分母(分母不为0). 3.能够判断输入答案的对错并统计正确率,要将用户输入答案与式子答案进行比较. 三设计思路 1.通过随机数来实现整数以及分数. 2.通过随机数结合if条件语句实现加减乘除

软件工程(3)结对编程

本次结对编程录制视频时选择完成退票功能,组长负责写代码,我监督并尝试指出写代码过程中出现的问题. 选择退票功能进行结对编程的好处是双方都熟悉抢票部分的代码(而由于其他课程作业耽误了本组开发进度的我并不熟悉组长写的活动部分的代码),退票的逻辑与之类似,适合结对编程. 结对编程的过程中没有遇到太多问题,我真正指出的错误应该只有要将Handler的类加入view里面,其他的感觉更像是组长故意考验我--(隐约觉得如果上周六有时间的话,把组长教我如何写抢票的过程录下来更好--) 个人感觉此次结对编程是非常

软件工程第二次作业—结对编程1

结对编程队员: 马菊瑞 1500802066:https://www.cnblogs.com/mjr15/ 马晓燕 1500802046:https://www.cnblogs.com/MXY1239542491/ coding链接:https://coding.net/u/mjr1500802066/p/project/git/tree/master/ 程序实现各个功能截图: ?四则运算欢迎界面 ?综合练习(1) ?综合练习(2) ?结对编程图片 结对编程心得体会: ?最大的好处就是,两个人在

软件工程第二次作业----结对编程

队员: 旦切措毛  1500802071 博客地址:https://www.cnblogs.com/GDM1108/ 专格吉  1500802070   博客地址:https://www.cnblogs.com/zhuan11248/ Coding地址:https://coding.net/u/zhuan11248/p/Demo/git 程序实现和结果测试的截图 github的提交链接和提交日志截图 结对编程时的照片 结对编程的心得体会 任何人都不是完美的,与其两位程序员各自独立工作相比,结对编

“人向猿进阶”之软件工程第四课——结对编程

黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人

软件工程网络15专业结对编程

结对编程作业总览 项目成员: 黄俊麟 201521123022 郑子杰 201521123021 项目码云地址: https://gitee.com/paitouzi/pair_programming/tree/master 具体项目分析: 1.需求分析 本次结对编程,我们自己新编写了一个计算器程序,能够实现简单的加减乘除运算. 在结对编程的分工中,我所负责的任务如下: 初始化业务逻辑. 开方.正负.清零.退格.数字内容输入拼接,输出结果的实现. 四则运算算法的实现. 每个按钮返回对应的业务(每