iMooc-Java入門第二季達達租車系統(tǒng)

最近在跟著慕課網(wǎng)的java教程回顧和復(fù)習(xí)java纲爸,同時也在查漏補缺中對本科階段的知識做一個小型的總結(jié)踩验。
第二季的視頻用了三天看完玛痊,大作業(yè)用了一個上午寫完『潦ぃ看視頻過程中學(xué)習(xí)了eclipse強大的生成(generalize)和改錯功能书斜。
對java的面向?qū)ο筇匦院涂刂婆_IO做了復(fù)習(xí),也新學(xué)了ArrayList的功能酵使,收獲比較大荐吉。

先貼上大作業(yè)要求的輸出。


Paste_Image.png
Paste_Image.png
Paste_Image.png
代碼借鑒了來自以下網(wǎng)頁的代碼

http://www.imooc.com/article/16652%20%20%20Java
http://blog.csdn.net/Joseph_Cherry/article/details/60530978

  • 主要思想是:建立一個Car父類口渔,MotorCar是載人汽車子類样屠,Truck是載貨汽車子類,bothCar是皮卡(可載人也可載貨)子類缺脉。用ArrayList存儲各類車的名稱痪欲、租金、容量攻礼。重寫toString方法來解決輸出各類車的信息價格表业踢。

我的代碼:

Car.java
package com.DADACar;
public class Car {
    public String name;
    public int price;
    
    public String getName() {
        return name;
    }
    public int getPrice() {
        return price;
    }
    public int getHumanNum() {
        // TODO Auto-generated method stub
        return 0;
    }
    public int getGoodsNum() {
        // TODO Auto-generated method stub
        return 0;
    }
}
motorCar.java
package com.DADACar;

public class motorCar extends Car {
    private int humanNum;
    
    public int getHumanNum() {
        return this.humanNum;
    }
    public motorCar(String name, int price, int humanNum){
        this.name=name;
        this.price=price;
        this.humanNum=humanNum;
    }
    public String toString(){
        return(name+"\t"+price+"元\\天    "+"載客量:"+humanNum+"人");
    }
}
trunckCar.java
package com.DADACar;
public class truckCar extends Car {
    private int goodsNum;

    public int getGoodsNum() {
        return this.goodsNum;
    }

    public truckCar(String name, int price, int goodsNum) {
        this.name=name;
        this.price=price;
        this.goodsNum=goodsNum;
        
    }
    public String toString(){
        return(name+"\t"+price+"元\\天    "+"載貨量:"+goodsNum+"噸");
    }
}
bothCar.java
package com.DADACar;

public class bothCar extends Car {
    private int goodsNum;
    private int humanNum;
    public int getGoodsNum() {
        return this.goodsNum;
    }
    public int getHumanNum() {
        return this.humanNum;
    }
    public bothCar(String name, int price, int goodsNum, int humanNum){
        this.name=name;
        this.price=price;
        this.goodsNum=goodsNum;
        this.humanNum=humanNum;
    }
    
    public String toString(){
        return(name+"\t"+price+"元\\天\t"+"    載貨量:"+goodsNum+"噸    載人量"+humanNum+"人");
    }
}
rentCarSystem.java //主函數(shù)在這里!礁扮!
package com.DADACar;

import java.util.ArrayList;
import java.util.Scanner;

public class rentCarSystem {
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("歡迎使用噠噠租車系統(tǒng)");
        System.out.println("您是否需要租車知举? 1-是 0-否");
        Scanner statusScanner = new Scanner(System.in);
        String begin = statusScanner.next();
        //statusScanner.close();
        while(true){
        switch(begin){
        case "1":
            systemInfoPrint();
            break;
        case "0":
            System.out.println("謝謝使用本系統(tǒng),再見太伊!");
            System.exit(0);
            break;
        default:
            System.out.println("輸入的值有誤负蠕!");
            }
        }
    }
    public static void systemInfoPrint(){
        ArrayList<Car> carlist = new ArrayList<Car>(6);
        carlist.add(new motorCar("奧迪A4",500,4));
        carlist.add(new motorCar("馬自達6",400,4));
        carlist.add(new bothCar("皮卡雪6",450,2,4)); //貨量,人量
        carlist.add(new motorCar("金龍",800,20));
        carlist.add(new truckCar("松花江",400,4));
        carlist.add(new truckCar("依維柯",1000,20));
        
        System.out.println("可供租用的車型信息有:");
        System.out.println("******************************************");
        System.out.println("序號\t車型        單價            容量");
        for(int i = 0;i<carlist.size();i++){
        System.out.print((i+1)+"\t");//不換行
        System.out.println(carlist.get(i));//換行倦畅,這里不知道行不行//行,get返回值是String绣的,重寫了Car的toString函數(shù)
        }
        
        int rentNum = 0;
        System.out.println("請輸入租車數(shù)量:");
        Scanner rentNumScanner = new Scanner(System.in);
        rentNum = rentNumScanner.nextInt();
        
        Scanner carNoSC=new Scanner(System.in);
        int [] rentNumList = new int[rentNum];
        
        for(int i=0;i<rentNum;i++){
        System.out.println("請輸入第"+(i+1)+"輛車的序號:");
        rentNumList[i]=carNoSC.nextInt();
        }
        
        System.out.println("請輸入租用天數(shù):");
        Scanner rentDaySC = new Scanner(System.in);
        int rentDayNum = rentDaySC.nextInt();
        
        
        int totalMan=0;
        int totalGoods=0;
        int totalPrice=0;
        StringBuilder humanOutput = new StringBuilder();
        StringBuilder goodsOutput = new StringBuilder();
        
        for(int i =0;i<rentNumList.length;i++){
            if(carlist.get(rentNumList[i]-1) instanceof motorCar){
                humanOutput.append(carlist.get(rentNumList[i]-1).getName());
                humanOutput.append(" ");
                totalMan = totalMan+carlist.get(rentNumList[i]-1).getHumanNum();
                totalPrice = totalPrice+rentDayNum*carlist.get(rentNumList[i]-1).getPrice();
            }
            else if(carlist.get(rentNumList[i]-1) instanceof truckCar){
                goodsOutput.append(carlist.get(rentNumList[i]-1).getName());
                goodsOutput.append(" ");
                totalGoods = totalGoods+carlist.get(rentNumList[i]-1).getGoodsNum();
                totalPrice = totalPrice+rentDayNum*carlist.get(rentNumList[i]-1).getPrice();
            }
            else{
                humanOutput.append(carlist.get(rentNumList[i]-1).getName());
                humanOutput.append(" ");
                goodsOutput.append(carlist.get(rentNumList[i]-1).getName());
                goodsOutput.append(" ");
                totalPrice = totalPrice+rentDayNum*carlist.get(rentNumList[i]-1).getPrice();
                totalMan = totalMan+carlist.get(rentNumList[i]-1).getHumanNum();
                totalGoods = totalGoods+carlist.get(rentNumList[i]-1).getGoodsNum();
            }
            
            
        }
        
        System.out.println("您的賬單如下:");
        //重頭戲
        System.out.println("**可載人的車有:");
        System.out.println(humanOutput+"\t共載人:"+totalMan+"人");
        System.out.println("**可載貨的車有:");
        System.out.println(goodsOutput+"\t共載貨:"+totalGoods+"噸");
        System.out.println("租車的總價是:");
        System.out.println(totalPrice+"元");

        
        //rentNumScanner.close();
        //carNoSC.close();
        //rentDaySC.close();
    }
}
  • 另外值得注意的是

Scanner輸入流如果close了叠赐,就會出現(xiàn)如下所示的NoSuchElementException錯誤欲账。

>Exception in thread "main" [Java](http://lib.csdn.net/base/javase).util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)at java.util.Scanner.next(Scanner.java:1416)

csdn博客中有分析說注釋掉close()那一行就不報錯了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芭概,隨后出現(xiàn)的幾起案子赛不,更是在濱河造成了極大的恐慌,老刑警劉巖罢洲,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踢故,死亡現(xiàn)場離奇詭異,居然都是意外死亡惹苗,警方通過查閱死者的電腦和手機殿较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桩蓉,“玉大人淋纲,你說我怎么就攤上這事≡壕浚” “怎么了洽瞬?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長业汰。 經(jīng)常有香客問我伙窃,道長,這世上最難降的妖魔是什么样漆? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任为障,我火速辦了婚禮,結(jié)果婚禮上氛濒,老公的妹妹穿的比我還像新娘产场。我一直安慰自己,他們只是感情好舞竿,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布京景。 她就那樣靜靜地躺著,像睡著了一般骗奖。 火紅的嫁衣襯著肌膚如雪确徙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天执桌,我揣著相機與錄音鄙皇,去河邊找鬼。 笑死仰挣,一個胖子當(dāng)著我的面吹牛伴逸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膘壶,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼错蝴,長吁一口氣:“原來是場噩夢啊……” “哼洲愤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起顷锰,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤柬赐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后官紫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肛宋,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年束世,在試婚紗的時候發(fā)現(xiàn)自己被綠了酝陈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡良狈,死狀恐怖后添,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薪丁,我是刑警寧澤遇西,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站严嗜,受9級特大地震影響粱檀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漫玄,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一茄蚯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧睦优,春花似錦渗常、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至隐孽,卻和暖如春癌椿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菱阵。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工踢俄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晴及。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓都办,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子脆丁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,734評論 25 707
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法世舰,類相關(guān)的語法,內(nèi)部類的語法槽卫,繼承相關(guān)的語法,異常的語法胰蝠,線程的語...
    子非魚_t_閱讀 31,597評論 18 399
  • 轉(zhuǎn)自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帥199207閱讀 8,504評論 3 93
  • 一首陳奕迅的《你的背包》歼培,將我的思緒拉到從前。 “那個背包載滿紀(jì)念品和患難 還有摩擦留下的圖案 它是我肩膀上的指環(huán)...
    菱然閱讀 507評論 0 0
  • 弟在家鄉(xiāng)真喜悅茸塞,兄在他鄉(xiāng)熬病魔躲庄。核桃豐收精神爽,感冒趟在病床上钾虐。老婆兒子無人問噪窘,人生創(chuàng)業(yè)自折騰。老來方知父母心效扫,生...
    璋哥說事閱讀 193評論 0 0