C语言课设之停车场管理系统_第1页
C语言课设之停车场管理系统_第2页
C语言课设之停车场管理系统_第3页
C语言课设之停车场管理系统_第4页
C语言课设之停车场管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终 端输入时可直接使用。由于时间不像汽车一样需要让道,可设计了一个顺序表来存放时间。 又用顺序表用派生法设讣了一个堆栈,恰好满足上面模拟停车场的需要。 三总体设计 10 四. 具体程序 #include #include define SIZE 3 tidefine NULL 0 typedef struct int hour; int min; time; typedef struct int num; int position; time t; float money: Car; typedef struct Car elemSIZE

4、+l; int top; Stack; typedef struct Node Car data; struct Node *next; CQueueNode; 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. nunFr-num; r-position=S-e1emS-top position=S-top; S-elemS-top_ t hour=r-t

5、 hour; S-elemS-topZ t min=r-t min; int IsEmpty(Stack* S) return(S-top=0?l:0): int IsFull(Stack *S) return (S-top=SIZE?l:0) : int GetTop(Stack *S,Car *n) n-num=S-e1emLS-topZ num; n-position=S-e1emS-top position; n-t hour=Se1emStop t hour; n-t min二S-elemS-top t min; return 1; void InitQueue(LinkQueue

6、*Q) Q-front=(CQueueNode*)malloc(sizeof(CQueueNode); 辻(Q-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 nunFt-num; NewNode-data t hour=t-t hour; NewNode-data t min二

7、t-t min; NewNode-next二NULL; Q-rear-next=NewNode; Q-rear=NewNode; return 1; else return 0; int DeleteQueue(LinkQueue *Q,Car *x) CQueueNode *p; if (Q-frontQ-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

8、; free(p); return 1; void printl(Stack *S) int tag; Car x; printf (停车场停车情况:n); if(IsEmpty (S) printf r无车!); for (tag=S-top; S-top0; S-top-) if(GetTop(S, Stop=tag; void print2(LinkQueue *Q) CQueueNode *p; p=Q-front-next; for(;p!二NULL;p二p-next) printf r等待车牌号 %d, 到达/离开时 |h %d:%d,z, p-data num, p-data t

9、 hour, p-data t min); void TaM(Car *r, int h, int m) if(mr-tmin) r-t min+二60;r-t hour一二1; h=r-t hour-h: m=r-t min-m; printf (,zn 停车 %d 小时 %d 分钟n,h, m); printf (每小时收费30元n); h=h*60;nPh+m; r-money二0 5*m; printf C请支付金额. 2f 元n, r-money); void In(Stack *S, LinkQueue *Q, Car*r) if (IsFull(S) printfC车库已满,请等

10、待! “); EnterQueue(Q, r); else Push (S, r): printf (n 您现在所在位置 %dz,, reposition); void Out(Stack *S, Stack *S0, Car *r, LinkQueue *Q) int tag=Stop; Car x; if (IsEmpty(S) printf C没有此车!); else for(;rnum!=S-elemtag numtag-) Push(SO, S-top-; if(r-num=S-e1emtagZ num) TaM(r, S-elemtag t hour, S-elemtagZ t m

11、in); Stop-; for (;S0-top0;S0-top-) Push(S, if(S-topfront!=Q-rear) DeleteQueue(Q, Push(S, else if (tag=0) printf r未进入停车场应支付金额0元!); for(;S0-top0;S0-top-) Push(S, void print () printf (,zn* 1 i*1* *4 *1* *1 *1*4 *1* *1 *1*4 *1* *1 *1*4 *1* *1 *1*i printf Cn 请选择:n); printf Cn 1 :到达); printf Cn 2 :离开); p

12、rintf Cn 3 :搜索); printf Cn 4 :退出rT); printf Cn); int main() int n, m, i=l, j, flagO; Car c10; Car x; Stack S, SO; LinkQueue Q; InitStack( InitStack(ftSO); InitQueue( while (1) print (); scanf switch(m) case 1 :printf (n 请输入车牌号:); scanf printf (n请输入到达/离开时间:); scanf In ( i+; break; case 2:printf(n 请输入

13、车牌号:); scanf(%d, for(j=0;jd C:Documents and Settingsluo 105面l新建文件夹DebugO.exe Bl 达开索岀 12 3 4 蔚停弃服 XXXXXXXXXXXXXXXXXXXMXXXMXXXMXMXXXXMn 山 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 请选择: 达开去上 12 3 4 停车场有车: Fl C:Documents and Settinasluol 05 ffiSr 建立件夹i.DEbuaO.exe*JLQ1 xJ 淸选率 间间间0 时时时:3 开开开0 离离脣 / / / 达S达刊 ij到il 3 2 1/ 專在在4 车专誓 #3 2 1HS- 替=4车 车牌胆牌徉 3停车车墨 l:2H l:10 l:0 耳 I 1 Lil Tn* I nn n x n N XX N XN XNX N XN X N X N X ,A A I r IV I I fYYK K K X KK具 具 具 只 具 请选择: Z1 5.车辆离开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论