資源簡介
停車場管理系統的實現 (8-9周)
實驗內容:設計一個停車場管理系統軟件 。
汽車類 Car
屬性: 車牌號
入場時間
出場時間
按月繳費標志
應交停車費
兩個以上構造函數
一組set方法
一組get方法
從鍵盤輸入屬性的方法
顯示屬性方法(車牌號、入場時間、出場時間、停車費用)
出場信息登記 (出場時間、交費)
入場信息登記 (車牌號、入場時間、包月標志)
按小時計算停車費用的方法(停車在36小時之內)(計費方法:凌晨6點開始-至晚上8點:第一個15分鐘免費,六小時內每15分鐘1.5元,6后小時每15分鐘2塊,晚上8點以后每小時0.5元錢)
按月計費的方法(每月800元)
停車場類 Park
屬性 停車場名稱
停車場ID
停車場管理單位
值班人員名稱
停車常容量
已進入車輛數目
存放入車庫車數組
營業額
構造函數(2個)
從鍵盤輸入屬性的方法
顯示屬性方法
汽車入庫
汽車出庫
判斷車庫 是否為空
判斷車庫是否為滿
查詢顯示空車位的編號及空車位個數
查閱until包里的時間相關的類
也可以加入 圖形界面
方法二:

代碼片段和文件信息
import?java.util.*;
public?class?Car?{
public?String?CarID;//?定義車牌號
public?Calendar?EnTime;//入場時間
public?Calendar?DeTime;//出場時間
????public?int?Month_Money_Tag;//?按月繳費的標志
public?double?Shoud_pay_money;//?應繳車費
public?int?r;//停車時間的保存???用分數保存??其產生是用隨機數產生的
public?Car()?{//無參構造函數中要寫下面這些,不然得到的出場時間是和從系統獲得的入場時間是相同的
EnTime?=?Calendar.getInstance();//?獲取系統時間?入場時間???????Calendar.getInstance()是為了獲得calendar實例
DeTime?=?Calendar.getInstance();//?出場時間???????獲得calendar實例
Random?r_time=new?Random();
r=r_time.nextInt(60*24);//產生24小時?也就是60*24個分鐘的隨機數,用來修改出場時間
DeTime.add(Calendar.MINUTE?r);
}
public?Car(String?carID?Calendar?enTime?Calendar?deTime?int?month_Money_Tag?double?shoud_pay_money)?{
EnTime?=?Calendar.getInstance();//?獲取系統時間?入場時間???????Calendar.getInstance()是為了獲得calendar實例
DeTime?=?Calendar.getInstance();//?出場時間???????獲得calendar實例
Random?r_time=new?Random();
r=r_time.nextInt(60*24);//產生24小時?也就是60*24個分鐘的隨機數,用來修改出場時間
CarID?=?carID;
EnTime?=?enTime;
DeTime?=?deTime;
DeTime.add(Calendar.MINUTE?r);
Month_Money_Tag?=?month_Money_Tag;
Shoud_pay_money?=?shoud_pay_money;
}
public?String?getCarID()?{
return?CarID;
}
public?void?setCarID(String?carID)?{
CarID?=?carID;
}
public?Calendar?getEnTime()?{
return?EnTime;
}
public?void?setEnTime(Calendar?enTime)?{
EnTime?=?enTime;
}
public?Calendar?getDeTime()?{
return?DeTime;
}
public?void?setDeTime(Calendar?deTime)?{
DeTime?=?deTime;
}
public?int?isMonth_Money_Tag()?{
return?Month_Money_Tag;
}
public?void?setMonth_Money_Tag(int?month_Money_Tag)?{
Month_Money_Tag?=?month_Money_Tag;
}
public?double?getShoud_money()?{
return?Shoud_pay_money;
}
public?void?setShoud_money(double?shoud_pay_money)?{
Shoud_pay_money?=?shoud_pay_money;
}
public?void?input_car_info()?{
Scanner?inputt=new?Scanner(System.in);
System.out.println(“請輸入車牌號:“);
CarID=inputt.next();
System.out.println(“是否按月繳費(1:是????0:不是)“);
Month_Money_Tag=inputt.nextInt();
}
public?double?shoud_money()?{//計算應交車費
double?money=0;
int?day=(DeTime.get(Calendar.DAY_OF_MONTH)-EnTime.get(Calendar.DAY_OF_MONTH));//計算天數差
int?hour=(DeTime.get(Calendar.HOUR_OF_DAY)-EnTime.get(Calendar.HOUR_OF_DAY));//計算小時差
int?minute=(DeTime.get(Calendar.MINUTE)-EnTime.get(Calendar.MINUTE));//計算分鐘差
int?save_day=0;//用來保存是否跨天的信息
if(day<0){//主要是為了求跨越了月?或天?或小時是產生進位后的??時間差
switch((EnTime.get(Calendar.MONTH)+1))?{//因為從Calendar得到的月份是從0開始計算的??
case?1:day=31+day;break;
case?2:day=28+day;break;
case?3:day=31+day;break;
case?4:day=30+day;break;
case?5:day=31+day;break;
case?6:day=30+day;break;
case?7:day=31+day;break;
case?8:day=31+day;break;
case?9:day=30+day;break;
case?10:day=31+day;break;
case?11:day=30+day;break;
case?12:day=31+day;break;
}
save_day=day;//用來保存是否跨越了一天??到了第二天??
if(?hour<0){
day=day-1;
hour=24+hour;
if(minute<0){
hour=ho
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7531??2017-11-01?09:05??src\Car.java
?????文件???????3621??2017-11-01?08:47??src\Park.java
?????文件???????1771??2017-11-01?09:04??src\Test.java
?????目錄??????????0??2017-10-25?17:12??src
-----------?---------??----------?-----??----
????????????????12923????????????????????4
評論
共有 條評論