哈尔滨理工大学。
计算机科学与技术学院。
2024年秋季学期。
数据结构》课程设计。
题目:停车场管理。
班级:姓名:
学号:指导教师:纪颖。
目录。1 问题描述 2
1.1题目描述 2
1.2任务要求 3
2 设计思想及其目的 3
2.1设计思想 3
2.2设计目的 4
3 系统具备的功能 4
3.1 简体中文控制台界面 4
3.2 到达信息 5
3.3 离开信息 5
3.4 查询信息 5
4系统流程图 5
5 主函数、子程序调用关系 6
6 主要算法实现及其基本操作 7
6.1此停车场管理系统,主要分为以下若干模块: 8
6.2在以上各个模块中,各模块的伪码算法: 8
7 系统运行环境和开发工具 13
7.1系统运行环境 13
7.2开发工具 13
8 用户手册 14
8.1用户界面 14
8.2新的车辆到达 15
8.3场内车辆离开 15
8.4查询车辆信息 16
9 详细设计 17
9.1源文件 17
10 结果分析及算法评价 24
10.1结果分析 24
10.2算法评价 25
11 设计体会和总结 25
12参考文献 25
1 问题描述。
1.1题目描述。
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在他之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开车场时必须按它停留的时间长短交纳费用。试用停车场编制按上述要求进行管理的模拟程序。
1.2任务要求。
1.2.1使用顺序栈模拟停车场,链队列模拟车场外的便道,实现车辆入栈、出栈、入队列、出队列、信息输出等功能。
1.2.2车辆信息有:车牌号、到达信息、到达时刻、离去信息、离去时刻等;
1.2.3输出的信息有:如果是到达的车辆,输出其在停车场中或便道上的位置;
1.2.4如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。
2 设计思想及其目的。
2.1设计思想。
此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场内为其让路的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。
2.2设计目的。
1 通过课程设计,加深对《数据结构》这一课程所学内容的进一步理解与巩固。
2 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
3 通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
4 通过课程设计,训练c程序调试能力,能将一个中小型各级组织系统联调通过。
5 通过课程设计,开发一个中小型系统,掌握系统研发全过程。
6 通话课程设计,培养分析问题、解决实际问题的能力。
3 系统具备的功能。
3.1 简体中文控制台界面。
程序用来实现对停车场内车辆的管理,整个操作界面为中文,更加符合人性化的标准,3.2 到达信息。
当车辆到达时,能够记录到达车辆的号码,记录到达时间。安排停车位置。如果车道满了,就停留在便道上。
3.3 离开信息。
当车辆离开时,统计其停留时间,记录其停车费用。
3.4 查询信息。
进入查询界面,可以查询目前车长信息,和变到信息。
4系统流程图。
5 主函数、子程序调用关系。
6 主要算法实现及其基本操作
6.1此停车场管理系统,主要分为以下若干模块:
首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户使用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内停放车辆的信息以及退出程序这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。
最后,从调鼐的这四个函数中回到主函数结束整个程序的运行。
6.2在以上各个模块中,各模块的伪码算法:
6.2.1栈的初始化:
void initstack(seqstackcar *s) /初始化栈*/
int i;
s->top=0;
for(i=0;i<=max;i++)
s->stack[s->top]=null;
6.2.2链队列的初始化:
int initqueue(linkqueuecar *q) /初始化队列*/
q->head=(queuenode *)malloc(sizeof(queuenode));
if(q->head!=null)
q->head->next=null;
q->rear=q->head;
return(1);
elsereturn(-1);
6.2.3车辆到达时的算法:
int arrival(seqstackcar *enter,linkqueuecar *w) /车辆到达*/
else车场已满,车进便道*/
printf("\t\t\t停车场已满该车辆需在便道上等待!")
t=(queuenode *)malloc(sizeof(queuenode));
t->data=p;
t->next=null;
w->rear->next=t;
w->rear=t;
return(1);
6.2.4车辆离开时的算法:
void le**e(seqstackcar *enter,seqstackcar *temp,linkqueuecar *w) /车辆离开*/
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...