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 绪论 概述 第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...
随机推荐
- 【ASP.NET Core】标记帮助器——抽象层
标记帮助器,即 Tag Helpers.这个嘛,就直接翻译了,叫"标记帮助器",虽然不好听,但只能这样了.当然你翻译为"标记增强器"也行. 所谓标记帮助器,就是 ...
- python实现移动二级目录下的文件到一级目录
python实现移动二级目录下的文件到一级目录 import os import shutil import sys def move_to_work_folder(work_path, cur_pa ...
- 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性
标签: 类风湿关节炎; 目标治疗策略; 能量多普勒活性; 预测因子 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性 电邮发布日期:2016年4月6日 本研究的重 ...
- 用于双目重建中的GPU编程:julia-cuda
作者:京东科技 李大冲 一.Julia是什么 julia是2010年开始面世的语言,作为一个10后,Julia必然有前辈们没有的特点.Julia被期望塑造成原生的有C++的运行速度.python的易交 ...
- Java第四讲动手动脑
1. 在以上的代码中,main方法调用的是public void println(Object x),这一方法调用了String类的valueOf方法,valueOf方法内部调用Object. toS ...
- sqlserver 循环插入脚本
Declare @i int = 0 -- 说明需要插入的列值 WHILE @i< 1000000 BEGIN -- 需要写入数据的值 insert into ... set @i = @i + ...
- CF1764G1 题解
题意 传送门 交互库有一个 \([1,n]\) 的排列 \(p\),你可以询问 \(l,r,k\),交互库会返回 \(\lfloor\dfrac{p_l}{k}\rfloor,\lfloor\dfra ...
- 使用伪元素 before 叹号
.tip { width: 400px; line-height: 150%; border-left-color: #f66; color: #666; padding: 12px 24px 12p ...
- Android MVP框架 详细代码
android mvp的好处,网上一搜一大堆,相对于一开始普通的在activity中处理所有的不管是网络请求还是页面渲染,最大的好处是简洁了,废话不多说,看代码 这里网络请求使用了两种,一种是自己封装 ...
- Python-网络编程和多进程多线程开发
网络编程 osi7层模型 以通过访问网站发送请求数据为例,每一层会做如下的事情 应用层:规定数据的格式. "GET /s?wd=你好 HTTP/1.1\r\nHost:www.baidu.c ...