一、      前言

通过本三次PTA得题目,我受益匪浅。题量的话不算太多,但是题目难度有些大。在本次PTA第六次题目集中,题目难度较中,第四次题目集第一道水文数据处理与第五次题目集的查询关键字出现次数题目难度较大。也正是通过本三次题目集的学习,我对正则表达式有了更深的理解,学会了如何使用正则表达式,对使用正则表达式进步了许多。谈到知识点的话当然第一就是正则表达式了,接下来还学了如何使用类的封装与继承,如何在子类中调用父类的方法。

二、      设计与分析

通过本三次PTA题目的学习,我分析了我的源代码,分析其是如何运行的。接下来先谈谈第四次题目集的第一题水文数据:

当然,这道题目我也没拿满分,有2个测试点错误,找不到原因,令我很头疼。这道题的根本在于使用正则表达式分离出水文里面的每项数据,然后依个进行检验。首先我们分离出水文数据中的每项数据并存入数组中,此过程要使用split:

然后使用for嵌套循环对里面数据一项一项检验,此过程检验每项正则表达式为:

若检验不相符则输出“Wrong Format”。若检验数据相符,则按照题目要求计算出流量。

在来看看第四次题目集第二题与第五次题目集最后一题:

第四次题目集第二题有5个类分别是Main,Year,Month,Day,DateUtil,其中Main是主类,Year,Month,Day,DateUtil分别是继承关系。依次继承:Month继承Year,Day继承Month,DateUtil继承Day。我认为本题类图思路清晰,但是结构较复杂。每个类中方法很多,并且都需要setter/getter对变量进行处理。本题需要实现的三个功能分别为:1、求前N天,2、求下N天,3、求2个日期相差的天数。源代码实现如下:

对于第三个功能,我分别求出2个日期距公元1月1日的天数,然后在用2个总天数相减求得。下面为本题的生成报表内容:

对于第五次作业最后一题,方法与第四次作业第二题相似,只是类图不同。此题类图清晰,思路也简单,其中Dateutil为Day,Month,Year的父类,而Day与Month,Year为单独类,三者之间无直接关系。这样写降低了代码的连续性,关联性,但是提高了代码出容错率。

此题求三个功能的方法与上题基本一致,在此就不做过多讲解。但需要注意的是本题有一个测试点为整形最大数测试,也就意味着最后求出来的天数可能超出整形最大数限制,因此需要将int改为long型。

下面为此题的生成报表内容:、

 接下来谈谈题目集4中的第三题图形的继承:

首先要明确类与类之间的关系,哪些类为父类,哪些类为子类。其次要实验类与类之间的继承,实现形式为public class A extends B,此代码说明A是B的子类。

以下为本题中类的继承源代码:

本题目的是求以下规则图形的面积与体积,只需将其方法定义在类中即可,面积与体积计算公式较简单,就不做过多介绍。

现在来说说第六次作业的第五题

第六次作业第五题使用的技术有类的继承,类的封装,类的多态与接口,Arraylist数组以及Collections类。

首先先创建一些需要的类,既题意要求。

然后分别在类中定义变量并将其封装:

之后定义类ArrayList数组的一个对象:

之后运用类的多态性,创建数组:

在后面通过for循环,将需要输出的面积存入ArratList数组中:

下面为本题生成报表内容:

下面来谈谈PTA第六次题目集的第六题:

本题需要使用接口:

下面为本题类图:

本题要求输出三角形面积与矩形面积,若输入错误,则输出“Wrong Format”.

源代码如下:

注意需要保留2位

小数,可用String.foramt(“%.2f”,变量);

下面为本题生成报表内容:

接下来我们来分析以下题目集4,5,6中所有正则表达式的运用:

首先,如要声明一字符串变量str,要让S匹配一字符串,则;

第一行括号里为一正则表达式,随机匹配4个数字或字母。

如果匹配成功,即m.find()==true,则m.group()为匹配的项。(注意:m.find()只能返回boolean型)

当然,需要使用正则表达式时,必须引类

现在来说说JAVA集合框架总结分析:

一:框架图

通过查询资料,以下为JAVA框架图:

二:框架分析

(1)点线框表示接口,实线框表示具体的类。

(2)常用的List、Set、Queue、Map都属于集合类。前三个都是继承自Collection,但是Map不是。

(3)List不仅可以生成普通的Iterator(因为继承自Collection),还能生成ListIterator。

(4)常用的类ArrayList、LinkedList、HashSet、HashMap。这几个类请好好研读JDK源码

(5)其它需要好好掌握的容器:CopyOnWriteArrayList、TreeSet、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap。

三、采坑心得

1、对字符串数字进行运算时,我将其强制转化为Int型,但是运行不了。截图如下;

但是当我强制转化Double型时,就可以运行了。截图如下:

2、当我计算圆的面积时,我把PI当成3.14159运算,发现结果有时正确,有时误差0.01;

后面调试了好久,发现可以用Math.PI来运算。

3、对字符串排序时,可以直接比较大小,即通过ASCII码进行比较,我还叫它们强制转化为int型,多此一举了。

4、有时题目对变量说明小于等于0时,输出“Wrong Format”,而我却写出其小于0时,输出“Wrong Format”,之后等于0的测试点就一致过不了,检查很久采检查出来。

         四、改进建议

1、老师授课的方式非常适合我们,他根据本课程知识结构的特点,重点突出,层次分明。理论和实际相结合,通过例题使知识更条理化。但授课速度有点快,来不及记录。

2、老师发布作业的题目难度有些偏大,一些题目需要上网查询资料才能勉强写出一点点。这样会使同学之间代码查重率增高,所以希望老师降低题目难度,让我在能够学习好基础知识的情况下还能把题目都做出来。

3、老师上课有时非常严格,是非常有教授风度的,但是希望老师适当幽默一些,缓解紧张的课堂气氛,让我们学的更放松一点。

五、总结

通过本次PTA题目集4,5,6的学习,我对JAVA的学习更深入了,学习了正则表达式的运用,类的基本概念,如何创建类,学会了类的继承,了解了类的多态与接口。

当然,我的学习还是不完美的,我还要对一些相关的基础知识进行巩固,我的JAVA基础只是还了解的不够透彻。还需要多看教材多看书。

我希望老师能够让课堂变的幽默一点,在sign里面布置的题目能够给多点时间去写。

我希望课程能够把知识点讲的详细一点,因为有些知识太抽象,很难一时半会理解,所以希望老师讲的详细一些。

我希望作业量可以适当加一些,但是难度减小一点,达到能让我们学习好专业知识并且也有能力把作业写完。

我希望在课上老师能够布置适当的练习,保证我们能做完的前提下,不耽误老师自己的上课进度。

在课下,我希望老师别一次性布置太多作业,因为别的科目,比如高数,现代,英语作业也很多,希望老师能理解我们的苦处。

blog2对PTA4,5,6集的习题总结的更多相关文章

  1. POJ 1182 食物链 【带权并查集】

    <题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...

  2. POJ1082食物链

    加权并查集入门习题. 传送门http://poj.org/problem?id=1182 下面来记录一下做法: 并查集的作用是询问两个对象时候在同一集合以及将两个非空不相交集合合并. 本题涉及两点之间 ...

  3. 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

    <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明 先附上文档归类目录: 课本源码合辑  链接☛☛☛ <数据结构>课本源码合辑 习题集全解析  链接☛☛☛  ...

  4. 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第9章  查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚 ...

  5. 9-9-B+树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第9章  查找 - B+树 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题 ...

  6. 9-8-B树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第9章  查找 - B树 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...

  7. 7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第7章  图 - 有向图强连通分量的Kosaraju算法 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严 ...

  8. 6-11-N皇后问题-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第6章  树和二叉树 - N皇后问题 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本 ...

  9. 6-9-哈夫曼树(HuffmanTree)-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第6章  树和二叉树 - 哈夫曼树(HuffmanTree) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版> ...

  10. 数据结构(c语言版)代码

    第1章  绪论       文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲01 绪论  概述        第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...

随机推荐

  1. 城市路(Dijkstra)

    这道题目需要用到 Dijkstra plus 版(堆优化) 模板还是一样就是有几个点值得注意 1.这里用的是优先队列,原版需要搜出最小,并且没用过的点,省时间就剩在这里用小根堆就可以完美解决这个问题. ...

  2. 基于昇腾计算语言AscendCL开发AI推理应用

    摘要:本文介绍了昇腾计算语言AscendCL的基本概念,并以示例代码的形式介绍了如何基于AscendCL开发AI推理应用,最后配以实际的操作演示说明如何编译运行应用. 本文分享自华为云社区<基于 ...

  3. 11款Linux数据恢复工具!

    转载:<Linux就该这么学> - 必读的Linux系统与红帽RHCE认证免费自学书籍 (linuxprobe.com) 11款最棒的Linux数据恢复工具发布啦! | <Linux ...

  4. knock:端口敲门服务

    knock:端口敲门服务 端口敲门服务,即:knockd服务.该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的 ...

  5. 国外的SRE都是干啥工作的?薪资如何?

    本文翻译自:https://www.flagship.io/glossary/site-reliability-engineer/,意译~ 众所周知,开发和 IT 运营之间因为屁股决定脑袋,存在巨大的 ...

  6. 一位数左边补0,slice也可以

    以下三种方法都可以返回:"09" 1.n<10 ?'0'+n:''+n 2.('0'+n).slice(-2) 3.(''+n).padStart(2,'0')

  7. 把 URL 中文和一堆百分号转换成字符串

    https://www.cnblogs.com/Enziandom/tag/Web%20%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91 JS 有解析这样的 URL 的函数,主 ...

  8. AttributeError: module 'requests' has no attribute 'get' 报错分析

    这个报错与代码时没有关系 当文件名与调用模块名重合时,系统找不到我们调用的requests模块. 在命名时,我们要注意不要重合.

  9. [网鼎杯2020]boom

    [网鼎杯2020]boom 分析 感觉比较友善,主要考查数学运算. 解析 解压之后发现是个exe文件,运行得到一个md5 查询: 输入明文得到: 下个挑战是解三元一次方程: 拿matlab算一下. s ...

  10. Java学习笔记(一)环境安装与java基础

    学习笔记01 两年前学的Java,现在已经忘得差不多了,跟着狂神说Java的视频从头开始学,希望能救一救ww 一.JDK JRE JVM 1. JDK java development kit 2. ...