Blog2:nchu-software-oop-2022-4+5+期中

Blog2:nchu-software-oop-2022-4+5+期中
一、前言
两次大作业是关于四边形和五边形的相关操作,类似于之前的三角形,但由于图形边数的变化,难度大大增加 。对数学知识的运用考察较多,其中还有对正则表达式的考量 。在完成五边形第二题作业是,由于前面创建的类并不好,在面对复杂的五边形时,前面的类根本没有办法延用 。这两次作业对我来说都很吃力 。考查的知识点有:字符串的输出和输入,强制转化变量的类型,split函数的应用,逻辑思维能力,全面考虑问题的能力,方法编写能力,正则表达式练习 。其中,主要题目是图形界面类设计编写 。这些作业题量和难度都很大,全部尽量写到最好要花费比较多的时间 。
期中考试主要考察了PTA图形界面类设计编写,共有三道题目,题量一般 。与平时题目不同的是,每题均给出了相应的类图,要求考生按照类图来书写自己的代码 。且三题呈递进关系,每题均是由上一题进阶而来 。第一题是点与线,要求输出点和线的属性,考察了学生对Java类的设计的掌握 。而第二题则是在第一题的基础上加上了关于面的类,并要求把点、线、面三类均作为新建类Element类的子类 。考察了学生对继承与多态的掌握 。第三题考察了Java容器类,主要是ArrayList的应用 。且相比前两题有了多种输入格式,增加了难度 。
 
二、设计与分析
题目1:
7-2 点线形系列4-凸四边形的计算
分数 70全屏浏览题目切换布局作者 蔡轲单位 南昌航空大学用户输入一组选项和数据,进行与四边形有关的计算 。以下四边形顶点的坐标要求按顺序依次输入,连续输入的两个顶点是相邻顶点,第一个和最后一个输入的顶点相邻 。选项包括:1:输入四个点坐标,判断是否是四边形、平行四边形,判断结果输出true/false,结果之间以一个英文空格符分隔 。2:输入四个点坐标,判断是否是菱形、矩形、正方形,判断结果输出true/false,结果之间以一个英文空格符分隔 。若四个点坐标无法构成四边形,输出"not a quadrilateral"3:输入四个点坐标,判断是凹四边形(false)还是凸四边形(true),输出四边形周长、面积,结果之间以一个英文空格符分隔 。若四个点坐标无法构成四边形,输出"not a quadrilateral"4:输入六个点坐标,前两个点构成一条直线,后四个点构成一个四边形或三角形,输出直线与四边形(也可能是三角形)相交的交点数量 。如果交点有两个,再按面积从小到大输出四边形(或三角形)被直线分割成两部分的面积(不换行) 。若直线与四边形或三角形的一条边线重合,输出"The line is coincide with one of the lines" 。若后四个点不符合四边形或三角形的输入,输出"not a quadrilateral or triangle" 。后四个点构成三角形的情况:假设三角形一条边上两个端点分别是x、y,边线中间有一点z,另一顶点s:1)符合要求的输入:顶点重复或者z与xy都相邻,如x x y s、x z y s、x y x s、s x y y 。此时去除冗余点,保留一个x、一个y 。2) 不符合要求的输入:z 不与xy都相邻,如z x y s、x z s y、x s z y5:输入五个点坐标,输出第一个是否在后四个点所构成的四边形(限定为凸四边形,不考虑凹四边形)或三角形(判定方法见选项4)的内部(若是四边形输出in the quadrilateral/outof the quadrilateral,若是三角形输出in the triangle/outof the triangle) 。如果点在多边形的某条边上,输出"on the triangle或者on the quadrilateral" 。若后四个点不符合四边形或三角形,输出"not a quadrilateral or triangle" 。
*****************************************************************************************************************************************************************************

经验总结扩展阅读