<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>

          停車(chē)場(chǎng)停車(chē)系統(tǒng)太差勁!看我用Java手?jǐn)]一個(gè)停車(chē)場(chǎng)系統(tǒng)!

          共 9157字,需瀏覽 19分鐘

           ·

          2020-12-05 23:58

          來(lái)源:blog.csdn.net/weixin_43951778




          現(xiàn)開(kāi)發(fā)一個(gè)停車(chē)系統(tǒng),用戶(hù)根據(jù)車(chē)位停車(chē),主要實(shí)現(xiàn)以下4個(gè)常用功能:

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

          管理員:
          查看現(xiàn)有的剩余車(chē)位
          查看已停車(chē)的車(chē)位
          查看停在車(chē)位上的車(chē)以及歷史繳費(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)入停車(chē)系統(tǒng)****"); System.out.println("***1.請(qǐng)輸入您的車(chē)牌***"); System.out.println("***2.管理員"); System.out.println("***3.退出****"); int choice = Integer.parseInt(scanner.nextLine().trim()); switch (choice) { case 1: System.out.println("請(qǐng)輸入您的車(chē)牌"); String chepai = scanner.nextLine().trim(); User a = userserviceimpl.login(new User(chepai)); if (a != null) { System.out.println("車(chē)牌登記成功"); Menu2(carparkingservice, userserviceimpl, scanner, a);
          } else { System.out.println("車(chē)牌登記失敗"); } break; case 2: Menu_Manger(carparkingservice, userserviceimpl); default: break; } }
          }
          //管理員的登錄注冊(cè) private static void Menu_Manger(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl) { AdminServiceImpl adminserviceimpl = AdminServiceImpl.getAdminSeriver(); while (true) { System.out.println("1.管理員登錄"); System.out.println("2.管理員注冊(cè)"); 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)輸入注冊(cè)賬號(hào)"); name = scanner.nextLine().trim(); System.out.println("請(qǐng)輸入注冊(cè)密碼"); 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)有停車(chē)位"); System.out.println("2.查看停車(chē)位上的車(chē)以及繳費(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();//顯示目前所有的空的車(chē)位 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("歡迎車(chē)牌為:" + a.getCarid() + "車(chē)主" + "請(qǐng)選擇您要的服務(wù)"); System.out.println("1.停車(chē)"); System.out.println("2.離開(kāi)并繳費(fèi)"); System.out.println("3.查看停車(chē)車(chē)位"); System.out.println("4.停車(chē)時(shí)長(zhǎng)"); 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è)車(chē)位 if (carparkingservice.parkcar(random, a.getCarid())) { System.out.println("停車(chē)成功,停車(chē)位置為:" + random); break; } else { System.out.println("當(dāng)前車(chē)位有車(chē)"); } }
          break; case 2: if (carparkingservice.leavecar(a.getCarid())) { System.out.println("請(qǐng)繳費(fèi)"); } else { System.out.println("該車(chē)未停"); } break; case 3: carparkingservice.showlist();//顯示目前所有的空的車(chē)位 break; case 4: carparkingservice.showcartime(a.getCarid());//顯示停車(chē)時(shí)長(zhǎng) 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@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 { //車(chē)位
          public static String getLishi() { return lishi; }
          public static void setLishi(String lishi) { CarParking.lishi = lishi; }
          private int id; //停車(chē)的編號(hào) private double money;//錢(qián)的計(jì)算 private String state; //當(dāng)前停車(chē)狀態(tài) private Date stime;//停車(chē)時(shí)間 private Date etime;//停車(chē)結(jié)束 private static double allmoney; private static String lishi = "";
          public void setEtime() {//停車(chē)結(jié)束時(shí)間 etime = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String time = dateFormat.format(this.etime); }
          public void setStime() {//停車(chē)開(kāi)始時(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; //車(chē)牌登錄
          @Override public String toString() { return "車(chē)牌為" + carid; }
          }


          AdminService

          package com.gem.service;/* * 管理員業(yè)務(wù)接口 *  * */
          import com.gem.entity.Admin;
          public interface AdminService { //登錄 Admin login(String username, String password);
          //注冊(cè) boolean register(Admin admin);}


          AdminServiceImpl

          package com.gem.service.impl;
          import java.util.ArrayList;
          import com.gem.entity.Admin;import com.gem.service.AdminService;
          /* * 管理員類(lèi)實(shí)現(xiàn)類(lèi) * */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); //停車(chē)
          void showlist();//顯示所有列表
          boolean leavecar(String carid); //離開(kāi)}


          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)前車(chē)位為空")); // 為100個(gè)車(chē)位賦予編號(hào) 和狀態(tài)
          } }
          private static CarParkingServiceimpl carparkingservice = new CarParkingServiceimpl();
          public static CarParkingServiceimpl getCarparkingservice() { return carparkingservice; }
          public CarParkingServiceimpl() {
          }
          //停車(chē)過(guò)來(lái)的信息,車(chē)牌,還有車(chē)位,還有更改狀態(tài),利用車(chē)位編號(hào)來(lá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)前車(chē)位為空")) {
          car.setState(carid); car.setStime(); return true; //停車(chē)成功 } } return false;//當(dāng)前車(chē)位有車(chē)
          }
          @Override //顯示所有停車(chē)系統(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)前的查詢(xún)時(shí)間 Date time2 = car.getStime();//得到開(kāi)始時(shí)間 System.out.println("車(chē)位為:" + car.getId() + "車(chē)牌為" + car.getState()); System.out.println("停車(chē)時(shí)間為:" + car.getStime()); System.out.println("當(dāng)前時(shí)間為:" + car.getEtime()); System.out.println("已經(jīng)停車(chē)時(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)前的查詢(xún)時(shí)間 Date time2 = car.getStime();//得到開(kāi)始時(shí)間 long t = (time1.getTime() - time2.getTime()) / (1000 * 60 * 60); System.out.println("車(chē)位為:" + car.getId() + "車(chē)牌為" + car.getState()); System.out.println("停車(chē)時(shí)間為:" + car.getStime()); System.out.println("當(dāng)前時(shí)間為:" + car.getEtime()); System.out.println("已經(jīng)停車(chē)時(shí)間為:" + t); if (t <= 3) { car.setMoney(0); car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢(qián)累加 } else if (t > 3 && t <= 13) { car.setMoney(2 * (t - 3)); car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢(qián)累加 } else if (t > 13) { car.setMoney(20); car.setAllmoney(car.getAllmoney() + car.getMoney()); //錢(qián)累加 } car.setLishi(car.getLishi() + "車(chē)位:" + car.getId() + "收入金額為:" + car.getMoney() + "\n"); System.out.println("停車(chē)費(fèi)為:" + car.getMoney()); car.setState("當(dāng)前車(chē)位為空"); 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("車(chē)輛正在停使中"); return true; }
          } return false; }}


          UserService

          package com.gem.service;
          import com.gem.entity.User;
          public interface UserService { //用車(chē)牌登錄 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) { //把車(chē)牌錄入 user.add(a); return a; }
          }


          PS:如果覺(jué)得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、在看。


          -END-

          我是武哥,最后給大家免費(fèi)分享我寫(xiě)的 10 萬(wàn)字 Spring Boot 學(xué)習(xí)筆記(帶完整目錄)以及對(duì)應(yīng)的源碼。這是我之前在 CSDN 開(kāi)的一門(mén)課,所以筆記非常詳細(xì)完整,我準(zhǔn)備將資料分享出來(lái)給大家免費(fèi)學(xué)習(xí),相信大家看完一定會(huì)有所收獲(下面有下載方式)。


          可以看出,我當(dāng)時(shí)備課非常詳細(xì),目錄非常完整,讀者可以手把手跟著筆記,結(jié)合源代碼來(lái)學(xué)習(xí)。現(xiàn)在免費(fèi)分享出來(lái),有需要的讀者可以下載學(xué)習(xí),就在下面的公眾號(hào)Java禿頭哥里回復(fù):筆記,就行。



          如有文章對(duì)你有幫助,

          在看轉(zhuǎn)發(fā)是對(duì)我最大的支持



          關(guān)注Java禿頭哥

          只有禿頭才能更強(qiáng)


          點(diǎn)贊是最大的支持?

          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  亚洲AV成人精品一区二区三区_ | 九九免费视频 | 日本熟妇在线播放 | 黄色a一级片免费看 | 欧美一级视频免费 |