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