java停車場管理系統
代碼如下,僅實現功能,未考慮安全等情況.
//ParkingTest.java
/**
*停車程序入口.本示例為考慮數據安全等.僅作為示例,未經調試.
*@authormenglg
*
*/
publicclassParkingTest{
publicstaticvoidmain(String[]args){
//程序入口,可以安排停車出車
for(inti=0;i<100;i++){
if(ParkingManage.hasPosition()){
ParkingManage.enterParking(i+"");
continue;
}
break;
}
for(inti=0;i<100;i++){
ParkingManage.outParking(i+"");
}
System.out.println(ParkingManage.totalCost());
}
}
//ParkingManage.java
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.List;
publicclassParkingManage{
privatestaticList<Parking>parkings=newArrayList<>();
=100;
privatestaticintcurrentNumber;
publicstaticvoidenterParking(Stringlpn){
if(lpn==null||lpn.length()==0){
return;
}
Parkingp=newParking(lpn);
p.setEnterDate(newDate());
parkings.add(p);
}
publicstaticvoidoutParking(Stringlpn){
if(lpn==null||lpn.length()==0){
return;
}
for(Parkingp:parkings){
if(!lpn.equals(p.getLpn()))
continue;
Datenow=newDate();
p.setOutDate(now);
parkings.remove(p);
currentNumber+=p.getCost();
break;
}
}
publicstaticinttotalCost(){
returncurrentNumber;
}
(){
returnparkings.size()<maxNumber;
}
}
//Parking.java
importjava.util.Date;
publicclassParking{
privateStringlpn;
privateDateenterDate;
privateDateoutDate;
privateintcost;
publicParking(Stringlpn){
this.lpn=lpn;
}
publicStringgetLpn(){
returnlpn;
}
publicDategetEnterDate(){
returnenterDate;
}
publicDategetOutDate(){
returnoutDate;
}
publicintgetCost(){
if(outDate==null||enterDate==null){
return0;
}
//停車時間,單位毫秒
longtime=outDate.getTime()-enterDate.getTime();
longhour=60*60*1000;
if(time<hour){
cost=3;
}elseif(time%hour==0){
cost=(int)(time/hour*2);
}else{
cost=(int)((time/hour+1)*2);
}
returncost;
}
publicvoidsetLpn(Stringlpn){
this.lpn=lpn;
}
publicvoidsetEnterDate(DateenterDate){
this.enterDate=enterDate;
}
publicvoidsetOutDate(DateoutDate){
this.outDate=outDate;
}
publicvoidsetCost(intcost){
this.cost=cost;
}
}
㈡ 用JAVA怎麼編寫停車場管理系統源代碼
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*********************************
* 停車場管理
* author zhang
*2013-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;
}
}