没有合适的资源?快使用搜索试试~ 我知道了~
停车场管理系统 停车场管理系统 .doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 194 浏览量
2022-06-21
01:08:36
上传
评论
收藏 141KB DOC 举报
温馨提示
试读
29页
停车场管理系统 停车场管理系统
资源推荐
资源详情
资源评论
文档名称 文档密级
Parkingsys.cpp
#include <stdio.h>
#include <string.h>
#include "list.h"
#include "api.h"
typedef struct {
ParkingAutoInfo info;
bool isInSys; //是否在车库中
bool isValidNo; //是否为套牌车
}CarInfo_ST;
/*全局变量声明*/
ParkingHisInfoNode * hisInfo; //历史信息链表
CardStatus PackingCard[CARD_COUNT]; //停车卡
ParkSysTime sysTime; //系统时间
CarInfo_ST carInfo[11]; //车信息,包含车牌号,
以及其停车次数
void main(int argc, char* argv[])
{
hisInfo = NULL;
sysTime.hh = 0;
sysTime.mm = 0;
apiServerStart(argc,argv);
}
2022-6-21
华为保密信息,未经授权禁止扩散 第 1 页, 共 29 页
文档名称 文档密级
/
***********************************************************
******************
函 数 名 : OpReset
功能描述 : 需要考生实现的接口,系统初始化
输入参数 : 无
输出参数 : 无
返 回 值 : 无
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2009 年 9 月 9 日
作 者 :
修改内容 : 新生成函数
***********************************************************
******************/
void OpReset(void)
{
int i=0;
for(i=0;i<CARD_COUNT;i++)
{
PackingCard[i] = CARD_IDLE;
}
if(NULL == hisInfo)
hisInfo = initList();
else
{
resetList(hisInfo);
hisInfo = initList();
2022-6-21
华为保密信息,未经授权禁止扩散 第 2 页, 共 29 页
文档名称 文档密级
}
for(i =0;i<11;i++)
{
carInfo[i].info.ParkingCount = 0;
carInfo[i].isInSys = false;
carInfo[i].info.AutoNo = 0;
carInfo[i].info.CardNo = 5;
carInfo[i].isValidNo = false;
}
sysTime.hh = 0;
sysTime.mm = 0;
api_parksys_ret(OP_RESET_SUCC);
}
/
***********************************************************
******************
函 数 名 : OpGetin
功能描述 : 需要考生实现的接口,车辆进入停车场
输入参数 : UL AutoNo 车牌号
ParkSysAutoType AutoType 车辆类型
ParkSysTime InTime 车辆进入停车场时间
输出参数 : 无
返 回 值 : 无
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2009 年 9 月 9 日
作 者 :
2022-6-21
华为保密信息,未经授权禁止扩散 第 3 页, 共 29 页
文档名称 文档密级
修改内容 : 新生成函数
***********************************************************
******************/
void OpGetin(UL AutoNo, ParkSysAutoType AutoType, ParkSysTime
InTime)
{
if(hisInfo == NULL)
{
api_parksys_ret(OP_INTERNAL_ERR);
return;
}
int idx = 0;
int cardIdx = 0;
bool isIdle = false;
if((AutoNo < 10 || AutoNo > 20) ||
(AutoType != CAR && AutoType != BUS) ||
(InTime.hh < 0 || InTime.hh > 23) ||
(InTime.mm < 0 || InTime.mm > 59)) //参数合法性
判断
{
api_parksys_ret(OP_E_PARAMETER);
return;
}
if(InTime.hh < sysTime.hh || ( InTime.hh == sysTime.hh &&
InTime.mm < sysTime.mm )) //时间逻辑错误
{
api_parksys_ret(OP_E_TIME_LOGIC);
return;
}
for(idx;idx<CARD_COUNT;idx++) //判断车位是
否满
{
if(CARD_IDLE == PackingCard[idx])
{
isIdle = true;
cardIdx = idx;
2022-6-21
华为保密信息,未经授权禁止扩散 第 4 页, 共 29 页
文档名称 文档密级
break;
}
}
if(!isIdle)
{
api_parksys_ret(OP_E_PARKING_FULL);
return;
}
for(idx = 0;idx <11;idx++)
{
if(AutoNo == carInfo[idx].info.AutoNo) //车信息已经存
在
{
if(carInfo[idx].isInSys) //判断车是否已经在
车位
{
api_parksys_ret(OP_E_EXISTED_ATUO);
return;
}
if(carInfo[idx].isValidNo) //该车牌之前已经判
断为套牌车
{
api_parksys_ret(OP_E_MISMATCH_AUTO_TYPE);
return;
}
if(carInfo[idx].info.AutoType!= AutoType) //判断是否前后
车类型不同,为套牌车
{
api_parksys_ret(OP_E_MISMATCH_AUTO_TYPE);
carInfo[idx].isValidNo = true;
deleteItemWithAutoNo(hisInfo,AutoNo);
return;
}
PackingCard[cardIdx] = CARD_INUSE;
carInfo[idx].isInSys = true;
2022-6-21
华为保密信息,未经授权禁止扩散 第 5 页, 共 29 页
剩余28页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功