道尔智控 > 停车场系统 > (停车场管理c)停车场管理c语言代码

(停车场管理c)停车场管理c语言代码

导读九九乘法表c语言编程本文贡献者:【被风干的泪痕】 ,解答(停车场管理c)的问题,欢迎阅读!最佳答案#include "stdio.h"#include "stdlib.h"#include "string.h"#define MAX 2 /*车库...

本文中提到了5个关于停车场管理c的相关看点,同时还对停车场管理c语言代码也有不同的看法,希望本文能为您找到想要的答案,记得关注哦!

九九乘法表c语言编程

本文贡献者:【被风干的泪痕】 ,解答(停车场管理c)的问题,欢迎阅读!

最佳答案#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#define MAX 2 /*车库容量*/

#define price 0.8/*每车每分钟费用*/

typedef struct time{

int hour;

int min;

}Time; /*时间结点*/

typedef struct node{

char num[10];

Time reach;

Time leave;

}CarNode; /*车辆信息结点*/

typedef struct NODE{

CarNode *stack[MAX+1];

int top;

}SeqStackCar; /*模拟车站*/

typedef struct car{

CarNode *data;

struct car *next;

}QueueNode;

typedef struct Node{

QueueNode *head;

QueueNode *rear;

}LinkQueueCar; /*模拟通道*/

void InitStack(SeqStackCar *s) /*初始化栈*/

{

int i;

s->top=0;

for(i=0;i<=MAX;i++)

s->stack[s->top]=NULL;

}

int InitQueue(LinkQueueCar *Q) /*初始化便道*/

{

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 room) /*打印出站车的信息*/

{

int A1,A2,B1,B2;

printf("\nplease input thedepart time:/**:**/");

scanf("%d:%d",&(p->leave.hour),&(p->leave.min));

printf("\nthe number of the car:");

puts(p->num);

printf("\nthe time the car arrive: %d:%d",p->reach.hour,p->reach.min);

printf("the depart time: %d:%d",p->leave.hour,p->leave.min);

A1=p->reach.hour;

A2=p->reach.min;

B1=p->leave.hour;

B2=p->leave.min;

printf("\nthe fee: %2.1f元",((B1-A1)*60+(B2-A2))*price);

free(p);

}

int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*车辆到达*/

{

CarNode *p;

QueueNode *t;

p=(CarNode *)malloc(sizeof(CarNode));

flushall();

printf("\ninput the number of the car(例:BA12):");

gets(p->num);

if(Enter->top<MAX) /*车场未满,车进车场*/

{

Enter->top++;

printf("\nthe place of the car.",Enter->top);

printf("\nthe time thecar arrive:/**:**/");

scanf("%d:%d",&(p->reach.hour),&(p->reach.min));

Enter->stack[Enter->top]=p;

return(1);

}

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

{

printf("\n该车须在便道等待!");

t=(QueueNode *)malloc(sizeof(QueueNode));

t->data=p;

t->next=NULL;

W->rear->next=t;

W->rear=t;

return(1);

}

}

void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)

{ /*车辆离开*/

int i=0, room;

CarNode *p,*t;

QueueNode *q;

/*判断车场内是否有车*/

if(Enter->top>0) /*有车*/

{

while(1) /*输入离开车辆的信息*/

{

printf("\n请输入车在车场的位置/1--%d/:",Enter->top);

scanf("%d",&room);

if(room>=1&&room<=Enter->top) break;

}

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

{

Temp->top++;

Temp->stack[Temp->top]=Enter->stack[Enter->top];

Enter->stack[Enter->top]=NULL;

Enter->top--;

}

p=Enter->stack[Enter->top];

Enter->stack[Enter->top]=NULL;

Enter->top--;

while(Temp->top>=1)

{

Enter->top++;

Enter->stack[Enter->top]=Temp->stack[Temp->top];

Temp->stack[Temp->top]=NULL;

Temp->top--;

}

PRINT(p,room);

/*判断通道上是否有车及车站是否已满*/

if((W->head!=W->rear)&&Enter->top<MAX) /*便道的车辆进入车场*/

{

q=W->head->next;

t=q->data;

Enter->top++;

printf("\n便道的%s号车进入车场第%d位置.",t->num,Enter->top);

printf("\n请输入现在的时间/**:**/:");

scanf("%d:%d",&(t->reach.hour),&(t->reach.min));

W->head->next=q->next;

if(q==W->rear) W->rear=W->head;

Enter->stack[Enter->top]=t;

free(q);

}

else printf("\n便道里没有车.\n");

}

else printf("\n车场里没有车."); /*没车*/

}

void List1(SeqStackCar *S) /*列表显示车场信息*/

{

int i;

if(S->top>0) /*判断车站内是否有车*/

{

printf("\n车场:");

printf("\n 位置 到达时间 车牌号\n");

for(i=1;i<=S->top;i++)

{

printf(" %d ",i);

printf("%d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min);

puts(S->stack[i]->num);

}

}

else printf("\n车场里没有车");

}

void List2(LinkQueueCar *W) /*列表显示便道信息*/

{

QueueNode *p;

p=W->head->next;

if(W->head!=W->rear) /*判断通道上是否有车*/

{

printf("\n等待车辆的号码为:");

while(p!=NULL)

{

puts(p->data->num);

p=p->next;

}

}

else printf("\n便道里没有车.");

}

void List(SeqStackCar S,LinkQueueCar W)

{

int flag,tag;

flag=1;

while(flag)

{

printf("\n请选择 1|2|3:");

printf("\n1.车场\n2.便道\n3.返回\n");

while(1)

{

scanf("%d",&tag);

if(tag>=1||tag<=3) break;

else printf("\n请选择 1|2|3:");

}

switch(tag)

{

case 1:List1(&S);break; /*列表显示车场信息*/

case 2:List2(&W);break; /*列表显示便道信息*/

case 3:flag=0;break;

default: break;

}

}

}

void main()

{

SeqStackCar Enter,Temp;

LinkQueueCar Wait;

int ch;

InitStack(&Enter); /*初始化车站*/

InitStack(&Temp); /*初始化让路的临时栈*/

InitQueue(&Wait); /*初始化通道*/

while(1)

{ printf("停车场管理系统\n");

printf("1. the car arrive(车辆到达)\n");

printf(" 2. the car leave(车辆离开)\n");

printf(" 3. the schedule (显示列表)\n");

printf(" 4. out(退出系统)\n");

while(1)

{

scanf("%d",&ch);

if(ch>=1&&ch<=4)break;

else printf("\nplease choose: 1|2|3|4.");

}

switch(ch)

{

case 1:Arrival(&Enter,&Wait);break; /*车辆到达*/

case 2:Leave(&Enter,&Temp,&Wait);break; /*车辆离开*/

case 3:List(Enter,Wait);break; /*列表打印信息*/

case 4:exit(0); /*退出主程序*/

default: break;

}

}

}

这我们上机课做过,我这还有PPT呢~详细的实验报告。如果你也是上机的话要PPT的我可以传你~

以上就是道尔智控小编解答(被风干的泪痕)解答关于“九九乘法表c语言编程”的答案,接下来继续为你详解用户(ミ灬空白傷↘)解答“c语言课程设计学生成绩管理系统”的一些相关解答,希望能解决你的问题!

九九乘法表c语言编程

c语言课程设计学生成绩管理系统

本文贡献者:【ミ灬空白傷↘】 ,解答(停车场管理c)的问题,欢迎阅读!

最佳答案#include#include#include#defineMAX_PARKING_SIZE10//停车场最大停车数量#definePRIZE10.00//停留每小时单价#definetrue1#definefalse0typedefstructstack{longpos[MAX_PARKING_SIZE];//存储车牌号码inttime[MAX_PARKING_SIZE];//存储进入车站的时间intpoint;//最后一辆车的位置指针}Stack;//定义栈-模拟停车场typedefstructqueue{intnum;//存储车牌号structqueue*next;//指向下一辆车}Queue;//定义队列-模拟停车场外voidInitStack(Stack*s){s->point=-1;}//初始化栈Queue*InitQueue()//初始化队列{Queue*q;q=(Queue*)malloc(sizeof(Queue));q->next=NULL;returnq;}intStackPop(Stack*s,long*i,int*j)//退栈函数{if(s->point==-1)returnfalse;else{*i=s->pos[s->point];*j=s->time[s->point];s->point--;returntrue;}}intStackPush(Stack*s,longi,intj)//压栈函数{if(s->point==MAX_PARKING_SIZE-1)returnfalse;else{s->point++;s->pos[s->point]=i;s->time[s->point]=j;returntrue;}}intQueuePop(Queue**qH,long*i)//退队函数{Queue*temp;if((*qH)->next==NULL)returnfalse;else{temp=(*qH)->next;(*qH)->next=temp->next;*i=temp->num;free(temp);returntrue;}}intQueuePush(Queue**q,longi)//入队函数{Queue*temp;if((temp=(Queue*)malloc(sizeof(Queue)))==NULL)returnfalse;else{(*q)->next=temp;temp->num=i;temp->next=NULL;*q=temp;returntrue;}}intmain(){inttime,i,j,inStack,inQueue;longnum;charstate;Stackpark;Queue*H,*p,*temp,*temp2;H=InitQueue();p=H;system("color9E");InitStack(&park);//初始化队列和栈printf("**********这里是停车场管理程序,欢迎使用**************\n");printf("\n停车场最大能停车%d辆,停车时间不得超过24小时,现在停车的单价为每小时%.2f元\n",MAX_PARKING_SIZE,PRIZE);while(1){inStack=inQueue=0;temp=H;printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf("┃停车场管理系统┃\n");printf("┃(A或a)汽车到达和已到汽车查询┃\n");printf("┃(D或d)汽车离开┃\n");printf("┃(E或e)程序退出┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf("\n您的选择是:");state=getche();if(state=='a'||state=='A'||state=='d'||state=='D'){printf("\n输入车牌号(数字):");scanf("%ld",&num);printf("\n输入到达或查询或离开的的时间(24小时制,单位:小时):");scanf("%d",&time);}if(state=='a'||state=='A'){for(i=0;inext!=NULL;j++){temp2=temp;temp=temp2->next;if(temp->num==num){inQueue=1;break;}}//在车站外查找if(inStack)printf("\n查询结果:输入的汽车已经在车站中第%d个位置停留了%d个小时!\n",i+1,time>park.time[i]time-park.time[i]:time+24-park.time[i]);elseif(inQueue)printf("\n查询结果:输入的汽车已经在车站外第%d个位置等候\n",j);else{if(StackPush(&park,num,time)==false){QueuePush(&p,num);printf("\n车站已满,车辆停在场外。\n");}elseprintf("\n车辆成功进站!\n");}//如果车辆到达,当车站已满,停在车站外,否则,进入车站}elseif(state=='d'||state=='D')//如果是离开{for(i=0;ipark.time[i]time-park.time[i]:time+24-park.time[i],time>park.time[i](time-park.time[i])*PRIZE:(time+24-park.time[i])*PRIZE);while(inext!=NULL){QueuePop(&H,&num);if(H->next==NULL)p=H;StackPush(&park,num,time);printf("\n停车场空出一位置。场外等候的%d号汽车入站了!\n",num);}//如果车站外有车,入站}else//不在车站中{for(i=1;temp->next!=NULL;i++){temp2=temp;temp=temp2->next;if(temp->num==num){inQueue=1;break;}}//查找是否在车站外if(inQueue){printf("\n汽车在停车场外,不收费\n",i);temp2->next=temp->next;if(temp==p)p=temp2;free(temp);}//在车站外elseprintf("\n对不起,您输入了不存在的车牌号!\n");}}elseif(state=='e'||state=='E'){printf("\n");break;}elseprintf("\n输入错误!\n");}return0;}

以上就是道尔智控小编解答(ミ灬空白傷↘)贡献关于“c语言课程设计学生成绩管理系统”的答案,接下来继续为你详解用户(荼蘼i)解答“c语言露天停车场停车位优化”的一些相关解答,希望能解决你的问题!

c语言露天停车场停车位优化

热心用户提供:【荼蘼i】 ,解答(停车场管理c)的问题,欢迎阅读!

最佳答案printf("time is %f s\n",difftime(t_end,t_end));difftime中两个都是t_end,注定为0。

以上就是道尔智控小编解答贡献者:(荼蘼i)回答的关于“c语言露天停车场停车位优化”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,现在接着继续教您下文用户【璎婲】解答的“数据结构课程设计题目”的一些相关疑点做出分析与解答,如果能找到你的答案,可以关注本站。

数据结构课程设计题目

本文贡献者:【璎婲】 ,解答(停车场管理c)的问题,欢迎阅读!

最佳答案一、问题描述:

利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。

二、基本要求:

1、I:初始化(Initialization),从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。

2、E:编码(Encoding),利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读人),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。

3、D:译码(Decoding),利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。

4、P:输出代码文件(Print),将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。

5、T:输出哈夫曼树(TreePrinting),将已在内存中的哈夫曼树以直观的方式(树或凹人表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

三、测试数据:]

用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。

字符 A B C D E F G H I J K L M

频度 186 64 13 22 32 103 21 15 47 1 5 32 20 20

字符 N O P Q R S T U V W X Y Z

频度 57 63 15 1 48 51 80 23 8 18 1 16 1

四、实现提示:

1、哈夫曼编码采用一个字符串数组存储。

2、用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q”,表示退出运行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单,直至某次用户选择了“Q”为止。

3、在程序的一次执行过程中,第一次执行I、D或C命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行I命令,因为文件hfmTree可能早已建好。

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<ctype.h>

int n;

struct node{

int w;

int flag;

char c;

struct node *plink,*llink,*rlink;

char code[50];

}*num[100],*root;

FILE *fp;

char tmpcode[50];

int t=0;

void main(void)

{

int i;

void settree(void); //建立树

void code(void); //对文件编码

void decode(void); // 译码

void disp(void);

root=(struct node*)malloc(sizeof(struct node));

puts("*******************哈夫曼编/译码器演示******************************");

while(1){

start:

puts("1. 初始化 2. 编码 3. 译码 4.显示编码表 5. 退出");

while(scanf("%d",&i)!=1)

{

while(getchar()!='\n')

continue;

puts("输入错误!");

puts("请重新输入!");

puts("1. 初始化 2. 编码 3. 译码 4.显示编码表 5. 退出");

}

switch (i)

{

case 1:

settree();

break;

case 2:

code();

break;

case 3:

decode();

break;

case 4:

disp();

break;

case 5:

exit(0);

default:

puts("输入错误!");

puts("请重新输入!");

goto start;

}

}

}

void settree(void)

{

int i,j,k;

struct node *p1,*p2,*tmp,*p;

void go(struct node *);

void setcode(struct node *);//建立每一个字符的编码

void printtree(struct node *);

puts("输入字符集的大小:");

scanf("%d",&n);

while(getchar()!='\n')

continue;

for(i=0;i<n;i++)

{

p=(struct node *)malloc(sizeof(struct node));

puts("请输入一个字符");

scanf("%c",&p->c);

while(getchar()!='\n')

continue;

puts("请输入该字符的权值:");

scanf("%d",&p->w);

while(getchar()!='\n')

continue;

p->plink=NULL;

p->rlink=NULL;

p->llink=NULL;

num[i]=p;

}

for(i=0;i<n-1;i++) //(递增)排序

{

for(j=i+1;j<n;j++)

{

if(num[i]->w>num[j]->w)

{

tmp=num[i];

num[i]=num[j];

num[j]=tmp;

}

}

}

/*******************************开始建立树***********************/

num[n]=NULL; //结束标志

k=n;

while(num[1]!=NULL)

{

p=(struct node *)malloc(sizeof(struct node));

p1=num[0];

p2=num[1];

p->llink=p1;

p->rlink=p2;

p->plink=NULL;

p1->plink=p;

p2->plink=p;

p->w=p1->w+p2->w;

for(i=1;i<k;i++)

{

num[i]=num[i+1];

}

k--;

num[0]=p;

for(i=0;i<k-1;i++) //排序

{

for(j=i+1;j<k;j++)

{

if(num[i]->w>num[j]->w)

{

tmp=num[i];

num[i]=num[j];

num[j]=tmp;

}

}

}

}

root=num[0];

/*建立完毕*/

/*写入文件,前序*/

if((fp=fopen("c:\\hfmtree.wxl","wb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

setcode(root);

go(root);

fclose(fp);

}

void setcode(struct node *p)

{

if(p->llink==NULL&&p->rlink==NULL)

{

tmpcode[t]='\0';

strcpy(p->code,tmpcode);

}

else

{

tmpcode[t++]='0';

setcode(p->llink);

t--;

tmpcode[t++]='1';

setcode(p->rlink);

t--;

}

}

void go(struct node *p)

{

if(p->llink==NULL&&p->rlink==NULL)

{

fputc('(',fp);

fputc(p->c,fp);

fputs(p->code,fp);

fputc(')',fp);

}

else

{

go(p->llink);

go(p->rlink);

}

}

void code(void)

{

FILE *fp1,*fp2,*fp3;

char ch1,ch2,c;

if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

if((fp2=fopen("c:\\tobetrans.txt","wb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

if((fp3=fopen("c:\\codefile.wxl","wb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

while((ch1=fgetc(fp2))!=EOF)

{

t=0;

while((ch2=fgetc(fp1))!=EOF)

{

if(ch1==ch2)

{

while((c=fgetc(fp1))!=')')

{

tmpcode[t++]=c;

}

tmpcode[t]='\0';

fputs(tmpcode,fp3);

fputc('@',fp3);

rewind(fp1);

break;

}

}

}

fclose(fp1);

fclose(fp2);

fclose(fp3);

}

void decode(void)

{

FILE *fp1,*fp2,*fp3;

char ch1,ch2,ch3;

char temp_3[20];

char temp_1[20];

int t1,t3;

if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

if((fp2=fopen("c:\\textfile.txt","wb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

if((fp3=fopen("c:\\codefile.wxl","rb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

while((ch3=fgetc(fp3))!=EOF)

{

t3=0;

while(ch3!='@')

{

temp_3[t3++]=ch3;

ch3=fgetc(fp3);

}

temp_3[t3]='\0';

while((ch1=fgetc(fp1))!=EOF)

{

if(isalpha(ch1))

{

ch2=ch1;

t1=0;

while((ch1=fgetc(fp1))!=')')

{

temp_1[t1++]=ch1;

}

temp_1[t1]='\0';

if(strcmp(temp_1,temp_3)==0)

{

fputc(ch2,fp2);

rewind(fp1);

break;

}

}

}

}

fclose(fp1);

fclose(fp2);

fclose(fp3);

}

void disp(void)

{

FILE *fp1,*fp2;

char ch1,ch2;

char tmp[20];

int t;

if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

if((fp2=fopen("c:\\hfmcode.txt","wb"))==NULL)

{

puts("文件打开错误!");

getchar();

exit(0);

}

while((ch1=fgetc(fp1))!=EOF)

{

if(ch1=='(')

{

t=0;

ch1=fgetc(fp1);

ch2=ch1;

while((ch1=fgetc(fp1))!=')')

{

tmp[t++]=ch1;

}

tmp[t]='\0';

printf("%c-----%s\n",ch2,tmp);

fputc(ch2,fp2);

fputc('-',fp2);

fputc('-',fp2);

fputc('-',fp2);

fputs(tmp,fp2);

fputc('\n',fp2);

}

}

fclose(fp1);

fclose(fp2);

}

上文就是道尔智控小编分享贡献者:(璎婲)解答的关于“数据结构课程设计题目”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,接下来继续谈论下文用户【旧巷づ】分享的“c语言程序结构”的一些相关疑点做出分析与解答,如果能找到你的答案,可以关注本站。

c语言程序结构

热心用户提供:【旧巷づ】 ,解答(停车场管理c)的问题,欢迎阅读!

最佳答案#include <stdio.h>

#include <stdlib.h>

typedef struct LNode {

int data;

LNode *next;

}LNode, *LinkList;

typedef struct {

int *Num;

int top;

int stackment; // 停车场最大的停车辆

}SqStack;

typedef LinkList QueuePtr;

typedef struct {

QueuePtr front;

QueuePtr rear;

}LinkQueue;

void InitStack(SqStack &S);

void InitQueue(LinkQueue &Q);

void PutIn(SqStack &S, LinkQueue &Q);

void GetOut(SqStack &S, LinkQueue &Q);

void StackTraverse(SqStack S);

void QueueTraverse(LinkQueue Q);

int main()

{

char ch, c;

SqStack S; LinkQueue Q;

InitStack(S); InitQueue(Q);

while(1)

{

fflush(stdin);

printf("*** 进入停车场: 'A' ***\n");

printf("*** 退出停车场: 'D' ***\n");

printf("*** 退出操作: '0' ***\n");

printf("\n请输入命令: ");

ch = getchar();

c = getchar();

switch(ch)

{

case 'A': PutIn(S, Q); break;

case 'D': GetOut(S, Q); break;

case '0': exit(-1);

default: printf("输入有误!\b");

exit(-1);

}

StackTraverse(S);

QueueTraverse(Q);

}

return 0;

}

void PutIn(SqStack &S, LinkQueue &Q)

{

int i, n, tag = 0; LNode *p, *q;

q = (LNode *)malloc(sizeof(LNode));

if(q == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

while(!tag)

{

printf("请输入车号: ");

scanf("%d", &n);

for(i = 0; i <= S.top; i++) // 若车号在堆栈已存在

if(n == S.Num[i])

{

printf("车号已存在! 请重新输入!\n");

break;

}

if(i > S.top)

tag = 1;

q = Q.front->next; // 若车号在队列中存在

while(q != NULL && Q.front != Q.rear)

{

if(q->data == n)

{

printf("车号已存在! 请重新输入!\n");

tag = 0;

break;

}

else q = q->next;

}

}

if(S.top != 4) // 若栈不满

S.Num[++S.top] = n;

else // 若栈满,则进入队列

{

p = (LNode *)malloc(sizeof(LNode));

if(p == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

p->data = n;

p->next = NULL;

Q.rear->next = p;

Q.rear = p;

}

}

void GetOut(SqStack &S, LinkQueue &Q)

{

int i, n, tag = 0;

LNode *p; SqStack S1;

InitStack(S1);

if(S.top < 0) // 停车场空

{

printf("停车场已空!情况如下!\n\n");

return;

}

while(!tag)

{

printf("请输入车号: ");

scanf("%d", &n);

for(i = 0; i <= S.top; i++)

if(n == S.Num[i]) // 若车号存在

tag = 1;

if(tag == 0) // 若车号不存在

printf("车号不存在! 请重新输入!\n");

}

for(i = S.top; S.Num[i] != n; i--) // 挡路的车进临时栈

S1.Num[++S1.top] = S.Num[S.top--];

S.top--;

for(i = S1.top; i >= 0; i--) // 临时栈的车重新入栈

S.Num[++S.top] = S1.Num[S1.top--];

if(Q.front != Q.rear) // 若便道有待进栈的车

{

p = (LNode *)malloc(sizeof(LNode));

if(p == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

p = Q.front->next;

S.Num[++S.top] = p->data;

Q.front ->next = p->next ;

free(p);

}

}

void InitStack(SqStack &S)

{

S.stackment = 5;

S.Num = (int *)malloc((S.stackment-1) * sizeof(int));

if(S.Num == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

S.top = -1;

}

void InitQueue(LinkQueue &Q)

{

LNode *head;

head = (LNode *)malloc(sizeof(LNode));

if(head == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

Q.front = head;

Q.rear = head;

Q.front->next = NULL;

}

void StackTraverse(SqStack S)

{

int i;

printf("停车场的情况:\n");

printf("┏━━━━━━━━\n");

printf("┃");

for(i = 0; i <= S.top; i++)

printf(" %d", S.Num[i]);

printf("\n┗━━━━━━━━\n");

}

void QueueTraverse(LinkQueue Q)

{

LNode *p;

p = (LNode *)malloc(sizeof(LNode));

if(p == NULL)

{

printf("内存分配失败!\n");

exit(-1);

}

printf("便道的情况:\n");

printf(" ━━━━━━━━\n");

p = Q.front->next;

while(p != NULL && Q.front != Q.rear)

{

printf(" %d", p->data);

p = p->next;

}

printf("\n ━━━━━━━━\n");

}

题目有点出入,这是我以前写的,自己适当的加一点代码吧。

附我的编程题目:设停车场内只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入停车场的车辆必须先退出车场为它让路,待该辆车开出大门外后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。试设计一个停车管理程序。

1、接受命令(A:入,D:出)和车号,若是汽车要进停车场,先判断停车场栈是否满,若不满,则汽车入栈,否则汽车入便道队列等候。

2、若是汽车要离开停车场,为该汽车让路,将停车场栈上若干辆汽车入临时栈,等这辆汽车出停车场后,临时栈中的汽车出栈,再回到停车场栈,然后看便道队列是否为空,若不空,则说明有汽车等候,从队头取出汽车号,让该车入停车场栈。

3、重复1、2直到为退出命令(车号为0或负数)。

今天的内容先分享到这里了,读完本文《(停车场管理c)停车场管理c语言代码》之后,是否是您想找的答案呢?想要了解更多,敬请关注ask.drzk.cn,您的关注是给小编最大的鼓励。

本文来自网络,不代表本站立场,转载请注明出处:http://ask.drzk.cn/tccxt/11099.html

作者: 道尔智控

道尔智控致力于智慧停车生态化建设,涵盖停车场管理系统、智慧停车系统、停车场系统、车牌识别 、门禁系统、道闸、通道闸、车位引导系统、云停车等。同时又为用户提供各种关于车牌、车型识别停车、停车场系统、通道道闸机等技术小知识,让您停车更智能、更简单、更便捷。
上一篇:(商场停车场刷卡系统)智慧停车场管理系统客服电话
下一篇:停车场道闸施工方案,停车场道闸施工方案设计
联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱:drzk@drzk.cn

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部