Blog2:nchu-software-oop-2022-4+5+期中
一、前言
兩次大作業(yè)是關(guān)于四邊形和五邊形的相關(guān)操作,類似于之前的三角形,但由于圖形邊數(shù)的變化,難度大大增加 。對數(shù)學(xué)知識的運用考察較多,其中還有對正則表達(dá)式的考量 。在完成五邊形第二題作業(yè)是,由于前面創(chuàng)建的類并不好,在面對復(fù)雜的五邊形時,前面的類根本沒有辦法延用 。這兩次作業(yè)對我來說都很吃力 。考查的知識點有:字符串的輸出和輸入,強(qiáng)制轉(zhuǎn)化變量的類型,split函數(shù)的應(yīng)用,邏輯思維能力,全面考慮問題的能力,方法編寫能力,正則表達(dá)式練習(xí) 。其中,主要題目是圖形界面類設(shè)計編寫 。這些作業(yè)題量和難度都很大,全部盡量寫到最好要花費比較多的時間 。
期中考試主要考察了PTA圖形界面類設(shè)計編寫,共有三道題目,題量一般 。與平時題目不同的是,每題均給出了相應(yīng)的類圖,要求考生按照類圖來書寫自己的代碼 。且三題呈遞進(jìn)關(guān)系,每題均是由上一題進(jìn)階而來 。第一題是點與線,要求輸出點和線的屬性,考察了學(xué)生對Java類的設(shè)計的掌握 。而第二題則是在第一題的基礎(chǔ)上加上了關(guān)于面的類,并要求把點、線、面三類均作為新建類Element類的子類 。考察了學(xué)生對繼承與多態(tài)的掌握 。第三題考察了Java容器類,主要是ArrayList的應(yīng)用 。且相比前兩題有了多種輸入格式,增加了難度 。
二、設(shè)計與分析
題目1:
7-2 點線形系列4-凸四邊形的計算
分?jǐn)?shù) 70全屏瀏覽題目切換布局作者 蔡軻單位 南昌航空大學(xué)用戶輸入一組選項和數(shù)據(jù),進(jìn)行與四邊形有關(guān)的計算 。以下四邊形頂點的坐標(biāo)要求按順序依次輸入,連續(xù)輸入的兩個頂點是相鄰頂點,第一個和最后一個輸入的頂點相鄰 。選項包括:1:輸入四個點坐標(biāo),判斷是否是四邊形、平行四邊形,判斷結(jié)果輸出true/false,結(jié)果之間以一個英文空格符分隔 。2:輸入四個點坐標(biāo),判斷是否是菱形、矩形、正方形,判斷結(jié)果輸出true/false,結(jié)果之間以一個英文空格符分隔 。若四個點坐標(biāo)無法構(gòu)成四邊形,輸出"not a quadrilateral"3:輸入四個點坐標(biāo),判斷是凹四邊形(false)還是凸四邊形(true),輸出四邊形周長、面積,結(jié)果之間以一個英文空格符分隔 。若四個點坐標(biāo)無法構(gòu)成四邊形,輸出"not a quadrilateral"4:輸入六個點坐標(biāo),前兩個點構(gòu)成一條直線,后四個點構(gòu)成一個四邊形或三角形,輸出直線與四邊形(也可能是三角形)相交的交點數(shù)量 。如果交點有兩個,再按面積從小到大輸出四邊形(或三角形)被直線分割成兩部分的面積(不換行) 。若直線與四邊形或三角形的一條邊線重合,輸出"The line is coincide with one of the lines" 。若后四個點不符合四邊形或三角形的輸入,輸出"not a quadrilateral or triangle" 。后四個點構(gòu)成三角形的情況:假設(shè)三角形一條邊上兩個端點分別是x、y,邊線中間有一點z,另一頂點s:1)符合要求的輸入:頂點重復(fù)或者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:輸入五個點坐標(biāo),輸出第一個是否在后四個點所構(gòu)成的四邊形(限定為凸四邊形,不考慮凹四邊形)或三角形(判定方法見選項4)的內(nèi)部(若是四邊形輸出in the quadrilateral/outof the quadrilateral,若是三角形輸出in the triangle/outof the triangle) 。如果點在多邊形的某條邊上,輸出"on the triangle或者on the quadrilateral" 。若后四個點不符合四邊形或三角形,輸出"not a quadrilateral or triangle" 。
*****************************************************************************************************************************************************************************
