课后作业2~

1.Fork到自己远程仓库的码云项目地址https://gitee.com/wdongx/personal_project41656.git
2.PSP表格。表格中的任务估计花费时间以及实际花费时间。

PSP2.1

任务内容

计划完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

30

50

Estimate

估计这个任务需要多少时间,并规划大致工作步骤

30

50

Development

开发

300

410

Analysis

需求分析 (包括学习新技术)

60

60

Design Spec

生成设计文档

30

30

Design Review

设计复审 (和同事审核设计文档)

10

10

Coding Standard

代码规范 (为目前的开发制定合适的规范)

20

20

Design

具体设计

30

50

Coding

具体编码

60

80

Code Review

代码复审

60

120

est

测试(自我测试,修改代码,提交修改)

30

40

Reporting

报告

120

180

Test Report

测试报告

60

50

Size Measurement

计算工作量

30

100

Postmortem & Process

Improvement Plan

事后总结 ,并提出过程改进计划

30

30

Summary

合计

450

640

3.解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的过程。
  3.1:仔细审题,看清题目要求。
  3.2:确定语言比如(java,python,c#),然后我选择java语言进行编写,编辑器为myeclipse2014.
  3.3:Fork 码云 项目 到自己的仓库,在码云仓库中新建一个学号为名的文件夹,然后clone到本地。
  3.4:在Main.java中进行正式编写项目。
  3.5:分别创建了6个类,
    3.5.1其中主类中调用CalTest01()方法,实现向控制台进行录入功能,并有相应的提示.
    3.5.2CalTest01()方法调用CalcAS()方法。把用户录入的算式以+/-进行切分然后存到arr数组中
    3.5.3对arr进行遍历,并对算式进行优先级的判断,若含有*或/,数组进入CalcMD()方法。
    3.5.4在CalcMD()方法中,遍历已处理过的字符串str,若条件为*进入CalTest02()类中,从而进入到 CalculatorMul()类中,返回x1*y1
    3.5.5进行除法运算同上。
  3.6:在百度上查找关于计算器方面的对字符串进行切分的方法,判断是否包括字符如contains().等等。

4.程序对表达式类型的支持程度。描述你的程序对不同类型表达式求值的支持程度

  4.1能支持两个操作数,一种运算符

  4.2能支持两个操作数的简单四则运算(只有一个操作符)。

  4.3能支持简单混合四则运算(最多有3个操作符,没有括号)。

5.设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?单元测试是怎么设计的?
  本次代码一共含有6个类:
  Main():主类,与文件名一致。

  CalTest03():为计算器的父类,含有x1,x2的get,set方法。

  CalculatorAdd():继承CalTest03()类,返回x1+x2。


  CalculatorSub():继承CalTest03()类,返回x1-x2。

同上
  CalculatorMul():继承CalTest03()类,返回x1*x2。

同上
  CalculatorDiv():继承CalTest03()类,返回x1/x2。

同上
  本次代码一共含有5个函数:
    main():对用户进行提示说明,并调用CalTest01()。
    CalTest02():传值x1,s,y1。若条件为+/-/*//,分别到不同的CalculatorAdd(),CalculatorSub(), CalculatorMul(),CalculatorDiv()类中。


    CalTest01():对控制台进行录入,并调用CalcAS()。


    CalcMD():判断优先级,对乘或除进行切分。把*或/存到临时变量temp中,temp=x1*//y1.


    CalcAS():对+/-进行切分,然后对数组arr进行遍历,判断str是否含有*//若有调用CalcMD(),若为空,返回值为 0.,对str进行遍历,为+,临时变量result= x1+y1,为-,临时变量:result=x1-y1。

6.记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017的性能分析工具自动生成),并展示你程序中消耗最大的函数。
  1.程序刚开始的框架很好实现。
  2.第一个计算器版本是以数组索引进行切分,这就只能是两个数进行相加,有很大的局限性。
  3.有很大的弊端,这次通过+或-进行切分。成功解决此问题。
  4.解决此问题,花费了较长时间,进行了大量的更改代码。
  5.程序中消耗最大的函数应该是CalcAS(),需要进行切分判断,分别对arr数组进行遍历,和str进行遍历。并调用函数方法。
7.结合在构建之法中学习到的相关内容与个人项目的实践经历,撰写解决项目的心路历程与收获。

  7.1.刚开始的分析太简单,有很多的不完善之处,然后直接进行代码的编写,导致后来花了更长的时间去改正。

  7.2.合理全面的分析。

猜你喜欢

转载自www.cnblogs.com/wangdx1107/p/9930728.html