停车场项目需求分析
1.头部显示
头部显示
a.当前剩余车位(默认车位100个)
2.显示停车场地图
10*10显示地图(每一车位都有自身的位置)
3.车辆进场
输入入场车牌
刷新地图
a.显示头部(剩余车位)
b.显示车辆的车牌与车辆的位置
4.车辆出场
输入出场车牌
刷新地图
a.显示头部(剩余车位)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 停车管理系统
{
class Program
{
static string[,] parking = new string[10, 10];
static bool[,] parkTag = new bool[10, 10];
static void Main(string[] args)
{
//停车位置内容
ParkingText();
//头部
HeadTitle();
//停车地图
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();
HeadTitle();
Console.WriteLine("--------------------欢迎【{0}】入场,您的车位是【{1}】-------------------", plant, location);
Console.WriteLine("----------------------------------------------------------------------------");
DrawParking();
Console.ReadLine();
break;
}
//出场
else if (choose == "B")
{
Console.WriteLine("请输入出场的车牌号:");
string plant = Console.ReadLine();
Console.Clear();
SetOutParking(plant);
HeadTitle();
Console.WriteLine("--------------------欢迎车牌号为【{0}】下次光临-------------------", plant);
Console.WriteLine("----------------------------------------------------------------------------");
DrawParking();
Console.ReadLine();
break;
}
}
}
}
/// <summary>
/// 车位内容
/// </summary>
private static void ParkingText()
{
//行
string rows = "";
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
switch (i)
{
case 0:
rows = "A";
break;
case 1:
rows = "B";
break;
case 2:
rows = "C";
break;
case 3:
rows = "D";
break;
case 4:
rows = "E";
break;
case 5:
rows = "F";
break;
case 6:
rows = "J";
break;
case 7:
rows = "H";
break;
case 8:
rows = "I";
break;
case 9:
rows = "G";
break;
default:
break;
}
parking[i, j] = String.Format("车位{0}", rows + (j + 1));
parkTag[i, j] = true;
}
}
}
/// <summary>
/// 画地图
/// </summary>
private 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();
}
}
/// <summary>
/// 计算剩余的空车位
/// </summary>
private static int CountNull()
{
int count = 0;
for (int i = 0; i < parking.GetLength(0); i++)
{
for (int j = 0; j < parking.GetLength(1); j++)
{
//判断为ture时,是空车位
if (parkTag[i,j])
{
count++;
}
}
}
return count;
}
/// <summary>
/// 头部内容
/// </summary>
private static void HeadTitle()
{
int count = CountNull();
Console.WriteLine("----------------------------------------------------------------------------");
Console.WriteLine("-------------------------------欢迎进入停车场-------------------------------");
Console.WriteLine("----------------------------当前剩余空车位:{0}-----------------------------",count);
Console.WriteLine("----------------------------------------------------------------------------");
}
/// <summary>
/// 计算剩余车位,显示车位
/// </summary>
private 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 "车位已满!";
}
/// <summary>
/// 设置车辆出场,清理车位
/// </summary>
/// <param name="plant"></param>
private static void SetOutParking(string plant)
{
string rows = "";
//找到其当时的车位,将车位状态改成空车位状态
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:
rows = "A";
break;
case 1:
rows = "B";
break;
case 2:
rows = "C";
break;
case 3:
rows = "D";
break;
case 4:
rows = "E";
break;
case 5:
rows = "F";
break;
case 6:
rows = "G";
break;
case 7:
rows = "H";
break;
case 8:
rows = "I";
break;
case 9:
rows = "J";
break;
default:
break;
}
parking[i, j] = String.Format("车位{0}", rows + (j + 1));
}
}
}
}
}
}