停车场收费管理系统 报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

printf(" %d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min); puts(S->stack[i]->num); } } else printf("\n 车场里没有车"); }
(四)列表显示便道: void List2()
分析:判断便道上是否有车,如果有车,输入车辆的车牌号,如
就显示停车场车辆的信息,没车显示无车;以及判断便道上是否
有车,如果有车就显示车牌号,如果没有就显示无车,借助函数
void List()来实现; 三、 系统的设计与实现
(一) 车辆停车:void PRINT()
分析:记录停车信息包括车牌号、停车时间、停车车位等信息。
该模块的具体代码如下所示。
int Arrival(SeqStackCar *Enter,LinkQueueCar *W){ CarNode *p; QueueNode *t; p=(CarNode *)malloc(sizeof(CarNode));
1、
车 库
2、
车 辆






退







车 库 停 车
便











离 开 时 刻
应 缴 纳 费 用
停 车 信 息
便 道 信 息
返 回 主 菜 单
3、














车 牌 号
停 车 位 置
停 车 时 刻
的 车 牌 号
通过上图的功能分析,把整个系统划分为 4 个模块:
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];
//初始化栈
int InitQueue(LinkQueueCar *);
五、 总结
系统完成了:用栈模拟停车场(栈以顺序结构实现),用队列 模拟车场外的便道(队列以链表实现)。按照从终端读入的数据序列 进行模拟管理且数据元素包括三个数据项:汽车“到达”或“离去” 信息,汽车牌照号码及到达或离去的时间,若是车辆到达,则输出汽 车在停车场内或便道上的停车位置;若是离去,则输出汽车在停车场 内停留的时间和应缴纳的费用(在便道上停留的时间不收费)的功能。
printf("\n1.车场列表\n2.便道列表\n3.返回主菜单\n"); while(1) { scanf("%d",&tag); if(tag>=1||tag<=3) break; else printf("\n 请选择 1~3:");
四、系统测试
(一)测试车辆到达登记
(二) 测试车辆离开登记及应缴费用 (三) 车场列表及便道信息显示:
3、 该系统完成以下功能:若是车辆到达,则输出汽车在停 车场内或便道上的停车位置;若是离去,则输出汽车在 停车场内停留的时间和应缴纳的费用(在便道上停留的
时间不收费); 4、 要求栈以顺序结构实现,队列以链表实现。 (二) 系统模块结构设计 通过对系统功能的分析,停车场收费管理系统功能如图所示。
停车场收费管理系统
兰州商学院陇桥学院 工学系课程设计报告
设 计 题 目:停车场收费管理系统

别:工学系
专 业 (方 向):
wk.baidu.com
年 级、 班:
学 生 姓 名:
学 生 学 号:
指 导 教 师:
2013 年 12 月 23 日
目录
一、 系统开发背景...................................................................................................................1 二、 系统分析与设计...............................................................................................................1 (一)系统功能要求.................................................................................................................1 (二) 系统模块结构设计.......................................................................................................2 三、系统的设计与实现.............................................................................................................3 四、系统测试.............................................................................................................................6 (一)车辆到达登记.................................................................................................................6 (二) 车辆离开登记及应缴费用...........................................................................................7 (三)车场列表及便道信息显示.............................................................................................7 五、 总结...................................................................................................................................7 六、 附件(代码、流程图)...................................................................................................8
flushall(); ;printf("\n 请输入车牌号(例:豫 B1234):");
gets(p->num); if(Enter->top<MAX) { Enter->top++; printf("\n 车辆在车场第%d 位置.",Enter->top);
printf("\n 车辆到达时间:"); scanf("%d:%d",&(p->reach.hour),&(p->reach.min));
我的收获:我的收获:通过本次“停车场收费管理系统”的 c 程序编写,是我对栈以及队列有了更深层次的理解,我知道了顺序 栈较稳定,因此可以采用顺序栈来模拟车库;相比较频繁的做插入、 删除等“动态”较强的线性表宜选则链式存储,因此采用队列来模拟 便道。通过课程设计,加深了我对《数据结构》这一课程所学内容的 进一步理解与巩固,对结构化设计思想的理解,能对系统功能进行分 析,并设计合理的模块化结构,加强了培养分析问题、解决实际问题 的能力。
六、附件(代码,部分流程图)
#include<stdio.h> #include<stdlib.h> #include<string.h>
#define MAX 2 //车库容量 #define price 0.05 //停车收费按分计
typedef struct time{
int hour;
int min;
typedef struct car{ CarNode *data;
struct car *next; }QueueNode;
typedef struct Node{ QueueNode *front;
QueueNode *rear; }LinkQueueCar;
//用队列模拟便道
void InitStack(SeqStackCar *);
停车场收费管理系统
一、 系统开发背景
为了加深对《数据结构》这一课程所学内容的进一步理解与巩固, 加深对结构化设计思想的理解,能对系统功能进行分析,并设计出 合理的模块化结构,提高程序开发功能,能运用合理的代码编写清 晰高效的程序。训练对 C 程序的调试能力,能将一个中小型各级组 织系统联调通过,掌握系统研发过程,解决生活中的相关问题继而 培养分析问题、解决实际问题的能力,因此编写了“停车场收费管 理系统”的 c 程序。
}Time;
//时间结点
typedef struct node{
char num[10];
Time reach;
Time leave;
}CarNode;
//车辆信息,包括车牌号,到达和离开时间
typedef struct NODE{ CarNode *stack[MAX+1];
int top; }SeqStackCar; //用栈模拟车库
二、 系统分析与设计 (一)系统功能要求
设计一个停车场管理系统,可以对停车场中的车辆进行查询以 及对离开的车辆进行收费等功能。
1、 要求以栈模拟停车场,以队列模拟车场外的便道,按照 从终端读入的数据序列进行模拟管理;
2、 要求处理的数据元素包括三个数据项:汽车“到达”或 “离去”信息,汽车牌照号码及到达或离去的时间;
果没有车,显示无车。
该模块的具体代码如下所示。
void List2(LinkQueueCar *W) { QueueNode *p; p=W->front->next; if(W->front!=W->rear) { printf("\n 等待车辆的号码为:"); while(p!=NULL) { puts(p->data->num); p=p->next; } } else printf("\n 便道里没有车."); }
Temp->stack[Temp->top]=NULL;
Temp->top--;
}
PRINT(p,room);
(二)、列表显示停车场信息:void List1()
分析:该函数主要判断停车场是否有车,如果有车就显示停车场车
辆的信息,没有车则显示无车。
该模块的具体代码如下所示。
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);
(五) 列表显示菜单:void List()
分析:图示实现列表显示功能的控制,调用显示停车场信息、便
道信息的函数。
该模块的具体代码如下所示。
void List(SeqStackCar S,LinkQueueCar W) { int flag,tag; flag=1;
while(flag) { printf("\n 请选择 1|2|3:");
//车辆到达
(二) 车辆离开:void Leave()
分析:记录车辆离开的信息、以及便道上的车是否进入车库中。
该模块的具体代码如下所示。
while(Enter->top>room)
//车辆离开
{
Temp->top++;
Temp->stack[Temp->top]=Enter->stack[Enter->top];
1、 车库停车,该模块主要实现:记录停车信息包括车牌号、停车
时刻、停车车位的输出,借助函数 void PRINT()来实现; 2、 车辆离开,该模块主要实现:记录车辆离开信息以及便道上的
车是否进入车库中的输出,借助函数 void Leave()来实现;
3、 列表显示停车,该函数主要判断停车场是否偶有车,如果有车
相关文档
最新文档