blog2对PTA4,5,6集的习题总结
一、 前言
通过本三次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集的习题总结的更多相关文章
- POJ 1182 食物链 【带权并查集】
<题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...
- POJ1082食物链
加权并查集入门习题. 传送门http://poj.org/problem?id=1182 下面来记录一下做法: 并查集的作用是询问两个对象时候在同一集合以及将两个非空不相交集合合并. 本题涉及两点之间 ...
- 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
<数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明 先附上文档归类目录: 课本源码合辑 链接☛☛☛ <数据结构>课本源码合辑 习题集全解析 链接☛☛☛ ...
- 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚 ...
- 9-9-B+树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - B+树 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题 ...
- 9-8-B树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - B树 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...
- 7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第7章 图 - 有向图强连通分量的Kosaraju算法 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严 ...
- 6-11-N皇后问题-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第6章 树和二叉树 - N皇后问题 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本 ...
- 6-9-哈夫曼树(HuffmanTree)-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第6章 树和二叉树 - 哈夫曼树(HuffmanTree) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版> ...
- 数据结构(c语言版)代码
第1章 绪论 文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲01 绪论 概述 第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...
随机推荐
- 【unity萌新第一步】Unity的Hello World(适合小白)
Unity萌新的第一步:使用unity写第一个Hello World IT界有个笑话:"我擅长用各种语言写Hello World".我讲这个笑话的目的是,指出:写一个HelloWo ...
- zookeeper06-watcher四字命令
zookeeper四字监控命令 zooKeeper支持某些特定的四字命令与其的交互.它们大多是查询命令,用来获取 zooKeeper服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 ...
- redis georadius源码分析与性能优化
原文地址: https://blog.fanscore.cn/a/51/ 背景 最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点.完工后对服务进行压测后发现geor ...
- JDBC工具类,减少代码冗余好帮手
首先要在scr下创建一个file文件 当然 需要初始的注册驱动和数据库操作都可以实现,才可以用jdbc工具类进行减多少代码冗余~可以看前面一篇的博客,就是写如何连接jdbc哈~代码运行成功的快乐真的好 ...
- .net core 阿里云接口之将指定的OSS文件下载到流
紧接上文,.net core 阿里云接口之获取临时访问凭证_SunshineGGB的博客-CSDN博客 本文继续阿里云接口调用,将指定的OSS文件下载到流. 直接上代码: /// <summar ...
- 可视化的容器镜像的图形管理工具Portainer【强烈推荐】
Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境. 而且完全免费,基于容器化的安装方式,方便高效部署. 官方站点:https:// ...
- React中组件之间是如何通信的 react的组件通信方式有哪些
一.是什么 通信指的是发送者通过某种媒体 以某种格式来传递信息 到收信者以达到某个目的,广义上,任何信息的传递都是通信 二.如何通信? 组件传递的方式有很多种,根据传送者和接收者可以分为如下: 父组件 ...
- vue axios请求中断的处理
https://blog.csdn.net/qiaoqiaohong/article/details/121014296
- 推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回.粗排.精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板: 粗排是初筛,一般不会上复杂模型: 精排是整个推荐环节的重 ...
- Trie 的一类应用
\(\text{Trie}\) 先从 [十二省联考 \(2019\)] 异或粽子 谈起 不难想到堆加可持久化 \(Trie\) 的做法 这就和 \(\text{[NOI2010]}\) 超级钢琴 类似 ...