using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _04_案例停车场管理系统
{
class Program
{
static string[,] parking = new string[10,10];
static bool[,] parkTag = new bool[10, 10];
static void Main(string[] args)
{
InitianlParking();
SetTitle();
DrawParking();
Console.ReadLine();
while (true)
{
Console.WriteLine("请选择车辆状态:A--入场 B--出厂");
string choose = Console.ReadLine();
while (true)
{
//入场
if (choose=="A")
{
Console.WriteLine("请输入入场车牌");
string plant = Console.ReadLine();
string location = SetParkCar(plant);
Console.Clear();
SetTitle();
Console.WriteLine("------------------欢迎【{0}】入场,您的车位是【{1}】------------------", plant, location);
Console.WriteLine("------------------------------------------------------------------------------------------------------------", plant, location);
DrawParking();
Console.ReadLine();
break;
}
else if (choose=="B")
{
Console.WriteLine("请输入出场车牌");
string plant = Console.ReadLine();
Console.Clear();
SetOutParking(plant);
SetTitle();
Console.WriteLine("------------------欢迎下次光临,一路顺风!------------------");
DrawParking();
Console.ReadLine();
break;
}
}
}
}
static void InitianlParking()
{
string row = "";
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
switch (i)
{
case 0:
row = "A";
break;
case 1:
row = "B";
break;
case 2:
row = "C";
break;
case 3:
row = "D";
break;
case 4:
row = "E";
break;
case 5:
row = "F";
break;
case 6:
row = "G";
break;
case 7:
row = "H";
break;
case 8:
row = "I";
break;
case 9:
row = "J";
break;
default:
break;
}
parking[i, j] = String.Format("车位{0}", row + (j + 1));
parkTag[i, j] = true;
}
}
}
static void DrawParking()
{
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
Console.Write(parking[i,j]+" \t");
}
Console.WriteLine();
}
}
static int CountNull()
{
int count = 0;
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
if (parkTag[i,j])
{
count++;
}
}
}
return count;
}
static void SetTitle()
{
int count = CountNull();
Console.WriteLine("---------------------------------------------------------------------------");
Console.WriteLine("-------------------------------欢迎进入停车场------------------------------");
Console.WriteLine("-------------------------------当前剩余空车位:{0}--------------------------", count);
Console.WriteLine("---------------------------------------------------------------------------");
}
//计算车位,指定车位
static string SetParkCar(string plant)
{
string str = "";
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
//从A1-J10车位一个接一个进行判断寻找空车位,找到则提示
if (parkTag[i,j]==true)
{
str = parking[i, j];
str = str.Substring(2);
parking[i, j] = plant;
parkTag[i, j] = false;
return str;
}
}
}
return "停车场已满!";
}
//设置车出厂,清理车位
static void SetOutParking(string plant)
{
string row="";
//找到其当时的车位,将车位状态改成空车位状态
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
if (parking[i,j]==plant)
{
parkTag[i, j] = true;
switch (i)
{
case 0:
row = "A";
break;
case 1:
row = "B";
break;
case 2:
row = "C";
break;
case 3:
row = "D";
break;
case 4:
row = "E";
break;
case 5:
row = "F";
break;
case 6:
row = "G";
break;
case 7:
row = "H";
break;
case 8:
row = "I";
break;
case 9:
row = "J";
break;
default:
break;
}
parking[i,j]= String.Format("车位{0}", row + (j + 1));
}
}
}
}
}
}