屬性: 車牌號
入場時間
出場時間
按月繳費標誌
兩個以上構造函數
一組set方法
一組get方法
從鍵盤輸入屬性的方法
顯示屬性方法(車牌號、入場時間、出場時間、停車費用)
獲取出場時間
獲取入場時間
按小時計算停車費用的方法(計費方法:凌晨6點開始-至晚上8點:第一個15分鐘免費,六小時內每15分鐘1.5元,6後小時每15分鐘2塊,晚上8點之後每小時0.5元錢)
按月計費的方法(每個月800元)java
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /********************************* * 停車場管理 * author *2015-12-13 ********************************/ public class CarStopManager { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請入車牌號:"); String carno = sc.next(); CarStopManager carStopManager = new CarStopManager(); carStopManager.setCarNo(carno);//設置車牌號 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sdate = format.format(new Date()); System.out.println("當前時間(入場時間)是: "+sdate); System.out.println("須要開出車場嗎?yes/no:"); String yesno = sc.next(); if(yesno.equals("yes")){ String edate = format.format(new Date()); System.out.println("出場時間是: "+edate); //計算方法 carManager(2, sdate, edate,carStopManager); } } /** * 計算方法 */ public static void carManager(int type,String starTime, String endTime,CarStopManager carStopManager){ if(type==1){//按月收費 System.out.println("如若沒有繳納月費請繳納800元,如若繳納將再也不提示!"); }else{ /** * 通常不會有停車幾個月的吧?先不考慮停車幾年或者幾個月的 */ String sDay = starTime.substring(8,10);//入場日期(天) String sHour = starTime.substring(11, 13);//入場小時 String sMM = starTime.substring(14,16);//入場分鐘 String eDay = starTime.substring(8,10);//出場日期(天) String eHour = endTime.substring(11, 13);//出廠小時 String eMM = endTime.substring(14,16);//出廠分鐘 float money = 0;//需繳納的費用 int shour = Integer.parseInt(sHour); int ehour = Integer.parseInt(eHour); int smm = Integer.parseInt(sMM); int emm = Integer.parseInt(eMM); int rehour = 0;//停車幾個小時 if(sDay.equals(eDay)){//同一天 //當天6點到20點之間 if((shour>=6 && shour<=20)){ if(ehour - shour<=6){//6個小時以內 rehour = (ehour - shour)*60+(emm - smm);//停車多少分鐘 //須要繳納的費用 前15分鐘免費 之後每15分鐘1.5元 money = (rehour/15-15)*1.5f; }else{ int hour = ehour - shour -6;//6小時除外剩餘小時數 rehour = 6*60+(emm - smm);//停車多少分鐘 //前15分鐘免費 之後每15分鐘1.5元 超過6小時15分鐘2元 money = ((rehour/15-15)*1.5f)+(hour*60/2); } } }else{//跨天 20點到 6點之間 //todo } System.out.println("您的車牌號是:"+carStopManager.getCarNo()+";\n" + "您這次停車花費的費用是: "+money+"元"); } } /** * bean屬性 */ private String carNo;//車牌號 private String startTime;//入場時間 private String endTime;//出場時間 /** * 無參構造 */ public CarStopManager(){ super(); } /** * 有參數構造 * @param carNo * @param startTime * @param endTime */ public CarStopManager(String carNo, String startTime, String endTime) { super(); this.carNo = carNo; this.startTime = startTime; this.endTime = endTime; } /** * 設置get方法 * @return */ public String getCarNo() { return carNo; } /** * 設置set方法 * @param carNo */ public void setCarNo(String carNo) { this.carNo = carNo; } public String getStartTime() { return startTime; } public void setStartTime(String startTime) { this.startTime = startTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } }
或者:函數
import
java.util.Scanner;
this
public
class
CarTest {
spa
private
int
inTime;
3d
private
int
outTime;
code
private
String carNumber;
orm
private
String moneyFlag;
blog
public
CarTest(){}
ci
public
CarTest(
int
inTime,
int
outTime, String carNumber,
get
String moneyFlag) {
super
();
this
.inTime = inTime;
this
.outTime = outTime;
this
.carNumber = carNumber;
this
.moneyFlag = moneyFlag;
}
public
float
getInTime() {
return
inTime;
}
public
void
setInTime(
int
inTime) {
this
.inTime = inTime;
}
public
float
getOutTime() {
return
outTime;
}
public
void
setOutTime(
int
outTime) {
this
.outTime = outTime;
}
public
String getCarNumber() {
return
carNumber;
}
public
void
setCarNumber(String carNumber) {
this
.carNumber = carNumber;
}
public
String getMoneyFlag() {
return
moneyFlag;
}
public
void
setMoneyFlag(String moneyFlag) {
this
.moneyFlag = moneyFlag;
}
//計算費用
public
float
putMoney(
float
inTime,
float
outTime,String moneyFlag){
float
money =
0
.0f;
//按月計費的
if
(
"y"
.equals(moneyFlag)){
money =
0
.0f;
}
else
{
//不按月計費的
if
(inTime >
6
&& inTime <
20
){
float
hour = outTime - inTime;
if
(hour <
6
){
float
time = (outTime-inTime)*
60
-
15
;
money = (
float
) (time/
15
*
1.5
);
}
else
{
money = (
float
) ((hour-
6
)*
60
/
15
*
2
+
6
*
60
/
15
*
1.5
);
}
}
else
{
money = (
float
) ((outTime - inTime)*
0.5
);
}
}
return
money;
}
public
static
void
main(String[] args) {
Scanner sc =
new
Scanner(System.in);
while
(
true
){
CarTest ct =
new
CarTest();
System.out.println(
"請輸入車牌號、入場時間,出場時間,按月繳費標誌(y/n):"
);
String carNumber = sc.next();
int
inTime = sc.nextInt();
int
outTime = sc.nextInt();
String moneyFlag = sc.next();
//ct.setCarNumber(carNumber);
//ct.setInTime(inTime);
//ct.setOutTime(outTime);
//ct.setMoneyFlag(moneyFlag);
System.out.println(
"車牌號爲:"
+ carNumber +
",入場時間:"
+inTime+
"點"
+
",出場時間:"
+outTime+
"點"
+
",是否按月繳費:"
+ moneyFlag);
float
money = ct.putMoney(inTime, outTime, moneyFlag);
if
(
"y"
.equals(moneyFlag)){
System.out.println(
"因爲您是按月繳費用戶,因此您本次停車費用爲:"
+money+
"元"
);
System.out.println(
"可是你本月須要繳費800元"
);
}
else
{
System.out.println(
"您本次停車費用爲:"
);
System.out.println(money +
"元"
);
}
}
}
}