資源簡介
停車場管理
1).有一個兩層的停車場, 每層有6個車位, 當第一層車停滿后才允許使用第二層. ( 停車場可用一個二維數組實現, 每個數組元素存放一個車牌號 ) 每輛車的信息包括車牌號, 層號, 車位號, 停車時間共4項. 其中停車時間按分鐘計算
2). 假設停車場初始狀態為第一層已經停有4輛車, 其車位號依次為1—4 , 停車時間依次為20, 15, 10 , 5 . 即先將這四輛車的信息存入文件”car.dat”中( 數組的對應元素也要進行賦值 )
3). 停車操作: 當一輛車進入停車場時, 先輸入其車牌號, 再為它分配一個層號和一個車位號(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時間設為5 , 最后將新停入的汽車的信息添加文件”car.dat”中, 并將在此之前的所有車的停車時間加5.
4). 收費管理(取車): 當有車離開時, 輸入其車牌號, 先按其停車時間計算費用, 每5分鐘0.2元. (停車費用可設置一個變量進行保存), 同時從文件”car.dat”中刪除該車的信息, 并將該車對應的車位設置為可使用狀態(即二維數組對應元素清零). 按用戶的選擇來判斷是否要輸出停車收費的總計.
5). 輸出停車場中全部車輛的信息.
代碼片段和文件信息
/*
?*?本程序有一個基本類ParkingMenage
?*?一個自定義數據類型carinfo
?*?inti()方法用來初始化
?*?add()方法用來停車功能,
?*?del()方法用來實現取車功能
?*?exit()將現有停車信息存放在C:/car.dat文件中然后退出程序.
?*?
?*/
import?java.io.*;
import?java.text.SimpleDateFormat;
class?ParkingMenage?{
class?carinfo???//自定義用來存放汽車信息的數據類型
{
String?CarNo;
int?FloorNo;
int?LocateNo;
int?ParkTime;
}
String?[][]?parkLoction=?new?String[2][6];//標示停車位的數組
carinfo?[]?CarData=new?carinfo[12];//記錄汽車信息的數組
int?timeunit?=5;//一個停車時間單位,5分鐘。
public?static?void?main(String[]args)?throws?Exception
{
ParkingMenage?PM?=?new?ParkingMenage();
PM.init();
while(true)
{
System.out.println(“請選擇并輸入操作序號:“);
System.out.println(“1.停車“);
System.out.println(“2.取車“);
System.out.println(“3.總體信息“);
System.out.println(“4.退出程序“);
InputStreamReader?reader?=?new?InputStreamReader(System.in);
BufferedReader?input?=?new?BufferedReader(reader);
String?funcchoice=?input.readLine();
if(funcchoice.length()==0)?continue;
char?c=?funcchoice.charAt(0);
switch(c)
{
case?‘1‘:PM.add();
break;
case?‘2‘:PM.del();
break;
case?‘3‘:PM.display();
break;
case?‘4‘:PM.exit();
break;
}
}
}
void?init()
{
for(int?i?=?0;i<=5;i++)
{
parkLoction[0][i]=null;
parkLoction[1][i]=null;
};
parkLoction[0][0]=“001“;
parkLoction[0][1]=“002“;
parkLoction[0][2]=“003“;
parkLoction[0][3]=“004“;
for(int?i=0;i<=11;i++)
{
CarData[i]=new?carinfo();
CarData[i].CarNo=?null;
CarData[i].FloorNo=-1;
CarData[i].LocateNo=-1;
CarData[i].ParkTime=0;
}
CarData[0].CarNo=“001“;
CarData[0].FloorNo=0;
CarData[0].LocateNo=0;
CarData[0].ParkTime=20;
CarData[1].CarNo=“002“;
CarData[1].FloorNo=0;
CarData[1].LocateNo=1;
CarData[1].ParkTime=15;
CarData[2].CarNo=“003“;
CarData[2].FloorNo=0;
CarData[2].LocateNo=2;
CarData[2].ParkTime=10;
CarData[3].CarNo=“004“;
CarData[3].FloorNo=0;
CarData[3].LocateNo=3;
CarData[3].ParkTime=5;
}
void?add()throws?Exception
{
System.out.println(“請輸入您的車牌號:“);
InputStreamReader?reader?=?new?InputStreamReader(System.in);
BufferedReader?input?=?new?BufferedReader(reader);
String?carNo=input.readLine();
while(carNo.length()==0?||carNo==null||carNo.contentEquals(“?“)||carNo.contentEquals(“\n“)||carNo.contentEquals(“\r“))
{
System.out.println(“您的輸入有誤,請核實后重新輸入。“);
????carNo=input.readLine();
????}
boolean?isSame?=?false;
do
{
isSame?=?false;
for(int?i=0;i<=1;i++)//通過循環遍歷數組,查找是否有重復車牌。
{
for(int?j=0;j<=5;j++)
{
String?tmp=?parkLoction[i][j];
if(carNo.equals(tmp))
{
System.out.println(““);
System.out.println(“已經有此車牌號,請核實后再輸入。“);
isSame?=?true;
????carNo=input.readLine();
}
}
}
}while(isSame);
boolean?isAdd?=?false;?//設立是否停車成功的標志符
for(int?i=0;i<=1;i++)?//通過循環遍歷數組,遇到第一個空位,添加至
評論
共有 條評論