当前位置: 首页 > 编程日记 > 正文

oo第一单元总结

第一次作业

  1. 第一次作业自己虽然很想向着面向对象的方向上写,但写出来还是很C语言式的程序。从头到尾扫描字符串,扫到加减号便认为接下来是一项,再用正则表达式去分情况匹配出这一项。用Hashmap来存储数据,方便合并同类项。最后套一个try-catch捕获没有考虑到的可能的异常。最后写了将近三百行,而我看见的代码基本就两百行解决了。关键在预处理上没有下功夫,导致扫字符串的时候要考虑的情况很多。

(1)基于度量分析程序

(2)方法复杂度分析

2.第一次作业总结

(1)自己的bug:第一次的作业测试自己感觉还是已经做得很不错了(虽然强测爆了)。最后一天晚上还静态的看了一遍自己的代码。尽可能多地推理可能的情况,堵上了很多考虑不周的地方。WF的问题已经考虑得很好了。第一次互测我被找出了一个bug,但是就是这一个bug害得我强测被爆。所以我觉得静态的检查要和动态的输入输出检查结合起来才能让测试更充分。而且往往都是在边界问题上出现bug。

(2)别人的bug:第一次感觉大家都在找WF的bug,我也没有很认真地去看别人的代码。只是找了几个大家都试过的WF式的代码。

第二次作业

1.第二次作业大概花了半天的时间构思,还是努力地想往面向对象上写。但是到最后还是只是为了第二次而写。丝毫没有考虑到程序的可扩展性。自定义了一个PolyNode类来存储产生的数据。同样是为了方便进行合并同类项。重写了PolyNode的Hashcode方法和equals方法。然后和第一次一样分情况用正则表达式来匹配。现在想起来当时完全可以把每一项切开来处理,可以使程序要简单不少。

(1)基于度量的分析

(2)方法复杂度

2.第二次作业总结

(1)自己的bug:很可惜这次强测还是有问题。在输出化简的时候很天真地直接把 “1*”化简掉,感觉很难受。

(2)别人的bug:第二次有同学分享的自动对拍的程序。就变成了跑数据找不同了。还是没有静下心好好看别人的代码。感觉这点上做得很不好,只是为了找bug而找bug。

第三次作业

1.第三次作业从周六到周二,将近四天的时间我都在想怎样用oo的思想写出来这次的作业。说实话,这四天感觉自己每天大脑都处在高度紧张的状态下。但是最后我还是用栈来暴力解决。和面向对象差得有点远。最后感觉自己真的写不动了,最后截止时间延长了我也没有熬夜debug。直到昨天晚上才de完bug。

(1)基于度量的分析

(2)类复杂度

2.第三次作业总结

(1)无效作业1/5

(2)有时候想得太多也不是一件好事,如果当初我想了一天之后硬着头皮写下去我想怎么也不会成为无效作业。但是我白白想了四天到头来还是一个无效作业。我佛了。

个人总结

感觉只要不是太关注成绩,oo不至于过得很难受。虽然我花了那么大的时间的精力做第三次作业,成了无效作业不说,感觉自己的收获并不是太大。因为花了太大的精力在做题和成绩上,没有静下来去看优秀的代码,去在网上找资料,去总结自己这几周的得失。就连课上的PPT都没有好好的过一遍。oo还是得靠自己找方法,找途径了。

至于不少人都在讨论oo这门课的好与坏,可能是自己的能力不够,感觉好像自己没有多余的精力来考虑这些。oo,os就已经很难受了,加上两门硬核的核心通识课。每周都忙地不亦乐乎。总之希望这学期的oo自己能学有所获。也不枉这一学期的煎熬。

转载于:https://www.cnblogs.com/731338514-yin/p/10604753.html

相关文章:

npm run build打包失败

使用npm run build命令打包Angular项目时报错,错误信息如下: WARNING in budgets, maximum exceeded for initial. Budget 2 MB was exceeded by 3.33 MB.ERROR in budgets, maximum exceeded for initial. Budget 5 MB was exceeded by 340 kB. npm ER…

YII2 models非常好用的控制输出数据【重写Fields】

models里重写Fields真的很好用,用于分类、评论功能 列子:评论表models/Comment.php 1、关联商品表 2、获取父级(即管理员)评论 public function Fields()//添加parentComment自定义字段输出 { $fields parent::Fields(); $fi…

Visual studio 2005如何实现源码管理

转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发)目录: 〇、 摘要一、 开发前的准备 二、 创建空的SourceSafe数据库 三、 新建项目并加入版本控制 四、 获取SourceSafe中的项目 五、 版本控制的几个概念 六、 版本控制项目的管理 七、 总…

error while loading shared libraries: libstdc++.so.5: wrong ELF class: ELFCLASS64

今天部署一个探针在运行的时候报了这样一个错:error while loading shared libraries: libstdc.so.5: wrong ELF class: ELFCLASS64 [rootdb152 rma_p_unix]# ldd xxxxlinux-gate.so.1 > (0x00dd7000)libstdc.so.5 > not found # 发现这边动态库找不着 这…

package.json 依赖包版本号

依赖包版本号格式:major.minor.patch major 为主版本号(大版本号),变化了表示有了一个不兼容上个版本的大更改。 minor 为次版本号(小版本号),变化了表示增加了新功能,并且可以向后兼容。 patch 为修订版本号,变化了…

.net下绘制统计图工具-请推荐

需要利用到行情、数据频道需要多种样式的表现形式,包括 饼图、柱图、折线图等等 重点是:展示效果好,开发效率高 以前用过dundas chart,不知道有没能生产flash的。 小弟初来乍到,还请给位不吝赐教 放两天置顶&#xff…

wireless(二维数组前缀和)

1 . 无线网络发射器选址(wireless.cpp/c/pas)【问题描述】随着智能手机的日益普及,人们对无线网的需求日益增大。某城市决定对城市内的公共场所覆盖无线网。假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并…

SQL Server 2000 从哪里看是哪个版本

有两种方法: 第一步:使用SQL语句查询 select version 查询结果如下: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2…

【洛谷p1313】计算系数

(%%%hmr) 计算系数【传送门】 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(axby)k的计算需要用到二项式定理: 对于(xy&#…

CMD——ping及用其检测网络故障

Ping命令全称Packet Internet Grope,即因特网包探测器。通过调用ICMP(因特网控制报文协议),发送一份ICMP回显请求给目的主机,并等待返回ICMP回显应答。一般用来测试源主机到目的主机网络的连通性(只有在安装…

TSLint 规则

除了在全局配置中使用TSLint规则,还可以在文件中使用TSLint规则。 当不想修改全局配置中的TSLint规则时,可以在文件中使用以下注释规则标志对TSLint规则进行修改。 // tslint:disable —— 忽略该行以下所有代码出现的错误提示,可以在文件首…

Weblogic禁用SSLv3和RC4算法教程

weblogic在启用https时一样会报同WebSphere那样的一SSL类漏洞,中间件修复这些漏洞原理上来说是一样的,只是在具体操作上有着较大的区别。 1. weblogic禁用SSLv3算法 编缉$DOMAIN_HOME/bin目录下的setDomainEnv.sh,找到"JAVA_OPTIONS&quo…

转《两个个很形象的依赖注入的比喻》

何谓控制反转(IoC Inversion of Control),何谓依赖注入(DI Dependency Injection)?一直都半懂不懂,今天看到两个比喻,觉得比较形象。 IoC,用白话来讲,就是…

线程上下文设计模式

import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.stream.IntStream;public class Test {public static void main(String[] args){ThreadLocalExample.test();} }/*21.2 线程上下文设计*/class ApplicationConfigurat…

自定义控件--基础2

Control类程序按控件的步骤: 呈现控件的步骤 1.RenderControl方法 代码如下: protected void RenderControl(HtmlTextWriter writer) { if(Visible) { Render(writer);}} 先判断Visible,然后进行Render.2.Render方法 public virtual void Render(HtmlTextWriter writer) { Rend…

input输入框为number类型时,去掉上下小箭头

input输入框type为number时&#xff0c;去掉上下小箭头&#xff0c;方式如下&#xff1a; <input type"number" ...><style>/* 在Chrome浏览器下 */input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance: none;}/* 在…

数据库和数据仓库的区别

简而言之&#xff0c;数据库是面向事务的设计&#xff0c;数据仓库是面向主题设计的。 数据库一般存储在线交易数据&#xff0c;数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余&#xff0c;一般采用符合范式的规则来设计&#xff0c;数据仓库在设计是有意引入冗余&a…

我是主考官:两次弃用的变态笔试题

故事&#xff08;3&#xff09;&#xff1a;两次弃用的变态笔试题电话的沟通虽然不可能对一个程序员作全面的了解&#xff0c;但基本上能有一个比较概括的判断&#xff0c;这也许就是所谓的第一印象吧&#xff01;通过电话的初步沟通我对来面试的程序员已经有了初步的印象&…

[Swift]LeetCode901. 股票价格跨度 | Online Stock Span

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

java基础===点餐系统

public class OrderMsg {public static void main(String[] args) throws Exception { /** * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额 * 01.创建对应的数组 * 02.数组的初始化 * 03.显示菜单 * 04.根据用户的选择进去指定的模块 */ String[] names new S…

HTML页面中使两个div并排显示

在HTML中实现两个div并排显示&#xff0c;方法如下&#xff1a; 方法1&#xff1a;设置float浮动对需要并排显示的div设置样式&#xff1a;style"float:left;" <div style"float:left;">div1</div>方法2&#xff1a;设置div为行内样式对需要并…

备案网站管理系统是JSP做的

备案网站管理系统 http://www.miibeian.gov.cn/ 浪费了我一上午的时间没成功.靠!转载于:https://www.cnblogs.com/splyn/archive/2009/12/24/1631281.html

explorer.exe应用程序错误说明 0X000000该内存不能为read的解决方法

0X000000该内存不能为read的解决方法 出现这个现象有方面的&#xff0c;一是硬件&#xff0c;即内存方面有问题&#xff0c;二是软件&#xff0c;这就有多方面的问题了。 一&#xff1a;先说说硬件&#xff1a; 一般来说&#xff0c;电脑硬件是很不容易坏的。内存出现问题的可能…

CSS 选择符

选择符 selector 样式的基本规则——样式声明与关键字 声明块中有一个或多个声明。声明的格式是固定的&#xff0c;先是属性名&#xff0c;然后是冒号&#xff0c;后面再跟属性值和分号。冒号和分号后面可以有零个或多个空白。属性值几乎都是一个关键字或以空格分隔的多个关键…

CSS3快学笔记

在编写CSS3样式时&#xff0c;不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分&#xff0c;是浏览器的私有属性&#xff0c;虽然目前较新版本的浏览器都是不需要前缀的&#xff0c;但为了更好的向前兼容前缀还是少不了的。 前缀 浏览器 -webk…

DOS批处理的字符串功能

DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力&#xff0c;其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有&#xff1a;截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。  【 …

走进Java 7模块系统

笔者在观看过Devoxx关于Jigsaw的一段演示后&#xff0c;我很兴奋&#xff0c;觉得它应该会是针对复杂类路径版本问题和JAR陷阱等问题的解决方案。开发者最终能够使用他们所期望的任何Xalan版本&#xff0c;而无需被迫使用授权机制。不幸的是&#xff0c;通往更加有效的模块系统…

Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION

问题描述&#xff1a;Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION 原因&#xff1a; 服务器使用了TLS1.0 或 TLS1.1 版本&#xff0c;没有使用 TLS1.2 解决方法&#xff1a; 地址栏访问&#xff1a;chrome://flags/#legacy-tls-enforced&#xff1b;将Enforce depr…

关于矩形连线 (rectangle connect)

矩形连线问题&#xff0c;就是在两个矩形之间建立带可曲折的无覆盖的连线&#xff08;连线不覆盖图形&#xff09;&#xff0c;我的方法是这样的&#xff1a;CPoint pts[5];//输出连线的点列表int nPts;//输出点列表中点的数量void GetRectConnectLines&#xff08;CPoint * pt…

前端去掉空格的方法

/*** 去掉前端左右两边的字符空格* param str* 字符串* */function trim(str){//删除左右两端的空格return str.replace(/(^\s*)|(\s*$)/g, "");} /*** 去掉左边的空格* param str* returns*/function ltrim(str){ //删除左边的空格return str.replace(/(^\s*)/g,&q…