最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)停車場系統(tǒng)

 更新時(shí)間:2020年11月27日 17:07:49   作者:亰  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)停車場系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)停車場系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

現(xiàn)開發(fā)一個(gè)停車系統(tǒng),用戶根據(jù)車位停車

1)車主查看現(xiàn)在有無車位(最多100個(gè)車位),給車主隨機(jī)分配一個(gè)車位,如果該位置上有車,不能停
2)按停車時(shí)間收費(fèi),3小時(shí)以內(nèi)不收費(fèi),3小時(shí)以外,每小時(shí)2元,最大20元
3)車主可以查看自己停車的車位和收費(fèi),以及停車的時(shí)長
4)查看歷史停車記錄

管理員:

查看現(xiàn)有的剩余車位
查看已停車的車位
查看停在車位上的車以及歷史繳費(fèi)

Client

package com.gem.client;

import java.util.Scanner;

import com.gem.entity.Admin;
import com.gem.entity.User;
import com.gem.service.impl.AdminServiceImpl;
import com.gem.service.impl.CarParkingServiceimpl;
import com.gem.service.impl.UserServiceimpl;

public class Client {
 public static void main(String[] args) {
 CarParkingServiceimpl carparkingservice = CarParkingServiceimpl.getCarparkingservice();
 UserServiceimpl userserviceimpl = UserServiceimpl.getUserserviceimpl();

 Scanner scanner = new Scanner(System.in);

 Menu1(carparkingservice, userserviceimpl, scanner);

 }

 private static void Menu1(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl,
 Scanner scanner) {

 while (true) {
 System.out.println("****歡迎進(jìn)入停車系統(tǒng)****");
 System.out.println("***1.請(qǐng)輸入您的車牌***");
 System.out.println("***2.管理員");
 System.out.println("***3.退出****");
 int choice = Integer.parseInt(scanner.nextLine().trim());
 switch (choice) {
 case 1:
 System.out.println("請(qǐng)輸入您的車牌");
 String chepai = scanner.nextLine().trim();
 User a = userserviceimpl.login(new User(chepai));
 if (a != null) {
  System.out.println("車牌登記成功");
  Menu2(carparkingservice, userserviceimpl, scanner, a);

 } else {
  System.out.println("車牌登記失敗");
 }
 break;
 case 2:
 Menu_Manger(carparkingservice, userserviceimpl);
 default:
 break;
 }
 }

 }

 //管理員的登錄注冊
 private static void Menu_Manger(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl) {
 AdminServiceImpl adminserviceimpl = AdminServiceImpl.getAdminSeriver();
 while (true) {
 System.out.println("1.管理員登錄");
 System.out.println("2.管理員注冊");
 System.out.println("返回上一級(jí)");
 Scanner scanner = new Scanner(System.in);
 int chose = Integer.parseInt(scanner.nextLine().trim());
 switch (chose) {
 case 1:
 System.out.println("請(qǐng)輸入管理員賬號(hào)");
 String name = scanner.nextLine().trim();
 System.out.println("請(qǐng)輸入管理員密碼");
 String password = scanner.nextLine().trim();

 if (adminserviceimpl.login(name, password) != null) {
  System.out.println("登錄成功");
  Menu_Manger2(carparkingservice, userserviceimpl, adminserviceimpl);//進(jìn)行管理員操作
 } else {
  System.out.println("登錄失敗");
  return;
 }
 break;
 case 2:
 System.out.println("請(qǐng)輸入注冊賬號(hào)");
 name = scanner.nextLine().trim();
 System.out.println("請(qǐng)輸入注冊密碼");
 password = scanner.nextLine().trim();
 adminserviceimpl.register(new Admin(name, password));
 break;
 case 3:
 return;
 default:
 return;

 }

 }
 }

 //管理員操作
 private static void Menu_Manger2(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl,
 AdminServiceImpl adminserviceimpl) {

 while (true) {
 System.out.println("***歡迎進(jìn)入管理員操作***");
 System.out.println("1.查看現(xiàn)有停車位");
 System.out.println("2.查看停車位上的車以及繳費(fèi)");
 System.out.println("3.返回上一級(jí)");
 Scanner scanner = new Scanner(System.in);
 int chose = Integer.parseInt(scanner.nextLine().trim());
 switch (chose) {
 case 1:
 carparkingservice.showlist();//顯示目前所有的空的車位
 break;
 case 2:
 carparkingservice.show();
 break;
 case 3:

 return;

 default:
 System.out.println("輸入錯(cuò)誤");
 break;
 }
 }
 }

 private static void Menu2(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl, Scanner scanner,
 User a) {
 while (true) {
 System.out.println("歡迎車牌為:" + a.getCarid() + "車主" + "請(qǐng)選擇您要的服務(wù)");
 System.out.println("1.停車");
 System.out.println("2.離開并繳費(fèi)");
 System.out.println("3.查看停車車位");
 System.out.println("4.停車時(shí)長");
 System.out.println("0.返回上一級(jí)");
 int chose = Integer.parseInt(scanner.nextLine().trim());
 switch (chose) {
 case 1:
 if (carparkingservice.chack(a.getCarid())) {
  break;
 }

 while (true) {
  int random = (int) (Math.random() * 10); //隨機(jī)一個(gè)車位
  if (carparkingservice.parkcar(random, a.getCarid())) {
  System.out.println("停車成功,停車位置為:" + random);
  break;
  } else {
  System.out.println("當(dāng)前車位有車");
  }
 }

 break;
 case 2:
 if (carparkingservice.leavecar(a.getCarid())) {
  System.out.println("請(qǐng)繳費(fèi)");
 } else {
  System.out.println("該車未停");
 }
 break;
 case 3:
 carparkingservice.showlist();//顯示目前所有的空的車位
 break;
 case 4:
 carparkingservice.showcartime(a.getCarid());//顯示停車時(shí)長
 break;
 case 0:
 return;
 default:
 System.out.println("輸入錯(cuò)誤");
 break;
 }
 }
 }
}

Admin

package com.gem.entity;

import java.util.ArrayList;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class Admin {
 private String username;
 private String password;
 private double money;
 private ArrayList<String> list = new ArrayList<String>();

 @Override
 public String toString() {
 return username + "\t" + password;
 }

 public Admin(String username, String password) {
 super();
 this.username = username;
 this.password = password;
 }
}

CarParking

package com.gem.entity;

import java.text.SimpleDateFormat;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@NoArgsConstructor
@Getter

public class CarParking { //車位

 public static String getLishi() {
 return lishi;
 }

 public static void setLishi(String lishi) {
 CarParking.lishi = lishi;
 }

 private int id; //停車的編號(hào)
 private double money;//錢的計(jì)算
 private String state; //當(dāng)前停車狀態(tài)
 private Date stime;//停車時(shí)間
 private Date etime;//停車結(jié)束
 private static double allmoney;
 private static String lishi = "";

 public void setEtime() {//停車結(jié)束時(shí)間
 etime = new Date();
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 String time = dateFormat.format(this.etime);
 }

 public void setStime() {//停車開始時(shí)間
 stime = new Date();
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 String time1 = dateFormat.format(this.stime);

 }

 public String toString() {

 return id + "\t" + money + "\t" + stime;
 }

 public CarParking(int id, String state) {

 this.id = id;
 this.state = state;
 }

 public void CarPark(int id, String carid) {
 // TODO Auto-generated method stub
 this.id = id;
 this.state = carid;

 }

 public int getId() {
 return id;
 }

 public void setId(int id) {
 this.id = id;
 }

 public double getMoney() {
 return money;
 }

 public void setMoney(double money) {
 this.money = money;
 }

 public String getState() {
 return state;
 }

 public void setState(String state) {
 this.state = state;
 }

 public static double getAllmoney() {
 return allmoney;
 }

 public static void setAllmoney(double allmoney) {
 CarParking.allmoney = allmoney;
 }

}

User

package com.gem.entity;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@AllArgsConstructor
@Setter
@NoArgsConstructor
@Getter

public class User {
 private String carid; //車牌登錄

 @Override
 public String toString() {
 return "車牌為" + carid;
 }

}

AdminService

package com.gem.service;
/*
 * 管理員業(yè)務(wù)接口
 * 
 * */

import com.gem.entity.Admin;

public interface AdminService {
 //登錄
 Admin login(String username, String password);

 //注冊
 boolean register(Admin admin);
}

AdminServiceImpl

package com.gem.service.impl;

import java.util.ArrayList;

import com.gem.entity.Admin;
import com.gem.service.AdminService;

/*
 * 管理員類實(shí)現(xiàn)類
 * */
public class AdminServiceImpl implements AdminService {
 private ArrayList<Admin> adminList = new ArrayList<Admin>();
 //單例餓漢模式
 private static final AdminServiceImpl adminSeriver = new AdminServiceImpl();

 public static AdminServiceImpl getAdminSeriver() {
 return adminSeriver;
 }

 private AdminServiceImpl() {
 }

 @Override //管理員登錄
 public Admin login(String username, String password) {//登錄
 for (Admin admin : adminList) {
 if (admin.getUsername().equals(username) && admin.getPassword().equals(password)) {
 return admin;
 }
 }
 return null;
 }

 @Override //添加管理員
 public boolean register(Admin admin) {
 boolean flag = adminList.add(admin);//添加管理員
 return flag;
 }

}

CarParkingService

package com.gem.service;

public interface CarParkingService {
 boolean parkcar(int id, String carid); //停車

 void showlist();//顯示所有列表

 boolean leavecar(String carid); //離開
}

CarParkingServiceimpl

package com.gem.service.impl;

import java.util.ArrayList;
import java.util.Date;

import com.gem.entity.CarParking;
import com.gem.service.CarParkingService;

public class CarParkingServiceimpl implements CarParkingService {
 private ArrayList<CarParking> carpaking = new ArrayList<CarParking>();

 {

 for (int i = 1; i <= 10; i++) {
 carpaking.add(new CarParking(i, "當(dāng)前車位為空")); // 為100個(gè)車位賦予編號(hào) 和狀態(tài)

 }
 }

 private static CarParkingServiceimpl carparkingservice = new CarParkingServiceimpl();

 public static CarParkingServiceimpl getCarparkingservice() {
 return carparkingservice;
 }

 public CarParkingServiceimpl() {

 }

 //停車過來的信息,車牌,還有車位,還有更改狀態(tài),利用車位編號(hào)來改變內(nèi)容
 @Override
 public boolean parkcar(int id, String carid) {
 // TODO Auto-generated method stub

 for (CarParking car : carpaking) {

 if (id == car.getId() && car.getState().equals("當(dāng)前車位為空")) {

 car.setState(carid);
 car.setStime();
 return true; //停車成功
 }
 }
 return false;//當(dāng)前車位有車

 }

 @Override //顯示所有停車系統(tǒng)的信息
 public void showlist() {
 // TODO Auto-generated method stub
 for (CarParking car : carpaking) {

 System.out.println(car.getId() + "\t" + car.getState());

 }
 }

 public void showcartime(String carid) {
 // TODO Auto-generated method stub
 for (CarParking car : carpaking) {
 if (car.getState().equals(carid)) {
 car.setEtime();
 Date time1 = car.getEtime();//得到當(dāng)前的查詢時(shí)間
 Date time2 = car.getStime();//得到開始時(shí)間
 System.out.println("車位為:" + car.getId() + "車牌為" + car.getState());
 System.out.println("停車時(shí)間為:" + car.getStime());
 System.out.println("當(dāng)前時(shí)間為:" + car.getEtime());
 System.out.println("已經(jīng)停車時(shí)間為:" + (time1.getTime() - time2.getTime()) / (1000 * 60 * 60));
 }
 }
 }

 public boolean leavecar(String carid) {
 // TODO Auto-generated method stub
 for (CarParking car : carpaking) {
 if (car.getState().equals(carid)) {
 car.setEtime();
 Date time1 = car.getEtime();//得到當(dāng)前的查詢時(shí)間
 Date time2 = car.getStime();//得到開始時(shí)間
 long t = (time1.getTime() - time2.getTime()) / (1000 * 60 * 60);
 System.out.println("車位為:" + car.getId() + "車牌為" + car.getState());
 System.out.println("停車時(shí)間為:" + car.getStime());
 System.out.println("當(dāng)前時(shí)間為:" + car.getEtime());
 System.out.println("已經(jīng)停車時(shí)間為:" + t);
 if (t <= 3) {
  car.setMoney(0);
  car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢累加
 } else if (t > 3 && t <= 13) {
  car.setMoney(2 * (t - 3));
  car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢累加
 } else if (t > 13) {
  car.setMoney(20);
  car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢累加
 }
 car.setLishi(car.getLishi() + "車位:" + car.getId() + "收入金額為:" + car.getMoney() + "\n");
 System.out.println("停車費(fèi)為:" + car.getMoney());
 car.setState("當(dāng)前車位為空");
 return true;
 }

 }
 return false;
 }

 public void show() {
 // TODO Auto-generated method stub
 for (CarParking car : carpaking) {
 System.out.println(car.getLishi());
 return;
 }
 }

 public boolean chack(String carid) {
 for (CarParking car : carpaking) {
 if (car.getState().equals(carid)) {
 System.out.println("車輛正在停使中");
 return true;
 }

 }
 return false;
 }
}

UserService

package com.gem.service;

import com.gem.entity.User;

public interface UserService {
 //用車牌登錄
 User login(User a);
}

UserServiceimpl

package com.gem.service.impl;

import java.util.ArrayList;

import com.gem.entity.User;
import com.gem.service.UserService;

public class UserServiceimpl implements UserService {
 private ArrayList<User> user = new ArrayList<User>();

 private static UserServiceimpl userserviceimpl = new UserServiceimpl(); //單例

 private UserServiceimpl() {

 }

 public static UserServiceimpl getUserserviceimpl() {
 return userserviceimpl;
 }

 @Override
 public User login(User a) { //把車牌錄入
 user.add(a);
 return a;
 }

}

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA 16位ID生成工具類含16位不重復(fù)的隨機(jī)數(shù)數(shù)字+大小寫

    JAVA 16位ID生成工具類含16位不重復(fù)的隨機(jī)數(shù)數(shù)字+大小寫

    這篇文章主要介紹了JAVA 16位ID生成工具類含16位不重復(fù)的隨機(jī)數(shù)數(shù)字+大小寫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • springboot使用Gateway做網(wǎng)關(guān)并且配置全局?jǐn)r截器的方式

    springboot使用Gateway做網(wǎng)關(guān)并且配置全局?jǐn)r截器的方式

    本文介紹了Spring Cloud Gateway的使用,包括為什么需要使用網(wǎng)關(guān)、如何簡單使用、斷言工廠路由、路由過濾器、全局過濾器以及跨域請(qǐng)求配置,感興趣的朋友一起看看吧
    2025-02-02
  • SpringBoot?整合Redis?數(shù)據(jù)庫的方法

    SpringBoot?整合Redis?數(shù)據(jù)庫的方法

    Redis是一個(gè)基于內(nèi)存的日志型可持久化的緩存數(shù)據(jù)庫,保存形式為key-value格式,Redis完全免費(fèi)開源,它使用ANSI?C語言編寫。這篇文章主要介紹了SpringBoot?整合Redis?數(shù)據(jù)庫的方法,需要的朋友可以參考下
    2018-03-03
  • Java中SimpleDateFormat用法詳解

    Java中SimpleDateFormat用法詳解

    SimpleDateFormat 是一個(gè)以國別敏感的方式格式化和分析數(shù)據(jù)的具體類。 它允許格式化 (date -> text)、語法分析 (text -> date)和標(biāo)準(zhǔn)化.這篇文章主要介紹了Java中SimpleDateFormat用法詳解,需要的朋友可以參考下
    2017-03-03
  • Java switch支持的數(shù)據(jù)類型詳解

    Java switch支持的數(shù)據(jù)類型詳解

    這篇文章主要介紹了Java switch支持的數(shù)據(jù)類型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java之HashMap案例詳解

    Java之HashMap案例詳解

    這篇文章主要介紹了Java之HashMap案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法介紹

    Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法介紹

    這篇文章主要介紹了Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法,同時(shí)需要注意系統(tǒng)默認(rèn)的文本保存編碼的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • Spring中@Primary注解的作用詳解

    Spring中@Primary注解的作用詳解

    這篇文章主要介紹了Spring中@Primary注解的作用詳解,@Primary 注解是Spring框架中的一個(gè)注解,用于標(biāo)識(shí)一個(gè)Bean作為默認(rèn)的實(shí)現(xiàn)類,當(dāng)存在多個(gè)實(shí)現(xiàn)類時(shí),通過使用@Primary注解,可以指定其中一個(gè)作為默認(rèn)的實(shí)現(xiàn)類,以便在注入時(shí)自動(dòng)選擇該實(shí)現(xiàn)類,需要的朋友可以參考下
    2023-10-10
  • 查找jdk安裝路徑并且切換多版本jdk的詳細(xì)步驟

    查找jdk安裝路徑并且切換多版本jdk的詳細(xì)步驟

    在日常的工作學(xué)習(xí)中可能需要用到不同版本的jdk,下面這篇文章主要給大家介紹了關(guān)于查找jdk安裝路徑并且切換多版本jdk的詳細(xì)步驟,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java深入講解instanceof關(guān)鍵字的使用

    Java深入講解instanceof關(guān)鍵字的使用

    instanceof 是 Java 的一個(gè)二元操作符,類似于 ==,>,< 等操作符。instanceof 是 Java 的保留關(guān)鍵字。它的作用是測試它左邊的對(duì)象是否是它右邊的類的實(shí)例,返回 boolean 的數(shù)據(jù)類型
    2022-05-05

最新評(píng)論

偏关县| 丁青县| 达州市| 手游| 景泰县| 舞阳县| 呼图壁县| 宜丰县| 太康县| 育儿| 余江县| 建水县| 吴旗县| 齐齐哈尔市| 体育| 确山县| 合江县| 冷水江市| 息烽县| 奎屯市| 白城市| 平和县| 闸北区| 长寿区| 平塘县| 郸城县| 庆阳市| 桃江县| 马边| 襄垣县| 赣榆县| 阿坝| 商水县| 奇台县| 永德县| 长岭县| 大英县| 卢湾区| 泰和县| 高青县| 嘉善县|