1. 程式人生 > >噠噠租車系統(慕課網學習)

噠噠租車系統(慕課網學習)

         設計一個租車系統,車有載貨和載人,也有既載貨又載人的車,模擬租車系統,實現一點小功能!

綜合運用所學知識,完善系統(異常處理,介面使用,封裝繼承等等~)

異常處理還是有些缺陷,對選車過程中輸錯序號還沒有很好的處理,等掌握的知識多了再來解決。

程式碼如下:

package example1;

public class Car {
	private int carNumber;
	private String carName;
	private int carMoney;
	public int getCarNumber() {
		return carNumber;
	}
	public void setCarNumber(int carNumber) {
		this.carNumber = carNumber;
	}
	public String getCarName() {
		return carName;
	}
	public void setCarName(String carName) {
		this.carName = carName;
	}
	public int getCarMoney() {
		return carMoney;
	}
	public void setCarMoney(int carMoney) {
		this.carMoney = carMoney;
	}
}

package example1;

public class PassengerCar extends Car {
	private int carCapacity;
	public PassengerCar(int carNumber,String carName,int carMoney,int carCapacity){
		this.setCarNumber(carNumber);
		this.setCarName(carName);
		this.setCarMoney(carMoney);
		this.carCapacity=carCapacity;
	}
	public int getCarCapacity() {
		return carCapacity;
	}

	public void setCarCapacity(int carCapacity) {
		this.carCapacity = carCapacity;
	}
}

package example1;

public class Trunk extends Car{
	private int carCarry;
    public Trunk(int carNumber,String carName,int carMoney,int carCarry){
        this.setCarNumber(carNumber);
        this.setCarName(carName);
        this.setCarMoney(carMoney);
        this.carCarry=carCarry;
    }
	public int getCarCarry() {
		return carCarry;
	}

	public void setCarCarry(int carCarry) {
		this.carCarry = carCarry;
	}
}
public class PickUp extends Car {
	    private int carCapacity; //定義皮卡的載客量
	    private int carCarry; //定義皮卡的載貨量
	     
	    public PickUp(int carNumber,String carName,int carRentMoney,int carCapacity,int carCarry){
	        this.setCarNumber(carNumber);
	        this.setCarName(carName);
	        this.setCarMoney(carRentMoney);
	        this.carCapacity=carCapacity;
	        this.carCarry=carCarry;
	    }

		public int getCarCapacity() {
			return carCapacity;
		}

		public void setCarCapacity(int carCapacity) {
			this.carCapacity = carCapacity;
		}

		public int getCarCarry() {
			return carCarry;
		}

		public void setCarCarry(int carCarry) {
			this.carCarry = carCarry;
		}
	 
	}


package example1;
import java.util.Scanner;
import java.util.*;

public class Test {

	public static void main(String[] args) {
		System.out.println("歡迎使用噠噠租車系統!\n");
		while(true){
			int kase=0;
	        System.out.println("您是否需要租車? :1 是   0 否");
	        try{
	        	Scanner input=new Scanner(System.in);
	            int k=input.nextInt();
	            if(k==1)
	            {
	            	kase=1;
	    	        System.out.println("您可租車的型別及價目表:");
	    	        Car [] carRent={new PassengerCar(1,"奧迪",500,4),new PassengerCar(2,"馬自達",400,4),
	    			new PickUp(3,"皮卡雪",450,4,2),new PassengerCar(4,"金龍",800,20),new Trunk(5,"松花江",400,4),new Trunk(6,"解放",500,5)
	    	    };
	    	    System.out.println("序號"+"\t"+"汽車名稱"+"\t"+"租金"+"\t"+"容量");
	    	    for (Car car : carRent) {
	                //用instanceOf來測試左邊型別的物件是否是右邊型別的例項,返回值為Boolean
	    	    	if(car instanceof PassengerCar){
	                //若它是客車型別的例項,則打印出客車應該有的屬性值,這裡注意強轉,否則不會出現
	                //passengerCar類的CarCapacity屬性
	                 System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()
	                                                  +"/天"+"\t"+"載人:"+((PassengerCar)car).getCarCapacity()+"人");
	                     }
	                if(car instanceof PickUp){
	                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()
	                                                  +"/天"+"\t"+"載人:"+((PickUp)car).getCarCapacity()+"人"+"\t"
	                                                  +"載貨:"+((PickUp)car).getCarCarry()+"噸");
	                }
	                if(car instanceof Trunk){
	                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()
	                                                  +"/天"+"\t"+"載貨:"+((Trunk)car).getCarCarry()+"噸");
	                }
	            }
	    	    System.out.println("請輸入您要租車的數量");
	    	    int n=input.nextInt();
	    	    List<Car> carList=new ArrayList<Car>();
	    	    int p=0;
	    	    List<Car> carList1=new ArrayList<Car>();
	    	    List<Car> carList2=new ArrayList<Car>();
	    	    int pnum=0;
	    	    int cnum=0;
	    	    int mnum=0;
	    	    for(int i=0;i<n;i++){
	    	    	System.out.println("請輸入第"+(i+1)+"輛車的序號: ");
	    		    int nnum=input.nextInt();
	    		    carList.add(carRent[nnum-1]);
	    		    System.out.println("成功新增:"+carList.get(p).getCarName());
	    		    if(carRent[nnum-1] instanceof PassengerCar){
	    		    	pnum+=((PassengerCar)carList.get(p)).getCarCapacity();
	    			    mnum+=(carList.get(p)).getCarMoney();
	    			    carList1.add(carList.get(p));
	    			    }
	    		    if(carRent[nnum-1]instanceof PickUp){
	    		    	cnum+=((PickUp)carList.get(p)).getCarCarry();
	    			    pnum+=((PickUp)carList.get(p)).getCarCapacity();
	    			    mnum+=(carList.get(p)).getCarMoney();
	    			    carList2.add(carList.get(p));
	    			    carList1.add(carList.get(p));
	    		 }
	    		 if(carRent[nnum-1]instanceof Trunk){
	    			 cnum+=((Trunk)carList.get(p)).getCarCarry();
	    			 mnum+=(carList.get(p)).getCarMoney();
	                 carList2.add(carList.get(p));
	    		 }
	    		 p++; 
	    		 }
	    	    System.out.println("請輸入租車的天數:");
	    	    int dnum=input.nextInt();
	            mnum=mnum*dnum;
	            if(carList1.isEmpty()){
	            	System.out.println("沒有可以載客的車~");
	            	}
	            else{
	            	System.out.println("********************可載客的車有********************");
	                for (Car car : carList1) {
	                	System.out.println(car.getCarName());
	                	}
	                System.out.println("載客量為"+pnum+"人");
	                }
	            if(carList2.isEmpty()){
	            	System.out.println("沒有可以載客的車~");
	            	}
	            else{
	            	System.out.println("********************可載貨的車有********************");
	                for (Car car : carList2) {
	                	System.out.println(car.getCarName());
	                	}
	                System.out.println("載貨量為"+cnum+"噸");
	                }
	            System.out.println("********************租車的總價格********************");
	                System.out.println(mnum);
	                }
	            else if(k==0){
                        kase=1; 
	            	System.out.println("感謝您的再次使用!再見!");
	            	}
	            else{
	        	    System.out.println("您輸入的指令有誤,請重新輸入!");
	        	    }
	            }catch(Exception e){
	        	    System.out.println("請輸入數字!謝謝~");
	        	    }
	        if(kase==1)
	    	      break;
	        }
	}
}



執行結果:


相關推薦

噠噠系統學習

         設計一個租車系統,車有載貨和載人,也有既載貨又載人的車,模擬租車系統,實現一點小功能! 綜合運用所學知識,完善系統(異常處理,介面使用,封裝繼承等等~) 異常處理還是有些缺陷,對選車過程中輸錯序號還沒有很好的處理,等掌握的知識多了再來解決。 程式碼如下

抽獎系統題目

優化 asc window cursor 按鍵 center idt ole type 要求實現功能: 1.點擊左側按鍵,開始抽獎,點擊右側按鍵,停止抽獎; 2.敲擊回車鍵,開始抽獎,再次敲擊回車鍵,停止抽獎; 3.開始抽獎後,左側按鈕變色; html: <!DOC

【總結整理】javascript基礎入門學習學習

節點 confirm pro remove prompt 例如 ref 存儲 基礎入門 https://www.imooc.com/learn/36 註意: javascript作為一種腳本語言可以放在html頁面中任何位置,但是瀏覽器解釋html時是按先後順序的,所以前面

事件響應練習題目

通過 取值 font data 按鈕 turn del att get 編程練習 使用JS完成一個簡單的計算器功能。實現2個輸入框中輸入整數後,點擊第三個輸入框能給出2個整數的加減乘除。 提示:獲取元素的值設置和獲取方法為:例:賦值:document.getElemen

JS內置對象練習題目

星期四 rest html 內置 document har write func index 效果圖: XXXX年XX月X日 星期X--班級總分為:81 格式要求: 1、顯示打印的日期。 格式為類似“XXXX年XX月XX日 星期X” 的當前的時間。 2、計算出該班級的平均分

編程挑戰JavaScript進階篇題目

align mar setattr 家居 back 技術分享 meta lock cor 編程挑戰 現在利用之前我們學過的JavaScript知識,實現選項卡切換的效果。 效果圖: 文字素材: 房產: 275萬購昌平鄰鐵三居 總價20萬買一居 200萬內

Linux----軟件安裝管理筆記

樹形 擴展 方法 程序 style 慕課網 命令管理 平臺 很難 一、軟件包安裝簡介 軟件包分類 源碼包 腳本安裝包 二進制包(rpm包,系統默認包) 源碼包 源碼包優點 開源,如果有足夠能力,可以自行修改源代碼 可以自由選擇所需的功能 軟件是編譯安裝,所以

HTML基本語法學習筆記

標題 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>學習html標題</title> </head> &l

CSS基本語法學習筆記

CSS的宣告,內外聯樣式以及CSS的優先順序 css學習.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS學習&

Java練習 SDUT-3349_答答系統面向物件綜合練習

答答租車系統(面向物件綜合練習) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向物件的小夥伴們,在學習了面向物件的核心概念——類的封裝、繼承、多型之後,答答租車系統開始營運了。 請你充分利用面向物件思想,為公司解

Linux達人養成計劃筆記

一、Linux簡介 1、Linux分為核心版和發行版 2、Window是與Linux的區別 (1)Linux嚴格區分大小寫 (2)Linux中所有內容以檔案形式儲存,包括硬體 (3)Linux沒有副檔名概念 即Linux不靠副檔名區分檔案型別(靠許可權區分),但會有一些約定尋常的副

SDUT-3349 答答系統面向物件綜合練習

Problem Description 各位面向物件的小夥伴們,在學習了面向物件的核心概念——類的封裝、繼承、多型之後,答答租車系統開始營運了。 請你充分利用面向物件思想,為公司解決智慧租車問題,根據客戶選定的車型和租車天數,來計算租車費用,最大載客人數,最大載載重量。

js之window物件學習筆記

javaScript定義了一個變數一個函式都會變成window中的一個成員 var a=1; alert(window.a) //會輸出a的值 window基礎 建立視窗、調整視窗、移動視窗、關閉視窗 <!DOCTYPE html> <html lang

js之DOM入門學習筆記

DOM簡介 獲得元素 document.getElementById(’’) 1、通過id獲得元素內容 document.getElementsByTagName(’’) 2、通過標籤獲得元素內容 document.getElementsByClassName(’’) 3、通過

CSS定位學習筆記

定位模型 static自然模型 relative相對定位模型 absolute絕對定位模型 fixed固定定位模型 sticky磁鐵定位模型 possition之static(預設的設定)(靜態定位、常規定位、自然定位) 作用 使元素

Float浮動學習筆記

float浮動 屬性:值 意義 float:left 左浮動 float:right 右浮動 float:none

三大前端框架對比學習記錄

12.29學習記錄 一、3-1 前端框架的分析 What 框架中的框就是“約束”,架就是“支撐”,框架會控制我們書寫程式碼時的結構、依賴關係以及互動關係。簡單點來說就是我們按照框架的要求來寫業務,而與業務無關的一些內容由框架完成,提高開發效率。 Why

-噠噠系統

租車 讀取 輸入 使用 測試 public ++ import 方法 //定義一個父類 public class Car { String name;//車名 double rent;//租金 public String getName(){

QQ面板拖拽DOM事件探秘

code gin 事件 left drag panel get mouseup onmouseup 2.鼠標事件坐標獲取 function fnDown(event) { var event = event || window.event; var oDr

Scrapy分布式爬蟲打造搜索引擎--爬取知乎

false pat 模塊 text 文件的 服務 協議 .py execute 通過Scrapy模擬登陸知乎 通過命令讓系統自動新建zhihu.py文件 首先進入工程目錄下 再進入虛擬環境 通過genspider命令新建zhihu.py scrap