首页
登录 | 注册

20172325《结对编程——四则运算》第一周总结

结对编程——四则远算(20172325)

本周总结

我的结对伙伴是刘辰20172306,第一周的任务是设计整体思路,构建UML类图。在拿到这个项目的时候,真的是像她说的一脸懵^,对于建几个类,每一个类里面放那些方法,定义那些变量等等都完全没有思路。但是很多的查询之后,求同存异,一步一步理清了思路,与目标也越来越接近。在这一周的任务中,我们有争论,意见出现过分歧,但是在良好的沟通交流下,最终还算完整地完成了这一周的任务,为什么这样说呢,因为在设计类图的时候总觉得要把每一步都考虑好,但是如果不实践出来,根本不知道应该要注意哪些点,所以就很纠结。

需求分析

题目运算(判题)

要求:可独立使用
实现中缀表达式转为后缀表达式并计算
判断用户答题正误,并输出正确结果

  • 针对第一个需求,我们选择建一个类,这个类里面首先能够对题目等级进行划分,确定用户所需等级;其次能够随机生成操作符合运算数,形成一个普通的算式;

自动生成题目

要求:自动生成题目
可独立使用(能实现自己编写测试类单独生成题目的功能)
可生成不同等级题目,类似于:
1级题目:2 + 5 =
10 - 5 =
之类的两个数,一个运算符的题目

  • 第二个需求,主要是表达式转换和后缀表达式运算。建立两个类,一个用于中缀转后缀,一个用于后缀表达式的计算以及答案的判断。

支持真分数

可独立使用
实现分数算式的计算

  • 第三个需求,能独立使用的真分数题目和答案,原本只考虑到在答案中体现真分数,只需要考虑求余运算,但是后来在学长给了一些提示之后才发现,还需要在题目中出现真分数,于是又将考虑如何使栈能够识别分数形式的数,问题比较复杂,后期慢慢琢磨,先把它纳入生成题目的类里面。

题目去重(扩展需求,加分项)

要求:可独立使用
实现对自动生成表达式的去重:如下
若生成:2 + 5 =
5 + 2 =
为同一题目

  • 第五个需求为拓展题,加分项,我们也在考虑这个问题,一开始我想到的是运用数组来搞两个集合,一个存放操作符,一个存放运算数,识别题目中操作符和运算数的个数和位置,相同则为重复,但是这个想法要实践起来可能就会遇到很多问题,所以先待定。

设计思路

  • 1、设计三个类,一个Test文件。三个类分别是生成题目、中缀转后缀、后缀表达式的计算;
  • 2、在生成题目的类里面声明各种算法、真分数的加入;
  • 3、在中缀转后缀的类里面运用栈进行操作,按照老师上课讲的内容,由于两个人一组,不加入括号;
  • 4、在后缀表达式计算的类里面,通过添加参数吧第二个类最后生成的后缀表达式导入,然后进行计算,同时,在这个类里面加上答案的判断,有用户输入一个值,将它和系统生成的值进行比较,然后输出不同的信息。
  • 5、在Test文件里我将会吧三个类串联起来,然后在最后加上是否继续(Y/N ?)的循环语句。

UML截图

20172325《结对编程——四则运算》第一周总结

遇到的问题及解决方法

  • 问题1:项目已开始,我们在继承上纠结了很久,为此还设计了很多类以为将要继承一个大的父类。
  • 问题1解决方案:学长讲解之后意识到,这次的项目和学到那没有关系,是综合能力的考察,也就是说不一定用到刚学完的继承,于是豁然开朗,我们要根据需求设计不同的类,都能够各自独立完成自己的那一部分任务,然后将他们在Test文件里一起引用。

  • 问题2:我是负责UML类图的设计和中缀转后缀,后缀表达式的计算,在一开始,我的设计就存在问题,UML类图是一个类似提纲的存在,我需要的仅仅是将大致的思路构建在UML类图里面,但是我一直都觉得要将整个项目搞出来,具体实践,才能知道在每一个类里面需要用到什么方法,声明什么变量,很纠结,浪费了不少时间。
  • 问题2解决方案:经过结对同学的提醒,以及和她的良好沟通,我们发现我们的设计思路完全一样,只是在实践的过程中有一些小问题,在相互的提醒下就解决了问题,最后完成任务。

对结对伙伴20172306的评价

有些急躁,在完成一件任务的时候不会有一个先思考的过程,大局意识比较弱,感觉只要在做这件任务就够了,但是这样的队友能够促使我尽快的着手去做,而不是一味的只知道想而不去付诸实践。

参照网站

PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 70
Estimate 估计这个任务需要多少时间 60 60
Development 开发 1680
Analysis 需求分析 (包括学习新技术) 30 45
Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 20
Design UML 设计项目UML类图 120 100
Coding 具体编码 180
Code Review 代码复审 180
Test 测试(自我测试,修改代码,提交修改) 120
Size Measurement 计算工作量(实际时间) 30
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 60
合计 2550

相关文章

  • 查询数据库中所有表名 select table_name from information_schema.tables where table_schema='tools' and table_type='base table'; 查询指定 ...
  • 对于初学者,或者没有接触过网络编程的程序员,会觉得网络编程涉及的知识很高深,很难,其实这是一种误解,当你的语法熟悉以后,其实基本的网络编程现在已经被实现的异常简单了. 网络通信作为互联网的技术支持,已被广泛应用在软件开发中,无论是Web,服 ...
  • 如何零基础开始自学Python编程
    转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个 ...
  • 代码审查作业
    代码审查 我对结对同伴的代码进行了审查,他的有关括号匹配的代码 审查结果 功能模块名称 括号匹配问题 审查人 牛斌帅 审查日期 2019年4月25日 代码名称 括号匹配问题 代码作者 房旭 文件结构 重要性 审查项 结论 头文件和定义文件的 ...
  • 机器学习web服务化实战:一次吐血的服务化之路
    背景 在公司内部,我负责帮助研究院的小伙伴搭建机器学习web服务,研究院的小伙伴提供一个机器学习本地接口,我负责提供一个对外服务的HTTP接口. 说起人工智能和机器学习,python是最擅长的,其以开发速度快,第三方库多而广受欢迎,以至于现 ...
  • 汝之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践
        "描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的行为,唯有一个形容词表现它的特征.要做的,就是用心去寻找那个名词.那个动词.那个形容词--" -- 福楼拜 (Gustave Flaubert)   ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.078 s.
京ICP备10005923号