• 大小: 7KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: Java
  • 标签:

资源简介

停车场管理 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++) //通过循环遍历数组,遇到第一个空位,添加至

评论

共有 条评论