热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

课后作业2~

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

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.合理全面的分析。

转:https://www.cnblogs.com/wangdx1107/p/9930728.html



推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
author-avatar
天涯s1_278
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有