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 绪论 概述 第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...
随机推荐
- 【CTO变形记】有序定无序—为什么越努力,越无力
前言:我们用自己构建的认知结构来理解和映射这个世界,通过外界的反馈来调整现有的认知.但面对的现实越来越复杂,以及面对更多的未知且陌生的情况时,我们常常试图去"修整"接受到的信息 ...
- Vue27 scoped样式
https://www.jianshu.com/p/d80383251fc5 1 简介 当我们在组件中写样式,vue最后会把所有样式合在一起,如果样式名称重复的话就会有问题 style标签上加scop ...
- 元数据库 information_schema.tables
转 https://www.cnblogs.com/ssslinppp/p/6178636.html 1.information_schema数据库 对于mysql和Infobright等数据库,i ...
- Snipaste下载安装(使用教程)
## Snipaste下载安装(使用教程)**一 简单介绍** Snipaste 是一个免费简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1 来开始截图,再 ...
- Java期末测试
会议预约管理信息系统(50分) 1.项目背景: 会议是企业进行决策.协商的重要组织形式,是企业日常办公处理事务的重要手段,是办公流程中不可缺少的重要环节,作为企业,如何有效的进行会议组织,管理 ...
- JavaScript是怎样实现继承的?
一.是什么 继承(inheritance)是面向对象软件技术当中的一个概念. 如果一个类别B"继承自"另一个类别A,就把这个B称为"A的子类",而把A称为&qu ...
- kali linux生成密码字典方法
kali linux生成密码字典方法 所谓的密码字典主要是配合密码破解软件所使用,密码字典里包括许多人们习惯性设置的密码.这样可以提高密码破解软件的密码破解成功率和命中率,缩短密码破解的时间.当然,如 ...
- 队列——queue的用法(及洛谷B3616)
队列的概念 在说队列之前,先回忆一下栈是什么,我们一般说栈是一个先进后出的数据结构,而队列就是先进先出的数据结构. 队列是定在表的一端进行插入,表的另一端进行删除. 通常,我们称进数据的一端为队尾,出 ...
- [USACO17JAN]Promotion Counting P
题目大意 大小为 \(n\) 以 \(1\) 为根的树,点带权,求每个子树内大于本点的点的数量 \(1 \le n \le 10^5,1 \le p_i \le 10^9\) 题解 一眼静态链分治,然 ...
- JZOJ 1121. Fix
解析 考场时想多了,其实根本不用分阶段 一维状压 \(DP\) 就行了 可我没想清楚,加了个第几次去稳固一个点的阶段 然后时间就炸了!!! \(Code\) #include<cstdio> ...