天天看點

【Java】刷題題庫

  1. 多态

1.建立員工類Employee,包含私有姓名和年齡屬性,僅提供全參構造,提供get/set方法,提供抽象的自我介紹方法void introduce();

2.建立員工類的子類助理老師Assistant,在助理老師類中提供自我介紹的方法introduce()、輔助教學的方法void assist()和講作業題void teachHomework()的方法:

       (1)在自我介紹方法中列印"我是助理老師,我叫***,年齡是***歲"(要求列印出具體的年齡和姓名,***通過get方法擷取目前對象的姓名和年齡)

       (2)在講作業題方法中列印"***開始講作業題了"(***通過get方法擷取目前對象的姓名)

       (3)在執行輔助教學方法時需先調用自我介紹方法,然後列印"開始自習",最後再調用講作業題方法.

3.建立員工類的子類講師Teacher,在講師類中提供自我介紹的方法void introduce()、講課方法void teach()和呼叫助理老師的方法Assistant callAssistant(String name,int age):

    (1)在自我介紹方法中列印"我是講師,我叫***,年齡是***歲"(要求列印出具體的年齡和姓名,***通過get方法擷取目前對象的姓名和年齡)

       (2)在呼叫助理老師方法中傳回一個助理老師對象

       (3)在執行講課方法時先調用自我介紹方法,然後列印"開始講課了。。。。下課了"

4.在測試類的main方法中:

       (1)建立講師對象,調用講師的講課方法

       (2)調用講師的呼叫助理老師方法擷取到助理老師對象,調用該助理老師對象的輔助教學方法

  1. Map+IO

現有一串字元串”上海傳智播客,上海黑馬,武漢傳智播客,深圳黑馬,北京傳智播客,廣州黑馬,北京黑馬”,要求使用程式統計出”傳智播客”和”黑馬”在該字元串中出現的次數,然後按照以下指定格式輸出到目前項目下的times.txt中

times.txt檔案格式如下:

傳智播客(1)

黑馬(2)

  1. 集合+IO

(birthday 使用日期類Date,去掉馬建國那條資料;實體類屬性已經給好)

students.txt樣本資料格式說明:

彭萬裡;2007年1月;311336092;18;青海;69,8,3,55

對應釋義: 

學生姓名(name);生日(birthday);學号(studentNumber);年齡(age);籍貫(address);成績資訊(grade)。

其中四組成績資訊(69,8,3,55),分别表示數學成績(mathematics),英語成績(english),程式設計成績(programme),體育成績(sports)

根據樣本資料的格式,自行設計名字為Student的java類

題目要求:

完成如下功能實作:

需求一,編寫代碼對students.txt檔案全部内容進行讀取,以對象的形式存儲到集合中

需求二,統計數學學科以及程式設計學科的成績平均分進行列印

輸出格式:數學學科平均分(80)程式設計學科平均分(90)

需求三,統計各省人數并進行列印

輸出格式: 上海(3) 北京(2) 

需求四,統計各省每個學科成績的平均分并列印

輸出格式:黑龍江(72,32,35,47)

其中72代表黑龍江省所有學生的數學成績的平均分

其中21代表黑龍江省所有學生的英語成績的平均分

其中35代表黑龍江省所有學生的程式設計成績的平均分

其中47代表黑龍江省所有學生的體育成績的平均分

需求五,統計樣本資料中每個月份分别都有多少人過生日并在控制台進行列印

輸出格式:1月份(12) 2月份(22)

需求六,分析所有學生名字中,每個字出現的次數并列印

輸出格式:鋒(10) 江(8)

需求七,統計所有學生名字中,哪個字出現的次數最多并列印

輸出格式:樣本資料中“江”出現的次數最多,共出現xx次

記錄使用者或遊客登陸資訊,要求如下:

1. 在項目根目錄下建立2個txt檔案:data和user,user檔案中有2行使用者資訊内容(該内容可以手動在檔案中輸入,無需程式寫入),格式(使用者名=密碼)具體如下:

jack=1234

rose=4567

2. 建立靜态的使用者登入方法:boolean login(),方法中要求完成:

2.1 提示使用者輸入使用者名和密碼,并擷取鍵盤錄入的使用者名和密碼

2.2 根據鍵盤錄入的使用者名和密碼比對user檔案中的使用者資訊,如使用者名和密碼都比對成功,将使用者名、登入成功的時間和登入狀态存入data檔案中,并在控制台提示登入成功,存入的格式: jack 2016-09-21 00:43 登陸成功!,

如比對不成功,将使用者名、登入失敗的時間和登入狀态存入data檔案中,并在控制台提示登入失敗,存入的格式:jack 2016-09-21 00:48 登陸失敗!

3. 建立靜态的遊客浏覽方法:void otherLogin(),将遊客、浏覽的時間存入data檔案中,存入格式:遊客 2016-09-21 00:03 進行浏覽!

4. 定義main方法,程式運作時,在控制台提示:1.賬号登陸   2.遊客浏覽

4.1鍵盤錄入1執行使用者登入方法,如登陸成功結束程式,如登陸不成功跳回初始提示界面

4.2 鍵盤錄入2執行遊客浏覽方法,執行後結束程式

4.3 如果鍵盤錄入其他整數,提示"請輸入正确浏覽方式!",并跳回初始提示界面   

  1. 多态

正在上傳…重新上傳取消

根據上圖所示完成如下要求:

1.,定義出抽象類 神仙類ShenXian,接口 打猴子HitMonkey,以及神仙類的兩個子類二郎神ErLangShen和太上老君TaiShangLaoJun,

抽象類 神仙類 中提供滿參構造方法,并且為name, age 屬性提供必要的get/set方法 ,

二郎神類和太上老君類定義滿參數構造方法,并用super通路父類構造方法,2個子類中除構造方法之外的所有方法内,都需調用get方法獲得目前對象的name和age屬性

2.定義測試類Test,測試類中, 使用多态建立二郎神,太上老君對象.并給對象指派. 使用多态方式運作eat方法. 使用強制轉換 , 運作73變 ,遛狗 ,三昧真火和打猴子方法

  1. 多态

正在上傳…重新上傳取消

根據圖上所示,定義類和接口,要求:

1.建立抽象類手機類Phone,提供滿參數構造方法,不提供空參數構造方法,添加必要的get/set方法,定義抽象方法void call(),void send()

2.建立上網接口Net,抽象方法 void upload(), void download().

3.建立子類普通手機類Ordinary_Phone,繼承手機類Phone,添加必要的構造方法,重寫抽象方法

建立智能手機類Smart_Phone,繼承手機類Phone并實作上網接口Net,添加必須的構造方法,重寫抽象方法. 在重寫call()和send()方法時,需要列印出自己手機的品牌和型号.

4.建立抽象類 GetInstance,定義Phone  getPhone(int n) 靜态方法 ,如果參數n為0,傳回普通手機類對象,參數,n為其他值傳回智能手機類對象.  

在GetInstance類中定義建立Net  getNet()靜态方法

 5.建立測試類Test, 在main方法中調用GetInstance類靜态方法getPhone(int n),并傳遞0,和其他值,擷取Phone類型對象,并調用方法call(),send()

 main方法中,調用GetInstance類靜态方法getNet(),擷取Net類型對象,并調用upload(),download()方法

  1. IO+Set

去除指定檔案中的重複字元,要求如下:

1. 在項目根目錄下建立2個txt檔案:data和result,data檔案中有2行内容(該内容可以手動在檔案中輸入,無需程式寫入),具體如下:

12345abcde

abcde12345

2. 使用IO流讀取data檔案中的内容,并将檔案内容中的所有重複字元去除,将去除重複字元之後的新字元寫入到result檔案中

  1. 面向對象+IO

1) 定義動物類Animal,動物類中有動物性别 String sex;名稱 String name;來源 String source,提供get/set方法。

2) 定義動物熊貓 Panda ,繼承動物Animal類;

3) 定義動物猴子 Monkey ,繼承動物Animal類;

4) 定義動物大象 Elephant ,繼承動物Animal類;

5) 定義動物園類Zoo,

動物園中有成員變量 ArrayList<String> sources;提供get/set方法,用于儲存動物園有來自哪些地方的動物;

動物園中有成員變量 ArrayList<Animal> animals;提供get/set方法,可以儲存所有的動物

6) 定義測試類Test

在測試類中建立main方法,

main方法中建立1隻熊貓:

姓名是“熊貓”,性别是“雄性”,來源于“中國”;

main方法中建立2隻猴子:

1隻姓名是“猴子”,性别是“雌性”,來源是“印度”;

1隻姓名是“猴子”,性别是“雌性”,來源于“緬甸”;

main方法中建立3頭大象,

1頭姓名是“大象”,性别是“雄性”,來源是“中國”;

1頭姓名是“大象”,性别是“雌性”,來源是“印度”;

1頭姓名是“大象”,性别是“雌性”,來源是“緬甸”;

main方法中建立集合ArrayList<Animal> animals,将6個動物放入集合中;

main方法中建立1個動物園對象Zoo zoo;

7) 測試類中定義方法 void addAnimal(Zoo zoo,ArrayList<Animal> animals);方法的功能要求如下:

1、将傳入的動物集合放入到動物園對象中;

2、将動物的來源放入到動物園zoo的來源sources中,來源不要重複,例如:來源于中國的動物有2個,來源緬甸的動物有2個,來源印度的動物有2個,那麼來源中隻存放一個“中國”,一個“緬甸”。一個“印度”;

8) 在測試類中建立方法,void countForFemale(Zoo zoo);方法中統計哪些動物的雌性數量大于等于2隻(動物園隻有熊貓、猴子、大象),列印出這些動物的名字,一類動物隻能列印一次。

列印格式要求:猴子的雌性動物數量大于等于兩隻;

  大象的雌性動物數量大于等于兩隻;

9) 在測試類中建立方法,ArrayList<Animal> findSameSource(Zoo zoo );找出哪一類動物來源包含動物園中所有動物的來源,傳回這一類所有的動物(動物園隻有熊貓、猴子、大象)

  1. 面向對象+IO

建立接口Study 定義抽象方法void study();

建立Person類對象,擁有私有屬性: 姓名String name,性别String sex,年齡int age

建立Score類 有私有屬性:數學成績 int math , 國文成績 int Chinese 英語成績 int English  僅提供滿參構造和set/get方法

建立Student類繼承Person類,私有成員變量分數Score scores, 僅提供滿參構造和set/get實作study接口,重寫study()方法,方法内部

列印”姓名+性别+年齡+在學習.”

Student類特有方法 void showInfo() 方法内部展示同學的名字,性别,年齡以及成績資訊

建立測試類,讀取a.txt檔案中的内容到一個集合中,a.txt檔案内容如下:

張三豐,男,18,69,20,60

張三豐,男,18,69,20,60

貂蟬,女,15,88,74,63

李四光,男,19,75,65,36

小喬,女,17,90,85,73

張勇,男,22,32,95,84

張勇,男,22,32,95,84

其中張三豐是名字,男 是性别,18是年齡,69是數學成績,20是國文成績,60是英語成績.

将a.txt中的資料儲存到student類型的集合裡面,去除姓名相同的同學.

(1)周遊集合,調用各個對象的study方法和showInfo方法.

(2)周遊集合,擷取到姓張的所有同學, 計算出姓張同學的平均分,并且列印

(3)周遊集合,擷取到性别為女的所有同學, 計算出女同學的平均分

(4)在測試類中定義Student GetMaxAvg(ArrayList<Student>students)方法,傳回平均分最高的student對象.列印資訊.  

  1. 面向對象+IO

建立抽象Pet(寵物)類,内有私有的成員變量String name(名字),String variety(種類).int age(年齡). 抽象吃方法void eat();抽象叫方法void bellow();僅提供滿參構造和set/get方法.

建立Dog類繼承Pet類,重寫eat()方法,方法内列印”

6歲的旺财狗在吃狗糧,真香!” 重寫bellow()方法,方法内列印”6歲的旺财狗在汪汪汪的叫”特有方法看家LookHome(),方法内列印”6歲的旺财狗在看家,汪汪汪”.

建立Cat類繼承Pet類, 重寫eat()方法,方法内列印”

7歲的加菲貓在吃貓糧,嘿嘿嘿!” 重寫bellow()方法,方法内列印”7歲的加菲貓在喵喵喵的叫” 特有方法抓老鼠CatchMouse(),方法内列印”7歲的加菲貓在抓老鼠,吃掉!”.

建立Bird類繼承Pet類, 重寫eat()方法,方法内列印”

5歲的比爾鳥在吃鳥食,叽叽!” 重寫bellow()方法,方法内列印”5歲的比爾鳥在叽叽叽叽的叫” 特有方法唱歌sing(),方法内列印”5歲的比爾鳥在唱歌,真好聽!”.

建立Person類,私有成員變量String name(名字),int age(年齡),String sex(性别),ArrayList<Pet>pets(寵物集合). 僅提供滿參構造和set/get方法.

定義測試類,建立三個Person對象,名字分别為petter,Alisa,Jason;年齡分别為19,20,21;性别分别是男,女,男;每個人都有兩個寵物,Petter的寵物是狗和鳥,Alisa的寵物是貓和鳥,Jason的寵物是鳥和狗.

(1) 周遊集合,定義showInfo方法,方法傳入一個Person集合,方法内部展示每個人的資訊.

(2) 有一天Alisa的貓咪淘氣的将鳥放飛了,是以Alisa的寵物隻有貓了,請設計方法删除Alisa的寵物鳥.

(3) 列印出每個人寵物得eat方法和bellow方法以及每個寵物特有的方法.

(4) 将每個人的寵物用一下形式寫入到Pet.txt檔案中.一個人一行

Person{name=’petter’,age=’19’,sex=’男’,pets=[Pet{ name=’旺财’,variety=’狗’age=’6’},

Pet{ name=’ 比爾’ variety=’狗’age=’6’}]

  1. 多态

根據要求完成代碼

1.抽象類Drink(飲品),包含私有屬性String name(品名)、double price(價格),生成getter/setter方法,并且定義空參和滿參構

造方法。

  Drink(飲品) 包含抽象方法 void taste(),該方法負責輸出飲料的味道。

2.接口Lotto("揭蓋有獎"),接口中含有 抽象方法 double lotto(),方法功能是可以随機優惠一些金額,傳回值是優惠金額

3.抽象類Drink(飲品)有兩個具體的子類Beer(啤酒)和Coffee(咖啡), 兩個子類都隻定義了滿參構造方法,在構造方法中通路了父類的滿

參構造方法。兩個子類都實作了接口Lotto,重寫了double lotto()方法。

其中Coffee(咖啡)類中實作父類中方法void taste(),方法中輸出"我是傷心的咖啡,味道是苦的",在實作接口方法double lotto()中

,輸出 name(品名)+"咖啡不參與揭蓋有獎活動",并傳回 0;

Beer(啤酒類)中實作父類中方法void taste(),方法中輸出"我是有故事的啤酒,味道是澀的",在實作接口方法double lotto()中,輸

出 name(品名)+"啤酒正在參與揭蓋有獎活動",并傳回随機優惠金額:(算法 0-1的随機數 * price價格)

4.測試類

  使用多态建立Drink(飲品)兩種飲品,其中Beer 品名 "青島冰醇啤酒600ml",價格 3.5元, Coffer 品名"藍山咖啡350ml",價格 199

元,将兩種飲品放入ArrayList<Drink>集合中,周遊集合,判斷集合中的每一個元素,如果該元素是Beer類型 就向下轉型為Beer,調用

它的taste()方法,調用double lotto()方法,接收傳回金額,并列印"優惠金額為"+傳回金額。;如果該元素是是Coffee類型 就向下轉

型為Coffee,調用它的taste()方法,調用double lotto()方法,接收傳回金額,并列印"優惠金額為"+傳回金額。

  1. 檔案加密和解密

1.圖檔加密

  編寫一個方法 void writeFileToTxt(File file)

  現有一個圖檔p1.png,讀取成位元組數組,對位元組數組進行加密(每個數組+1),寫入到data.txt中.

     Byte[] b ={100,200,300,400};

              101,201,301,401

建立輸入流  p1.png   is

得到圖檔的位元組數組  IOUtils.toByteArray( is );

周遊位元組數組

每個位元組+1

将新的位元組數組寫入到data.txt中   

  編寫過程中,對異常進行捕獲,列印出對應的異常資訊

2.圖檔解密

  編寫一個方法 void readTxtToFile(File file)

  将data.txt的位元組數組讀取過來,對位元組進行解密(每個數組+1),将位元組數組儲存到檔案p1_coyp.png

   編寫過程中,對異常進行捕獲,列印出對應的異常資訊

3.編寫測試類,調用方法。

  1. IOUtils+Map

統計小說中每個字元出現的次數,将統計後的資料放入map集合中,key為字元,value為次數,把結果寫入到count.txt中。格式為  

中(100)

國(99)   

每個占一行

  1. IOUtils

兩個檔案 a.txt,b.txt,都包含内容,将a.txt 和b.txt的内容交換,要求使用IOUtils。

  1. IOUtils
  1. IOUtils+Map  ***