停车场管理系统程序设计书 - 图文(4)

2019-03-04 14:40

Q->head=(QueueNode *)malloc(sizeof(QueueNode)); if(Q->head!=NULL) {

Q->head->next=NULL; Q->rear=Q->head; return(1); }

else return(-1);/*结束*/ }

void PRINT(CarNode *p) /*打印出站车的信息*/ {

int A1,A2,B1,B2; int a,b,c; int i;//会员 char ch;

printf(\请输入离开的时间(小时:分钟):\

scanf(\ fflush(stdin);

do{/*直到程序输出正确的时间*/

if(p->leave.hourreach.hour || (p->leave.hour==p->reach.hour && p->leave.minreach.min)) {

printf(\输入离开时间比进站时间早,请重新输入!\\n\ scanf(\ fflush(stdin); }

if(p->leave.hour<0 || p->leave.hour>=24 || p->leave.min<0 || p->leave.min>=60) {

printf(\输入的时间格式有错!请重新输入:\

scanf(\ fflush(stdin); }

else break; }

while(p->leave.hourreach.hour || (p->leave.hour==p->reach.hour && p->leave.minreach.min) || p->leave.hour<0 || p->leave.hour>=24 || p->leave.min<0 || p->leave.min>=60);

16

printf(\车场现在有一辆车离开,请便道里的第一辆车进入车场!\\n\printf(\出站的车的车牌号为:\puts(p->num);/*把车牌号输出*/ printf(\

/*计算出正确的所需的钱数*/ A1=p->reach.hour; A2=p->reach.min; B1=p->leave.hour; B2=p->leave.min;

a=(B1-A1)*60+B2-A2; if(a>=60) {

b=a/60;/*停留时间中的小时*/ c=a-60*b;/*停留时间的分钟*/ } else {

b=0; c=a; }

printf(\请问你是否是会员(是1/否0):\while(1){

scanf(\ if (i==1) {

printf(\ 祝您一路顺风,欢迎您下次光临.\ printf(\ ★☆收 据★☆\\n\ printf(\ ★☆会员★☆\\n\ printf(\ 车牌号: \ puts(p->num); printf(\

printf(\ printf(\进车场时刻 | 出车场时刻 | 停留时间 | 应付(元)|\\n\

printf(\ printf(\ %d:%d\ printf(\ | %d:%d\ printf(\ | %d:%d\ printf(\ | %2.1f\

17

printf(\ |\\n\

printf(\

free(p);break; }

if(i==0) {

printf(\ 祝您一路顺风,欢迎您下次光临.\ printf(\ ★☆收 据★☆\\n\ printf(\ ★☆非会员★☆\\n\ printf(\ 车牌号: \ puts(p->num); printf(\

printf(\ printf(\进车场时刻 | 出车场时刻 | 停留时间 | 应付(元)|\\n\

printf(\ printf(\ %d:%d\ printf(\ | %d:%d\ printf(\ | %d:%d\ printf(\ | %2.1f\ printf(\ |\\n\

printf(\

free(p);break; } else

printf(\输入有错,请重新输入:\ fflush(stdin); // ch=getchar(); } }

int Arrival(SeqStackCar *Enter,LinkQueueCar *D,int n) /*车辆到达,Enter为车场的指针,D为便道队列的指针*/ {

CarNode *p;/*车辆结点p*/

18

QueueNode *t;/*队列结点t*/

p=(CarNode *)malloc(sizeof(CarNode)); flushall(); /*清空缓存区*/ int i;

printf(\请输入车牌号(例:A1234):\\n\gets(p->num);

if(Enter->top

Enter->top++;

printf(\车辆在车场第%d位置.\ fflush(stdin);

printf(\请输入到达时间(小时:分钟):\

scanf(\ fflush(stdin); do{ if(p->reach.hour<0 || p->reach.hour>=24 || p->reach.min<0 ||

p->reach.min>=60)

{

printf(\输入的时间格式有错,请重新输入:\

scanf(\ fflush(stdin); } else

break; } while(p->reach.hour<0 || p->reach.hour>=24 || p->reach.min<0 ||

p->reach.min>=60);

Enter->stack[Enter->top]=p; /*把p结点赋值给车站*/ return(1); }

else /*车场已满,车进便道*/ {

printf(\请该车在便道稍作等待!\\n\

t=(QueueNode *)malloc(sizeof(QueueNode));/*开辟一个队列结点,它的数据结点是p,它的指针结点是空,队列的头与尾都是此结点*/ t->data=p;

t->next=NULL; D->rear->next=t;

19

D->rear=t; return(1); } }

//车辆离开,输入车牌号离开

void ExitCar(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W,int n) {

int i=0,room,flag=0;/*room为要输出的位置*/ char num[10],*pnum;//字符串的比较

SeqStackCar *S;//开辟新的空间时是否是NULL空

CarNode *p,*t; //车辆本生的结点是p,车辆在队列中的结点是t QueueNode *q; //判断车场内是否有车,队列结点*q

pnum=num;

if(Enter->top>0) //车场有车 {

while(!flag) //输入离开车辆的信息 {

printf(\请输入出站车辆的车牌号:\ scanf(\

for(i=0;itop;i++)

if(strcmp(Enter->stack[i+1]->num,pnum)==0) {

room=i+1; flag=1;

fflush(stdin); }

else

printf(\第%d车位没有此车\\n\ fflush(stdin); }

while(Enter->top>room) /*车辆离开*/ {

Temp->top++;

Temp->stack[Temp->top]=Enter->stack[Enter->top];/*把剩余的车辆退出车站并送入临时栈内*/

Enter->stack[Enter->top]=NULL;/*栈顶为空*/

20


停车场管理系统程序设计书 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新北师大版初一数学七年级下册第一章整式的乘除导学案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: