热门标签 | 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



推荐阅读
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 多线程基础概览
    本文探讨了多线程的起源及其在现代编程中的重要性。线程的引入是为了增强进程的稳定性,确保一个进程的崩溃不会影响其他进程。而进程的存在则是为了保障操作系统的稳定运行,防止单一应用程序的错误导致整个系统的崩溃。线程作为进程的逻辑单元,多个线程共享同一CPU,需要合理调度以避免资源竞争。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 在PHP的设计中,预定义了9个超级全局变量、8个魔术变量和13个魔术函数,这些变量和函数无需声明即可在脚本的任意位置使用。这些特性在PHP开发中极为常见,能够显著提升开发效率和代码的灵活性。相比之下,Java并没有类似的内置机制,但通过其他方式如上下文对象和反射机制,也可以实现类似的功能。本文将详细探讨这两种语言中这些特殊变量和函数的使用方法及其应用场景。 ... [详细]
  • Java 模式原型在游戏服务器架构中的应用与优化 ... [详细]
  • 使用 MyEclipse 和 TestNG 测试框架在 Java 中高效进行单元测试
    通过MyEclipse集成TestNG测试框架,可以在Java开发中高效地进行单元测试。本文介绍了在JDK 1.8.0_121和MyEclipse 10.0离线环境下配置和使用TestNG的具体步骤,帮助开发者提高测试效率和代码质量。 ... [详细]
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社区 版权所有