C语言课设之停车场管理系统Word版

上传人:桔**** 文档编号:432587625 上传时间:2023-11-12 格式:DOC 页数:14 大小:243KB
返回 下载 相关 举报
C语言课设之停车场管理系统Word版_第1页
第1页 / 共14页
C语言课设之停车场管理系统Word版_第2页
第2页 / 共14页
C语言课设之停车场管理系统Word版_第3页
第3页 / 共14页
C语言课设之停车场管理系统Word版_第4页
第4页 / 共14页
C语言课设之停车场管理系统Word版_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《C语言课设之停车场管理系统Word版》由会员分享,可在线阅读,更多相关《C语言课设之停车场管理系统Word版(14页珍藏版)》请在金锄头文库上搜索。

1、如果您需要使用本文档,请点击下载按钮下载!C语言课程设计实习报告目 录一. 题目要求二. 需求分析三. 总体设计四. 具体程序五. 上机操作及使用说明如果您需要使用本文档,请点击下载按钮下载!六. 存在问题与不足七. 学 习 心 得停车场管理一. 题目要求1.设计一个停车场用长度为N的堆栈来模拟。由于停车场内如有某辆车要开走 ,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。二. 需求分析根据题目要求首先设计一个堆栈,以堆栈来模拟停车场,又每辆汽车的车牌号都不一样,

2、这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素设计成汽车的车牌号。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。另外,停车场根据汽车在停车场内

3、停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。由于时间不如果您需要使用本文档,请点击下载按钮下载!像汽车一样需要让道,可设计了一个顺序表来存放时间。又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。三. 总体设计车辆到达以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号初始化车站, 初始化让路的临时栈, 初始化通道车场未满,车进车场车场已满,车进便道判断车场是否已满车输入车子到达时间,车牌号未满车进入车场判断车场内是否有车不做任何计算无点x如果您需要使用本文档,请点击下载按钮下载

4、!有输入离开车辆的离开时间,进行停车费用的计算此车后面的车辆退出并进入临时栈车子离开四. 具体程序#include #include #define SIZE 3 #define NULL 0 typedef struct int hour; int min; time; typedef struct int num; int position; time t; float money; Car; typedef struct Car elemSIZE+1; int top; Stack; typedef struct Node Car data; struct Node *next; CQu

5、eueNode; typedef struct 如果您需要使用本文档,请点击下载按钮下载! CQueueNode *front; CQueueNode *rear; LinkQueue; void InitStack(Stack *S) S-top=0; void Push(Stack *S,Car *r) S-top+; S-elemS-top.num=r-num; r-position=S-elemS-top.position=S-top; S-elemS-top.t.hour=r-t.hour; S-elemS-top.t.min=r-t.min; int IsEmpty(Stack*

6、S) return(S-top=0?1:0); int IsFull(Stack *S) return(S-top=SIZE?1:0); int GetTop(Stack *S,Car *n) n-num=S-elemS-top.num; n-position=S-elemS-top.position; n-t.hour=S-elemS-top.t.hour; n-t.min=S-elemS-top.t.min; return 1; void InitQueue(LinkQueue *Q) Q-front=(CQueueNode*)malloc(sizeof(CQueueNode); if(Q

7、-front!=NULL) Q-rear=Q-front; Q-front-next=NULL; int EnterQueue(LinkQueue *Q,Car *t) CQueueNode *NewNode; NewNode=(CQueueNode*)malloc(sizeof(CQueueNode); if(NewNode!=NULL) NewNode-data.num=t-num; NewNode-data.t.hour=t-t.hour; NewNode-data.t.min=t-t.min; NewNode-next=NULL; Q-rear-next=NewNode; Q-rear

8、=NewNode; return 1; else return 0; 如果您需要使用本文档,请点击下载按钮下载!int DeleteQueue(LinkQueue *Q,Car *x) CQueueNode *p; if(Q-front=Q-rear) return 0; p=Q-front-next; Q-front-next=p-next; if(Q-rear=p) Q-rear=Q-front; x-num=p-data.num; x-t.hour=p-data.t.hour; x-t.min=p-data.t.min; free(p); return 1; void print1(St

9、ack *S) int tag; Car x; printf(停车场停车情况:n); if(IsEmpty(S) printf(无车!); for(tag=S-top;S-top0;S-top-) if(GetTop(S,&x) printf(车牌号 %d,所在位置 %d,到达/离开时间 %d:%dn,x.num,x.position,x.t.hour,x.t.min); S-top=tag; void print2(LinkQueue *Q) CQueueNode *p; p=Q-front-next; for(;p!=NULL;p=p-next) printf(等待车牌号 %d, 到达/离

10、开时间 %d:%d,p-data.num,p-data.t.hour,p-data.t.min); void TaM(Car *r,int h,int m) if(mr-t.min) r-t.min+=60;r-t.hour-=1; h=r-t.hour-h; m=r-t.min-m; printf(n停车 %d小时 %d 分钟n,h,m); printf(每小时收费30元n); h=h*60;m=h+m; r-money=0.5*m; printf(请支付金额%.2f元n,r-money); 如果您需要使用本文档,请点击下载按钮下载!void In(Stack *S,LinkQueue *Q

11、,Car*r) if(IsFull(S) printf(车库已满,请等待!); EnterQueue(Q,r); else Push(S,r); printf(n您现在所在位置 %d,r-position); void Out(Stack *S,Stack *S0,Car *r,LinkQueue *Q) int tag=S-top; Car x; if(IsEmpty(S) printf(没有此车!); else for(;r-num!=S-elemtag.num&tag0;tag-) Push(S0,&S-elemtag); S-top-; if(r-num=S-elemtag.num)

12、TaM(r,S-elemtag.t.hour,S-elemtag.t.min); S-top-; for(;S0-top0;S0-top-) Push(S,&S0-elemS0-top); if(S-topfront!=Q-rear) DeleteQueue(Q,&x); Push(S,&x); else if(tag=0) printf(未进入停车场应支付金额 0元!); for(;S0-top0;S0-top-) Push(S,&S0-elemS0-top); void print() printf(n*欢迎光临*n); printf(n 请选择:n); printf(n 1 :到达); printf(n 2 :离开); printf(n 3 :搜索); printf(n 4 :退出n); 如果您需要使用本文档,请点击下载按钮下载! printf(n); int main() int n,m,i=1,j,flag=0; Car c10; Car x; Stack S,S0; LinkQueue Q; InitStack(&S); Ini

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号