Set集合練習(xí)(2)--- 鍵盤(pán)錄入學(xué)生信息,按其總分進(jìn)行排序

? ? ? ? 今天我們來(lái)說(shuō)說(shuō)另外一個(gè)關(guān)于set集合的練習(xí),上需求:鍵盤(pán)錄入學(xué)生信息(姓名、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)、外語(yǔ)成績(jī)),輸入“exit”結(jié)束輸入,然后按照總分進(jìn)行排序,輸出到控制臺(tái)。(錄入學(xué)生信息格式【張三 92 88 99】

? ? ? ? 告訴你需求了,那我們來(lái)分析一下吧,我們要做哪些事:

? ? ? ? 1.首先我們創(chuàng)建一個(gè)Student類(lèi),添加姓名、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī)以及總分屬性;

? ? ? ? 上代碼:

? ? ? ? 然后Alt+Shift+S選擇生成構(gòu)造方法和ToString()方法:

? ? ? ? ? ? ? ?注意:生成構(gòu)造方法的時(shí)候不要選擇sum,生成toString()方法時(shí)只選擇name和sum就行了, 然后就出現(xiàn)了這些代碼:

? ? ? ? 2.創(chuàng)建一個(gè)Set集合來(lái)存儲(chǔ)學(xué)生信息,隨后監(jiān)聽(tīng)用戶輸入內(nèi)容,然后判斷用戶是否輸入為“exit”,是則退出循環(huán),否則拆分該字符串,拆分后存到Set集合,最后遍歷學(xué)生信息;

? ? ? ? 代碼:

? ? ? ? 哈哈哈哈!寫(xiě)完一大半了,就差排序了哦!讓我們先測(cè)試一下,嘿嘿嘿嘿:

? ? ? ? 輸入【張三 92 88 99】試一下:

? ? ? ? Oh,No!見(jiàn)紅了!“java.lang.ClassCastException”類(lèi)型轉(zhuǎn)換異常?Excuse me???

? ? ? ? 我們?cè)偻罂纯?,它說(shuō):“setDemo.Student cannot be cast to java.lang.Comparable”,就是說(shuō)Student類(lèi)不能被投射到比較器,不能投射?那我就給你加一個(gè)比較器!

? ? ? ? 可是...可是,添加了還是不行啊,我們把鼠標(biāo)移動(dòng)到Student上看看,出現(xiàn)“Add unimplemented methods”,意思是添加未實(shí)現(xiàn)的方法,好,那就再給你加一個(gè)!點(diǎn)擊之后出現(xiàn)了這段代碼:

? ? ? ? 上文說(shuō)過(guò),這個(gè)比較器默認(rèn)“return 0;”,“return 0;”則代表只返回一個(gè)數(shù);而“return 正數(shù);”則代表正序輸出;“return 負(fù)數(shù);”則代表倒序輸出。那么這里呢,我們就“return o.sum - this.sum;”,這樣,解決剛才異常的同時(shí),我們還完成了排序,真是棒棒噠!

? ? ? ? 這回我們?cè)賮?lái)測(cè)試一下,輸出結(jié)果如下:

? ? ? ? 細(xì)心的朋友問(wèn)了,要是我不小心把數(shù)據(jù)格式輸錯(cuò)咋辦?好,那我們就來(lái)試試輸入格式錯(cuò)誤的情況:

? ? ? ? 又見(jiàn)紅了?。。『脷馀叮。?!

? ? ? ? 怎么辦?這里我們用一個(gè)try...catch就好啦,代碼:

? ? ? ? 這下應(yīng)該沒(méi)問(wèn)題了,我們?cè)賮?lái)測(cè)試一下:

? ? ? ? OK!大功告成!上完整代碼:

? ? ? ? Demo類(lèi):

? ? ? ? Student類(lèi):

? ? ? ? 結(jié)語(yǔ):以上就是Set集合練習(xí)(2)的全部?jī)?nèi)容,有說(shuō)的不對(duì)的、不專(zhuān)業(yè)的地方還請(qǐng)大佬們多多為小弟指點(diǎn),下次更新不見(jiàn)不散!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容