<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用Java開發(fā)一個(gè)停車場系統(tǒng)

          共 9143字,需瀏覽 19分鐘

           ·

          2020-11-18 07:46

          來源:blog.csdn.net/weixin_43951778



          現(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.請輸入您的車牌***"); System.out.println("***2.管理員"); System.out.println("***3.退出****"); int choice = Integer.parseInt(scanner.nextLine().trim()); switch (choice) { case 1: System.out.println("請輸入您的車牌"); 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("返回上一級"); Scanner scanner = new Scanner(System.in); int chose = Integer.parseInt(scanner.nextLine().trim()); switch (chose) { case 1: System.out.println("請輸入管理員賬號"); String name = scanner.nextLine().trim(); System.out.println("請輸入管理員密碼"); 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("請輸入注冊賬號"); name = scanner.nextLine().trim(); System.out.println("請輸入注冊密碼"); 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.返回上一級"); 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("輸入錯誤"); break; } } }
          private static void Menu2(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl, Scanner scanner, User a) { while (true) { System.out.println("歡迎車牌為:" + a.getCarid() + "車主" + "請選擇您要的服務(wù)"); System.out.println("1.停車"); System.out.println("2.離開并繳費(fèi)"); System.out.println("3.查看停車車位"); System.out.println("4.停車時(shí)長"); System.out.println("0.返回上一級"); 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("請繳費(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("輸入錯誤"); 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@Setterpublic 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; //停車的編號 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 adminList = new ArrayList(); //單例餓漢模式 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 carpaking = new ArrayList();
          {
          for (int i = 1; i <= 10; i++) { carpaking.add(new CarParking(i, "當(dāng)前車位為空")); // 為100個(gè)車位賦予編號 和狀態(tài)
          } }
          private static CarParkingServiceimpl carparkingservice = new CarParkingServiceimpl();
          public static CarParkingServiceimpl getCarparkingservice() { return carparkingservice; }
          public CarParkingServiceimpl() {
          }
          //停車過來的信息,車牌,還有車位,還有更改狀態(tài),利用車位編號來改變內(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 = new ArrayList();
          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; }
          }


          PS:如果覺得我的分享不錯,歡迎大家隨手點(diǎn)贊、在看。
          END
          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一卡二卡三卡在线播放 | 亚洲黄色视频大全 | 亚洲国产一级黄片 | 性爱激情视频网站 | 天堂精品在线 |