_sleep(1000);break;
}
if(choice==3)break;
}
return;
}
private:
intflag,front,rear,top,base;//设置访问栈和队列
passLot*a[PASS];//以顺序方式存储栈和队列,并且都设为20个车位
potLot*b[POT];
tm*local,*nowp;
time_tnow;//设置时间型变量
};//停车场类结束
voidmain()//程序运行主函数
{
parkingLota;
intchoice=—1;
for(;;)//使主界面能够自动初始化和重复使用
{system("cls");
system(”color3a");//设为主背景为湖蓝色
printStar();
cout<〈”\t\t\t\t欢迎进入停车场管理系统"〈〈endl<〈endl;
time_tt;//时间结构或者对象
t=time(NULL);//获取当前系统的日历时间
cout<<"\t\t\t\t\t\t”<printLine();
cout<〈”\t\t\t|1。
汽车到达\t\t\t|”<printLine();
cout〈<"\t\t\t|2.汽车离去\t\t\t|”〈〈endl;
printLine();
cout〈<”\t\t\t|3.汽车牌号查询\t\t\t|”〈printLine();
cout<<”\t\t\t|4.退出管理系统\t\t\t|"〈〈endl;
printLine();
printStar();
cout〈<”\t\t请输入你的选项:
";
cin〉〉choice;
switch(choice)
{
case1:
try{
a。
arrive();
}
catch(erroFull&erro)
{
erro。
ex();
}
break;
case2:
a.depart();break;
case3:
a.search();break;
case4:
break;
default:
system("color3c");cout<〈endl<〈”\t\t\t\t输入格式不正确!
"〈〈endl;
_sleep(2000);;break;
}
if(choice==4)break;
}
return;
}
1。
3测试结果以及运行情况
1.3。
1运行主界面
1.3.2汽车到达界面
1.3.2。
1停车场停车测试界面
测试数据(按输入的先后排序)
表1
序号
1
2
3
4
5
6
7
8
9
10
牌照号
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
序号
11
12
13
14
15
16
17
18
19
20
牌照号
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
输入情况界面(部分)
异常情况处理,当停车场已经满20位时,便抛出异常(界面显示为红色,并停止工作)
1。
3。
2.2便车道停车测试
测试数据
表2
序号
1
2
3
4
5
6
7
8
9
10
牌照号
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
序号
11
12
13
14
15
16
17
18
19
20
牌照号
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
输入界面(部分)
异常情况处理,当停车场已经满20位时,便抛出异常(界面显示为红色,并停止工作)
1.3.3汽车离开界面
1.3.3.1停车场离开界面
当停车场为空时,抛出异常为空(颜色变红)
1.3。
3。
2便车道离开界面
当便车道为空时,抛出异常为空(颜色变红)
1.3。
4号码查询界面
1。
3。
4.1根据车牌号码查询
1。
3。
4。
2直接查询指定车位界面
1。
4评估与改进
1.4。
1评估
该系统能够完成题目要求的几项基本操作以及显示结果,并且显示的信息完全正确.在此基础上还加上了异常处理机制以及由异常处理导致的终端显示变异功能,同时在查询方面不仅完成了输入车牌号码查询功能,还能实现查找特定车位上停车情况的功能.
实验基本达到要求。
1。
4.2改进
真正的停车场不可能只按栈或者队列的顺序来停车,故此系统具有一定的局限性。
应根据停车场的具体情况对停车储存方式进行灵活地改善.
代码也比较冗余,希望能够不断简化。