程序设计_停车场管理系统

合集下载

停车场管理系统程序设计书

停车场管理系统程序设计书

停车场管理系统程序设计书一、程序设计目标1、通过本次课设进一步的了解栈和队列等有关概念。

掌握栈和队列的建立,掌握栈和队列的基本操作,深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。

2、复习巩固C语言知识。

通过C语言课程设计,使我们了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,更加了解C语言的好处和其可用性。

进一步加深对C语言、数据结构、离散数学等基础技能的理解和掌握。

3、掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。

为后续各门计算机课程的学习和毕业设计打下坚实基础。

4、掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!让我们有一个既动手又动脑,独立实践的机会,锻炼我们的分析解决实际问题的能力。

同时增加了同学之间的团队合作精神!更加体会到工作中团队合作的重要性和必要性!二、问题描述※按照题目要求,我们把程序分为三个模块a.车辆到达模块:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待。

b.车辆离开模块:一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。

停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。

c.显示模块:当需要列表显示时,系统判断输入值(1-3),如果输入1,则调用显示车场列表,如果输入2,则调用显示便道信息,如果输入3,则返回主菜单。

三、需求分析这个程序的关键是车辆的进站和出站操作,以及车辆的通道之间的相互关系。

停车场管理系统python课程设计

停车场管理系统python课程设计

停车场管理系统python课程设计随着社会的发展和技术的进步,信息系统的综合运用已经成为现代社会中信息技术运用的主要内容。

特别是在停车场管理方面,现代停车场管理系统可以有效地管理停车场,实现停车场的高效运作。

知识产权管理和维护,促进智能停车场的综合发展。

为了更好地建立和维护起停车场管理系统,通过Python课程设计,可以充分发挥Python的优势,更好地构建停车场管理系统。

一、关于停车场管理系统停车场管理系统是集汽车进入和离开停车场、车辆出入场管理、停车场费用日志管理、车辆违章处理、车辆状态检测与维护等功能于一体的一种自动化管理系统。

管理系统是停车场的脊梁,其基本任务是实现停车场的运行的安全、高效、准确。

停车场管理系统基于网络信息技术,实现线上和线下的车辆信息管理,进行数据交互,自动实现车辆入场、出场和管理,使得停车场的运行更加高效专业。

二、Python在停车场管理系统中的应用Python是一种面向对象的、高级的程序设计语言,广泛应用于各种不同的编程领域。

它拥有强大的科学计算、数据挖掘和机器学习等功能,因此可以用来构建停车场管理系统。

Python语言拥有多种开发工具和库,例如:Tkinter、wxPython、PyQt等,可以借助这些工具和库,构建出具有用户友好界面的停车场管理系统。

此外,Python还具有数据分析和处理的强大功能,可以更好地处理各种数据,从而改善停车场的运行状况,实现精确的数据管理。

除此之外,Python还能够通过OpenCV等技术,实现自动化的图像识别,帮助停车场管理者更快速地监控车辆的进出,从而提高入场率及出场的效率。

三、停车场管理系统Python课程设计(1)环境准备由于使用Python开发停车场管理系统,因此先要配置Python 开发环境,推荐使用最新版本的Python,以及各种库和工具,例如:OpenCV, Tkinter,wxPython,PyQt等。

(2)需求分析停车场管理系统需要完成汽车出入场、车辆出入场管理、停车场费用日志管理、车辆违章处理、车辆状态检测与维修等功能,因此需要对这些功能进行有效的分析,制定详细的功能文档,可以包括:各个功能模块的功能介绍、功能模块之间的流程图等等。

停车场管理系统设计方案(7篇)

停车场管理系统设计方案(7篇)

停车场管理系统设计方案停车场管理系统设计方案(7篇)为了确保事情或工作有序有效开展,就需要我们事先制定方案,方案指的是为某一次行动所制定的计划类文书。

制定方案需要注意哪些问题呢?以下是小编为大家整理的停车场管理系统设计方案,希望对大家有所帮助。

停车场管理系统设计方案1对于本公司的车辆和外来车车辆存放、保管、放行等具体管理如下:1、进入本公司停车场的车辆须具备一切有效证件,包括行驶证、保险单等,车辆号牌应与行驶证相符,待办车辆应与待办证明相符。

2、进入停车场的司机,须按进出场各种程序、并按指定的车位停放。

3、车辆停放后,司机配合车管员做好相应的登记记录,并锁好车门窗,带走贵重物品,本公司没有帮司机保管物品的义务。

4、进场车辆严禁在公司内加油、修车、试刹车,禁止任何人在公司场内学习驾驶车辆。

5、进入本公司停车场的车辆和司机要保持场内清洁,禁止在场内乱丢垃圾与弃置杂物,禁止在场内吸烟。

6、进入公司停车场司机必须遵守安全防火规定,严禁载有易燃易爆、剧毒等危险品德车辆进入。

7、禁止超过停车场限高的车辆、集装箱车以及漏油、漏水等病车进入停车场。

8、进入本公司停车场车辆如有不服从车管员指挥,造车本身车辆受损时,后果自负。

摩托车、自行车临保管理:1、摩托车自行车需停到指定停放点停放。

2、禁止车主在停车场内洗清、修理摩托车。

3、本公司不收取停车费用,因此如有遗失等概不负责。

停车场管理系统设计方案21、对小区的业主、使用人和单位的车辆进行详细的登记,并建立车辆档案(车辆型号、车牌号码、颜色等),对已登记备案的车辆发给小区出入通行证。

2、为业主临时停车提供方便,小区设有地面停车场,并采取按次收费办法。

3、长期使用停车泊位的业主、使用人和单位,可到小区物业服务处办理停车泊位租赁手续。

4、对业主、使用人已租赁的泊位,小区负责做出相应控制,确保停车方便。

5、各种车辆不得在小区道路上随意停放,临时进入小区的机动车应在指定地点停放,严禁车辆在道路交叉口停放。

停车场管理系统设计方案通用12篇

停车场管理系统设计方案通用12篇

停车场管理系统设计方案停车场管理系统设计方案通用12篇为了确保工作或事情能有条不紊地开展,就不得不需要事先制定方案,方案属于计划类文书的一种。

那么应当如何制定方案呢?下面是小编为大家收集的停车场管理系统设计方案,供大家参考借鉴,希望可以帮助到有需要的朋友。

停车场管理系统设计方案1为进一步提升停车场管理质量,建立良好的车辆停放秩序,保障车辆停放安全,交通畅顺,出入有序,结合实际情况,现制订万达停车场外包经营管理方案。

一、车场车位情况总共有车位453个,其中地下停车场145个。

生活区固定停车位98个,员工区固定停车位180个,露天临时停车位30个。

生活区业主、职工车辆大约330辆。

二、车场存在的问题1、随着娱乐业的快速发展,游客逐步增加,加上生活区业主、就职人员的车辆也急剧增多,而停车位有限,导致供需矛盾。

2、由于停车位有限,道路狭窄,车辆进出不畅通,影响交通,加上场地分散管理难度大,不少车主见缝插针,造成车辆停放不规范,严重影响了环境和交通秩序。

3、社会车辆、就职人员车辆、游客人员车辆未实施差别化停车收费。

导致少数社会车辆长时间停放,严重影响车位的周转。

三、停车场管理解决办法1、对主干道、车场车位、道路交通标志重新规划。

将东面主干道改为双向线(改双向车辆行驶和1.5米宽人行道),西侧主干线改为单向线(只出不进)。

2、因周边无大型停放场,为了缓解万达停车难的问题,建议在现有停车位的基础上适当增加机械车库,解决车位少的问题。

3、为了提高车位周转率,实施差别化停车收费。

按二类停车收费标准进行收费,具体收费标准以物价部门批复为准。

对游客游玩的车辆,凭公司当天有关凭证(当天证明等),按现收费标准收费。

4、参照兄弟单位做法,能否调整员工、生活区住户车辆停放月保费。

5、为了进一步完善车场停车场安全管理,对重点路口、路段和高峰时段实行定岗、定人管理(正门道闸、北门道闸、地下停车场、单车停放点、路面等岗位,安排人员24小时值班。

C语言综合程序设计停车场管理系统.doc

C语言综合程序设计停车场管理系统.doc

综合性程序设计报告设计题目:____停车场管理系统___________指导教师: _______________班级: _____________学号: _______________设计者: _______________成绩: _______________设计时间: 年月日停车场管理系统目录1.题目描述2.功能模块分解及说明3.数据库设计及说明4.界面说明5.主要算法说明6.代码清单及注释7.设计测试说明8.设计体会停车场管理系统1.题目描述停车场的基本概述:用于利用计算机实现停车场的管理,包括车位调度,停车记费。

车位记录,收费管理与计算。

停车场的主要功能:1.车位调度。

2.停车时间与费用的计算。

3.车位记录。

2.功能模块分解及说明根据题目要求,可以用结构体实现,在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。

车辆离开要计时计费。

另外,每天开始时,停车场要初始化。

所以,这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。

○1菜单函数:main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。

即main()函数写为如下:void main()/*主函数*/{menu();/*菜单函数*/}void menu(){int n,w;do{puts("\t\t**************MENU**************\n\n");puts("\t\t\t 1.初始化");puts("\t\t\t 2.有车进入");puts("\t\t\t 3.有车离开");puts("\t\t\t 4.退出");puts("\n\n\t\t*********************************\n");printf("Please choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:chushi();break; /*初始化函数*/case 2:jinru();break; /*车辆进入函数*/case 3:likai();break; /*车辆离开函数*/case 4:exit(0); /*退出*/}}○2车道信息该模块是将每一天开始的停车场内和便道车位清零。

C语言程序设计实习报告-停车场管理系统

C语言程序设计实习报告-停车场管理系统

C语言课程设计实习报告姓名:成帅安学号:20141002605院(系):工程学院专业:土木工程2016年6 月2016.6 中国地质大学C语言课程设计 1 第一章停车场管理系统§1.1题目描述1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。

2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。

即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。

3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。

4、收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。

(停车费用可设置一个变量进行保存),同时从文件"car.dat"中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。

按用户的选择来判断是否要输出停车收费的总计。

5、输出停车场中全部车辆的信息。

6、退出系统。

§1.2算法设计1、需求分析:车辆信息用文件储存,提供文件的输入输出操作;当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;用键盘式菜单实现功能选择。

2、总体设计思路:整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。

另外车辆停放信息涉及到从car.dat中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。

整体模块图如下:23、各子程序设计如下:(1)使用全局变量数组,用一个二维数组实现停车场车位的信息,int cars[12][4];2016.6 中国地质大学C语言课程设计 3 (2)通过读取car.dat的数据,对程序初始化。

C程序设计-停车场管理系统(流程设计图)

C程序设计-停车场管理系统(流程设计图)

3 2
N
Y
是否继续
N
退出程序 退出程序
主菜单
主菜单
Y
退出程
主菜单 出站模块流程图
停车场管理 1
主菜单
浏览、显示信息
入站
出站
退站
系统功能模块图
主函数
主菜单
主函数流程图
显示一系列功能选项
输入 n 判断 n 是否为 0~4
N
Y 根据 n 的值调用其他功能模块函数 主菜单模块流程图
浏览、显示模块
从文件中读取站内车辆信息
显示所读信息
从文件中读取便道停车信
显示所读信息
是否继续
N
Y
返回主菜单
退出程序
查询、显示模块程图
入站模块
从文件中读出站内停车信息
Y
记录空位信息
查询站内是否有空位
N
从文件中读出便道停车信息
车辆入站,记录信息
查询便道是否有空位
将信息存入文件
记录空位信息
是否继续
Y
是否继续
N
N
车辆入站,记录信息
主菜单
Y
主菜单 Y
退出 退出程序
将信息存入文件
程序
是否继续
N
Y
主菜单 入站模块流程图
退出程序
出站模块
输入车辆车牌
从文件中读取站内车辆信息
查询该车所在的位
Y
输出该车的信息,安排出站
该车是否在站内
N
从文件中读取便道停车信息
安排该车出站,更新站内信息
查询该车所在的位
从文件中读取便道停车信息 该车是否在便道内
N
便道内是否有 车
输出该车的信息,安排出站

C程序课程设计停车场管理系统

C程序课程设计停车场管理系统

XXXXXXC程序设计课程设计说明书设计(论文)题目:停车场管理系统所在院:信息工程学院专业班级: 14通信工程2班学生姓名:学号:201451032指导教师:XXX2016年3月7日一、问题描述某停车场有20车位(1-20号),车辆信息包括:车位号,车牌号,进入时间,离开时间,计费(按每天20元收费)。

编程实现如下菜单驱动的停车场管理系统:(1)查找空车位并显示车位号。

(2)车辆进入(判断有没有空车位,如果有,允许车辆进入,同时记录车位号,车牌号及辆进入时间)。

(3)查找车辆并显示车辆信息。

(4)车辆离开(按照车位号查找车辆,如果在车位,计费,同时让车辆离开)。

(5)显示所有在位车辆信息。

二、设计要求1. 界面清晰,美观大方。

2. 要求使用菜单的形式描述功能项,菜单设计美观大方、实用,可仿照课程说明书模板或自行设计。

3. 模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现。

4. 程序以缩进格式书写,要求清晰、易懂。

5. 各功能模块要求必须有准确描述函数功能的注释,重要语句最好也加上注释,以更好地让读者理解。

6. 要求对2-3个重要功能模块进行描述。

7. 课程设计题目选择要求一个班最多有两人可选择同一题目,但要求不得抄袭,最终每个人(即使题目相同)内容都是独立的。

8. 课程设计至少包含5-10个功能模块,若题目中不够5-10个功能项,请自行设计功能项(5-10个功能项数目不同,得分也不同)。

9. 可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。

10. 要求利用结构化程序设计方法以及C的编程思想来完成系统的设计。

11. 编辑平台选用Microsoft Visual C++ 6.0。

三、分析与实现本程序采用模块化设计,主函数清晰、明了,各功能分别在不同模块中实现。

共有七个功能模块,每个功能模块以函数的形式表示,实现了有关停车场管理的七项功能。

停车场系统程序设计总结1

停车场系统程序设计总结1

停车场系统程序设计总结1在停车场系统的设计过程中,我们首先需要明确需求,然后进行系统设计和编码实现。

本文将围绕停车场入场、停车和出场的流程展开讨论,分别介绍每个环节的设计和实现细节。

1. 入场流程设计在车辆进入停车场时,需要进行车辆信息登记,为车辆分配合适的停车位,并记录入场时间。

在系统设计中,我们可以创建一个类似车辆信息管理系统的模块,用于登记车辆信息并生成唯一的入场编号。

在编码实现中,可以使用数据库存储车辆信息,并为每个车辆分配一个唯一的入场编号。

同时,可以设计一个算法用于寻找合适的停车位,例如最先进入、距离出口最近等。

2. 停车流程设计一旦车辆进入停车场,车辆需要停放在合适的停车位上。

停车位可以使用数组或链表等数据结构进行管理,每个停车位可以设置一个布尔值来表示是否已经停车。

在编码实现中,可以使用数组来表示停车位状态,每个数组元素表示一个停车位的状态。

当有车辆入场时,可以遍历数组找到一个空闲的停车位,并将其状态设置为已占用。

然后,将车辆信息和停车位信息关联起来,以便出场时可以根据车牌号快速找到对应的停车位。

3. 出场流程设计当车辆需要出场时,需要进行费用计算,并记录出场时间。

在系统设计中,可以设计一个收费模块,根据停车时间和收费标准计算出应收费用。

在编码实现中,可以通过车牌号快速找到对应的停车位和入场时间,并计算停车时长。

然后,根据收费标准计算应收费用。

为了提高系统的效率,可以将收费标准预先存储在数据库中,并在需要计算费用时从数据库中读取。

4. 系统优化为了提高系统的性能,可以考虑一些系统优化措施。

例如,可以使用缓存技术提高数据查询的效率,将常用的数据存储在内存中,减少对数据库的访问次数。

另外,可以使用多线程技术处理并发请求,提高系统的并发能力。

此外,还可以增加一些额外的功能,如停车位实时监控、车辆定位等。

停车位实时监控可以通过传感器或摄像头等设备实现,用于实时监测停车位的占用情况。

车辆定位可以使用GPS等技术,方便车主快速找到自己停放的位置。

停车场管理系统程序

停车场管理系统程序

停车场管理系统程序一、引言停车场管理系统程序是一种用于管理和监控停车场运营的软件系统。

该系统旨在提供便捷的停车服务,优化停车场资源利用率,并提高停车场管理效率。

本文将详细介绍停车场管理系统程序的功能、架构、流程以及相关技术实现。

二、功能需求1. 车辆进出管理:记录车辆的进入和离开时间,生成停车记录,并实时更新车位状态。

2. 车位管理:实时监测和显示车位的占用情况,并提供车位预约功能。

3. 收费管理:根据停车时长和车型自动计算停车费用,并提供多种支付方式。

4. 用户管理:提供用户注册、登录、个人信息管理等功能,方便用户使用停车场服务。

5. 数据统计与分析:收集并统计停车场各项数据,如车流量、收入情况等,生成报表以供管理者分析和决策。

三、系统架构停车场管理系统程序采用分层架构,包括以下几个模块:1. 前端展示层:提供用户界面,包括车位状态显示、停车记录查询、用户登录等功能。

2. 后端服务层:处理前端请求,包括车辆进出管理、收费计算、数据统计等。

3. 数据库层:存储停车场相关数据,包括车辆信息、停车记录、用户信息等。

4. 支付接口层:与第三方支付平台对接,实现支付功能。

5. 硬件设备层:与停车场硬件设备(如车牌识别仪、摄像头)进行通信,获取车辆信息。

四、系统流程1. 车辆进入流程:a. 车辆驶入停车场,车牌识别仪读取车牌信息。

b. 系统根据车牌信息查询车辆是否已经在停车场内,若未在停车场内则生成停车记录。

c. 车辆进入成功,系统更新车位状态并记录进入时间。

2. 车辆离开流程:a. 车辆驶离停车场,车牌识别仪读取车牌信息。

b. 系统根据车牌信息查询对应的停车记录,并计算停车时长和费用。

c. 车辆离开成功,系统更新车位状态并记录离开时间。

3. 用户预约车位流程:a. 用户登录系统,选择预约车位功能。

b. 系统显示当前可预约车位,并提供预约时间选择。

c. 用户选择车位和预约时间,系统生成预约记录。

4. 收费流程:a. 系统根据停车时长和车型计算停车费用。

智能停车场管理系统毕业设计

智能停车场管理系统毕业设计

智能停车场管理系统毕业设计一、引言随着城市化进程的加速和汽车保有量的不断增加,停车场的管理问题日益凸显。

传统的停车场管理方式效率低下、容易出错,已经无法满足现代社会的需求。

因此,开发一款智能停车场管理系统具有重要的现实意义。

二、系统需求分析(一)功能需求1、车辆进出管理能够准确识别车辆的牌照信息,实现快速自动抬杆放行。

2、车位管理实时监测车位的使用情况,为车主提供准确的车位引导。

3、计费管理根据车辆的停放时间和收费标准,自动计算停车费用。

4、数据统计与报表生成对停车场的运营数据进行统计分析,生成各类报表,为管理决策提供依据。

(二)性能需求1、响应速度快保证车辆进出和系统操作的响应时间在合理范围内,避免出现长时间等待的情况。

2、准确性高车辆识别、计费等关键环节的准确性要达到较高水平,减少错误发生。

3、稳定性强系统能够长时间稳定运行,具备容错和恢复能力,应对突发情况。

(三)用户需求1、车主需求提供便捷的停车体验,包括快速找到车位、清晰的计费信息等。

2、管理人员需求方便进行系统管理和维护,能够实时掌握停车场的运营情况。

三、系统设计(一)总体架构设计系统采用分层架构,包括感知层、传输层、数据层、应用层。

感知层通过车牌识别摄像机、车位传感器等设备采集数据;传输层负责将数据传输至数据层;数据层对数据进行存储和处理;应用层为用户提供操作界面和服务。

(二)硬件设计1、车牌识别摄像机选用高分辨率、高识别率的摄像机,确保在各种光照条件下都能准确识别车牌。

2、车位传感器采用地磁传感器或超声波传感器,实时监测车位状态。

3、道闸系统选用快速、稳定的道闸设备,实现车辆的进出控制。

(三)软件设计1、数据库设计建立合理的数据库结构,存储车辆信息、车位信息、计费信息等。

2、应用程序设计开发用户界面友好、功能齐全的应用程序,包括车辆进出管理模块、车位管理模块、计费管理模块、数据统计模块等。

四、系统实现(一)车牌识别技术实现采用深度学习算法对车牌进行识别,通过大量的样本训练提高识别准确率。

停车场管理系统python课程设计

停车场管理系统python课程设计

停车场管理系统python课程设计随着经济的发展和科技的进步,停车场管理系统已经成为一种必要的企业管理形式。

有了它,可以有效地完成汽车的停放,并对汽车的过程和状态进行全面的监控,以利于企业管理汽车停放设施。

本文将介绍停车场管理系统的使用python语言进行的课程设计。

首先,本课程设计的项目背景是要求停车场管理系统,该系统将具有以下具体功能:(1)汽车信息管理:可以对停车场内车辆的信息进行管理,包括汽车牌照、车辆类型、费用等;(2)车辆信息分析:可以对车辆的停放情况、停放时间等信息进行统计分析;(3)入口和出口管理:采用移动传感器或物联网技术进行人员和车辆出入记录;(4)费用收取:可以根据车辆类型进行合理收费;(5)车辆停放预定:可以根据预定时间进行相应车辆停放规划;(6)停车次数限制:可以根据限行时段限制车辆停放次数。

为了完成该课程设计,需要使用python语言支持的程序设计方法来实现。

Python语言作为一种流行的面向对象的脚本语言,具有易学、易用、高效、安全和灵活等特点,可以快速编写出相应的代码,大大提高了开发效率。

所以,本课程设计的程序代码将采用python 语言进行编写,并采用经典的软件工程方法设计。

首先,在设计阶段,需要分析并确定系统的总体功能,定义程序的结构,分析程序的模块功能,排列模块之间的关系,设计相应的架构,编写出具体的程序代码。

具体而言,在系统设计阶段,要分析和确定功能职能,建立系统的基本结构,编写出面向对象的程序代码,并设计出相应的界面、菜单和功能模块,以便于用户操作和使用。

然后,在开发阶段,根据系统设计,编写出相应的程序代码,编译成可执行文件,然后进行添加各种测试数据,再经过调试和系统测试,确保程序可以正常运行和测试的正确性,使其能够满足系统的需要和功能。

最后,在运行阶段,可以按照程序要求进行实际的操作,进行功能的仿真和试验,检验程序的正确性和可靠性,确保能够正常按照用户的要求完成系统的功能,使用户能够辅助企业进行更加有效的管理。

大学-C语言-停车场管理系统-设计c语言课程设计-(含调试图)

大学-C语言-停车场管理系统-设计c语言课程设计-(含调试图)

Xxxxx大学xxxxxxxxxxx系20xx-20xx学年第一学期《C程序设计》课程设计题目名称:停车场管理系统设计姓名:学号:班级:指导教师:编写日期: 20 年1月5日—20 年1月31日成绩:目录(一)需求分析 (3)1-1停车 (3)1-2取车 (3)1-3功能的选择 (3)(二)总体设计(程序设计组成框图) (3)2-1停车模块 (3)2-2取车模块 (3)2-3车辆信息浏览模块 (4)2-4程序设计组成框图 (4)(三)详细设计 (4)3-1停车场分析 (4)3-2停车操作 (4)3-3收费管理(取车) (5)3-4车辆信息 (5)3-5退出系统 (5)(四)程序运行结果测试与分析 (5)(五)结论与心得 (7)(六)参考文献 (7)(七)致谢 (8)附录: (8)(一)需求分析1-1停车车辆信息要用文件存储,因而要提供文件的输入输出操作。

1-2取车当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作。

1-3功能的选择提供现实操作和用键盘式菜单实现功能选择。

(二)总体设计(程序设计组成框图)2-1停车模块对车辆信息赋值,分配前检查车位使用情况(按行查找park 数组,元素为0 表示车位为空,则允许分配)。

把新添加的车辆信息以追加的方式写入汽车信息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加5)。

2-2取车模块计算费用(停车费用=停车时间*0.2 元),从文件中删除该车信息。

并将该车位对应的二位数组变量设为0,表示该车位可用。

输出提示信息:是否输出停车费用总计?(Y/N)如果选择Y,则输出停车费用,否则回到上级菜单。

2-3车辆信息浏览模块输出车辆信息文件中的记录。

另外,用户按Esc 键退出系统。

2-4程序设计组成框图(三)详细设计3-1停车场分析有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层。

( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号 ) 假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中。

程序设计_停车场管理系统汇总

程序设计_停车场管理系统汇总

程序设计报告(2014 / 2015 学年第1学期)题目:停车场管理系统专业___________________ 组长学号姓名组员学号姓名指导教师_________________________ 指导单位__________________________ 日期 ___________________停车场管理系统一、课题内容和要求停车场管理是一个计时收费系统,同时也是一个能对车位进行管理的系统,最基本的功能是实现停车、取车、查询以及修改停车费费率等功能。

同时,为了使用的方便和安全的考虑设计了管理员能对密码进行修改的功能。

在停车的功能中采用了文件流的形式,对车位、车牌号、车型都进行了保存,以便于查询功能的实现,除此之外,也是为了能够实现在取车模块中利用输入的车牌号自动计算出停车的费用。

停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。

取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上,可以随时根据车牌查询是否入库。

可以随时根据车位查询该位置上的相关信息。

本系统对不同车型的费率给出了默认值,管理员可以根据实际需要对费率进行修改。

功能要求:用C/C++设计一个程序实现停车场管理系统,要求如下:(1) 管理人员根据口令进入系统;(2) 管理人员有权限对登陆账号和密码进行修改;(3) 管理车位信息(车位编号,状态)和每小时的收费费率;(4) 停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间) ;如果车位已满要给出提示;(5) 取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。

(6) 管理人员可以根据需要随时更改每小时的收费费率。

、需求分析停车场管理系统的功能框架图如图1所示图1功能框架图(1) 系统主要包括了管理员登陆、停车操作、取车操作、信息查询、费率修改这五大模 块,每个模块都用用相应的函数来实现这些功能。

java课程设计停车场管理系统

java课程设计停车场管理系统

java课程设计停车场管理系统停车场管理系统是一种方便车主停放和管理车辆的软件系统。

它可以帮助停车场实现车辆的有序停放、计时计费、车辆信息管理等功能。

本文将以Java课程设计停车场管理系统为题,从人类视角进行创作,以使文章富有情感,并给读者一种仿佛真人在叙述的感觉。

第一部分:引言停车场是城市交通管理中不可缺少的一部分,随着汽车数量的不断增加,停车难题也日益突出。

为了解决这一问题,我们设计了一款停车场管理系统。

该系统基于Java语言开发,旨在提供便捷的停车服务,使车主能够轻松管理自己的车辆。

第二部分:系统功能我们的停车场管理系统具有以下主要功能:1. 车辆进入管理:车主通过系统的入口处,将车辆信息录入系统,包括车牌号、车辆类型等。

系统会自动分配一个停车位给该车辆,并记录进入时间。

2. 车辆离开管理:当车主准备离开停车场时,系统会根据车辆信息自动计算停车费用,并提供付款方式,如现金、刷卡等。

车主缴费后,系统会自动更新车辆状态,并记录离开时间。

3. 车辆信息管理:系统可以对车辆信息进行管理,包括查询、修改、删除等功能。

车主可以通过系统查询自己的停车记录、费用等信息。

4. 停车场管理:系统可以实时监控停车场的停车位情况,并提供可用停车位数量的查询功能。

当停车位不足时,系统会提醒车主选择其他停车场。

第三部分:系统设计我们的停车场管理系统采用了面向对象的设计思想,将系统划分为多个模块进行开发。

每个模块负责不同的功能,通过接口进行交互。

系统使用数据库来存储和管理车辆信息和停车记录。

在用户界面设计上,我们注重简洁、直观的操作,以提供良好的用户体验。

第四部分:系统的优势相比传统的停车管理方式,我们的停车场管理系统具有以下优势:1. 提供便捷的停车服务:车主只需通过系统录入车辆信息,系统会自动分配停车位,并提供自动计费和付款功能,节省了车主的时间和精力。

2. 提供实时的停车位信息:系统可以实时监控停车场的停车位情况,车主可以提前查询可用停车位数量,避免因停车位不足而浪费时间。

停车场管理系统 程序设计

停车场管理系统  程序设计

一、停车场管理系统1.1设计要求1。

1.1问题描述设计一个停车场管理系统,模拟停车场的运作,此程序具有以下功能:①汽车到达,则显示汽车在停车场内或便道上的停车位置。

②若车离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。

1.1。

2基本要求①要求以栈模拟停车场,以队列模拟车场外地便道,按照从终端读入的输入数据序列进行模拟管理。

②求处理的数据元素包括三个数据项:汽车“到达”或“离去"信息.汽车牌照号码以及离去的时刻。

③要求栈以顺序结构实现,队列以链表实现。

1。

1.3测试数据自行设计一组在停车场上停车的数据和便道上停车的数据.1。

1.4实现提示该停车场能容纳车辆的数量,便道上的停车数量。

车辆到达对应栈的入栈操作,车辆离开对应栈的出栈操作。

1。

2设计代码及注释#include<iostream>#include<time.h〉#include<ctime〉#include〈dos。

h〉#include<windows.h>using namespace std;#define PASS 20#define POT 20struct passLot//便道队列数据结构{int num;//车位号time_t timep;//停车时间int carNum;//停车的车牌号码};struct potLot//停车场栈数据结构{int num;time_t timep;int carNum;};void printLine()//打印下划线(作为主界面图表的框架){cout〈<"\t\t\t___________________________________”<〈endl;return;}void printStar()//打印星号{cout〈〈endl〈〈"\t\t******************************************************”<<endl;}class erroFull//停车位满时异常类{public:erroFull(){system("color 3c");}void ex(){cout〈<endl<〈"\t\t\t!!!停车场位已满!”〈〈endl;_sleep(2000);}~erroFull(){}};class erroEmp//停车位空时异常类{public:erroEmp(){system("color 3c”);}void ex(){cout<〈”!!!停车场位为空!”〈〈endl;_sleep(2000);}~erroEmp(){}};class parkingLot//停车场类{public:parkingLot(){passLot* pa;//便道停车位指针potLot* po;//停车场停车位指针flag=0;//用来记忆队列(便道)中停车的数量rear=front=0;//初始化队列头尾base=0;top=base;//初始化栈头尾int i=0;//初始化停车场和便道空间以及车位号for(;i〈POT;i++){pa=(passLot*)malloc(sizeof(passLot));a[i]=pa;a[i]-〉num=i+1;a[i]->carNum=0;po=(potLot*)malloc(sizeof(potLot));b[i]=po;b[i]->num=i+1;b[i]->carNum=0;}}~parkingLot(){cout〈〈”\t\t停车场数据已清空.”〈〈endl;}void passLG()//便道管理函数{try{if(flag==20) throw erroFull();//如果停车位已满,则抛出车位慢得异常情况system(”cls”);printStar();cout<<"\t\t\t\t您进入了便道停车界面”〈<endl;cout〈〈endl〈〈”\t\t\t便道停车场共有20个车位,现共停"<<flag<〈"个车位.”<〈endl<〈endl;cout<〈"\t\t\t请输入将要停车的号码:";cin>>a[rear]-〉carNum;a[rear]—>timep=time(NULL);cout<<endl<<"\t\t\t!!汽车停放在"〈<a[rear]-〉num〈<”车位成功,系统将在一秒后返回上层界面!!"<<endl;rear=(rear+1)%PASS;flag++;_sleep(1000);}catch(erroFull &err){err。

数据结构c语言版课程设计停车场管理系统

数据结构c语言版课程设计停车场管理系统

课程设计:停车场c语言版本的数据结构课程设计,规定用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include <stdio.h>//#include <stdlib.h> //malloc#include <time.h> //获取系统时间所用函数#include <conio.h> //getch()#include <windows.h> //设立光标信息mallco#define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0.05 /*每车每分钟收费值*/#define BASEPRICE 0.5 //基础停车费#define Esc 27 //退出系统#define Exit 3 //结束对话#define Stop 1 //停车#define Drive 2 //取车int jx=0,jy=32; //全局变量日记打印位置typedef struct{int hour;int minute;}Time,*PTime; /*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/Time arrtime; /*到达时刻或离区时刻*/}CarNode;typedef struct /*定义栈,模拟停车场*/{CarNode stack[MaxSize];int top;}SqStackCar;typedef struct node /*定义队列结点的类型*/{int num; /*车牌号*/struct node *next;}QueueNode;typedef struct /*定义队列,模拟便道*/{QueueNode *front,*rear;}LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printstop(int a,int num,int x0,int y0);void printleave(int a,int po,int num);/*初始化栈*/void InitSeqStack(SqStackCar *s){s->top=-1;}/* push入站函数*/int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈{if(s->top==MaxSize-1)return(0); //假如栈满,返回0 else{s->stack[++s->top]=x; //栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNode pop(SqStackCar *s){CarNode x;if(s->top<0){x.num=0;x.arrtime.hour=0;x.arrtime.minute=0;return(x); //假如栈空,返回空值}else{s->top--;return(s->stack[s->top+1]); //栈不空,返回栈顶元素}}/*初始化队列*/void InitLinkQueue(LinkQueueCar *q){q->front=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点,作头结点if(q->front!=NULL){q->rear=q->front;q->front->next=NULL;q->front->num=0; //头结点的num保存队列中数据元素的个数}}/*数据入队列*/void EnLinkQueue(LinkQueueCar *q,int x){QueueNode *p;p=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点p->num=x;p->next=NULL;q->rear->next=p; //新结点入队列q->rear=p;q->front->num++; //队列元素个数加1}/*数据出队列*/int DeLinkQueue(LinkQueueCar *q){QueueNode *p;int n;if(q->front==q->rear) //队空返回0return(0);else{p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q->front;n=p->num;free(p);q->front->num--;return(n); //返回出队的数据信息}}/********************* 车辆到达***************************/ //参数:停车栈停车队列车辆信息//返回值:空//功能:对传入的车辆进行入栈栈满则入队列void Arrive(SqStackCar *stop,LinkQueueCar *lq,CarNode x){int f;f=push(stop,x); //入栈if (f==0) //栈满{EnLinkQueue(lq,x.num); //入队printstop(1,lq->front->num,0,23);printlog(x.arrtime,x.num,1,'B',lq->front->num,0);qingping(0); printf("您的车停在便道%d号车位上\n",lq->front->num); //更新对话}else{printstop(0,stop->top+1,0,23);printlog(x.arrtime,x.num,1,'P',stop->top+1,0);qingping(0); printf("您的车停在停车场%d号车位上\n",stop->top+1); //更新对话}qingping(1); printf("按任意键继续");getch();}/************************** 车辆离开*************************************///参数:停车栈指针s1,暂存栈指针s2,停车队列指针p,车辆信息x//返回值:空//功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息void Leave(SqStackCar *s1,SqStackCar *s2,LinkQueueCar *p,CarNode x){double fee=0;int position=s1->top+1; //车辆所在车位int n,f=0;CarNode y;QueueNode *q;while((s1->top > -1)&&(f!=1)) //当栈不空且未找到x{y=pop(s1);if(y.num!=x.num){n=push(s2,y);position--;}elsef=1;}if(y.num==x.num) //找到x{gotoxy(33,17);printf("%d:%-2d",(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute) );fee=((x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute))*PRICE+BASEP RICE;gotoxy(48,17); printf("%2.1f元\n",fee);qingping(0); printf("确认您的车辆信息");qingping(1); printf("按任意键继续");getch();while(s2->top>-1){ y=pop(s2);f=push(s1,y);}n=DeLinkQueue(p);if(n!=0){y.num=n;y.arrtime=x.arrtime;f=push(s1,y);printleave(p->front->num+1,position,s1->top+1); //出栈动画ji队列成员入栈printlog(x.arrtime,x.num,0,'P',position,fee);printlog(y.arrtime,y.num,1,'P',s1->top+1,0);}else{printleave(0,position,s1->top+2);printlog(x.arrtime,x.num,0,'P',position,fee);}}else //若栈中无x{while(s2->top > -1) //还原栈{y=pop(s2);f=push(s1,y);}q=p->front;f=0;position=1;while(f==0&&q->next!=NULL) //当队不空且未找到xif(q->next->num!=x.num){q=q->next;position++;}else //找到x{q->next=q->next->next;p->front->num--;if(q->next==NULL)p->rear=p->front;gotoxy(33,17); printf("0:0");gotoxy(48,17); printf("0元");qingping(0); printf("您的车将离便道");qingping(1); printf("按任意键继续");getch();printleave(-1,position,p->front->num+1); //出队动画printlog(x.arrtime,x.num,0,'B',position,0);f=1;}if(f==0) //未找到x{qingping(0); printf("停车场和便道上均无您的车");qingping(1); printf("按任意键继续");getch();}}}/*获取系统时间*///返回PTime类型PTime get_time(){Time *t;t=new Time;time_t timer;struct tm *tblock;timer=time(NULL);tblock=localtime(&timer);t->minute=tblock->tm_min;t->hour=tblock->tm_hour;return t;}/*移动光标*///蒋光标移动到(x,y)点void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y+3;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }/*画图*///画出系统界面void panitPL(){gotoxy(20,4);printf("****************对话框****************");int x=18,y=6; //起始点int a[2][4]={2,0,0,1,-2,0,0,-1}; //方向for(int i=0;i<2 ;i++){for(int j=0; j<20; j++){x+=a[i][0]; y+=a[i][1];gotoxy(x,y);printf("═");}x+=a[i][0]; y+=a[i][1];gotoxy(x,y);if(i==0)printf("╗");elseprintf("╚");for(j=0; j<12; j++){x+=a[i][2]; y+=a[i][3];gotoxy(x,y);printf("║");}x+=a[i][2]; y+=a[i][3];gotoxy(x,y);if(i==0)printf("╝");elseprintf("╔");}gotoxy(22,8);printf("小王:");gotoxy(22,11);printf("顾客:");gotoxy(22,14); printf("*********** 停车信息***********");gotoxy(23,15); printf("车牌号:");gotoxy(42,15); printf("时间:");gotoxy(23,17); printf("停车时长:");gotoxy(42,17); printf("收费:");}/*清屏函数*///更新对话框前将原对话晴空void qingping(int a){if(a==0) //清空小王的对话{gotoxy(28,8); printf(" ");gotoxy(28,9); printf(" ");gotoxy(28,8);}else if(a==1) //清空顾客的对话{gotoxy(28,11); printf(" ");gotoxy(28,12); printf(" ");gotoxy(28,13); printf(" ");gotoxy(28,11);}else //清空车辆信息{gotoxy(31,15); printf(" ");gotoxy(48,15); printf(" ");gotoxy(33,17); printf(" ");gotoxy(48,17); printf(" ");gotoxy(31,15);}}//用上下键移动选择int getkey(){char c;int x=28,y=11;while(1){gotoxy(x,11); printf(" ");gotoxy(x,12); printf(" ");gotoxy(x,13); printf(" ");gotoxy(x,y); printf(">>");c=getch();if(c==13) return y-10; //enter键返回当前选项if(c!=-32)continue; //不是方向键进行下次循环c=getch();if(c==72) if(y>11) y--; //上if(c==80) if(y<13) y++; //下}}//输入车辆信息CarNode getcarInfo(){PTime T;CarNode x;qingping(0); printf("请输入您的车牌号\n");qingping(1); printf("在下面输入车辆信息");qingping(2);scanf("%d",&(x.num));T=get_time();x.arrtime=*T;gotoxy(48,15); printf("%d:%d",x.arrtime.hour,x.arrtime.minute);getch();return x;}//打印停车场void printcar(){gotoxy(0,20); //╔ ╗╝╚═║printf("═══════════════════════════════════════╗");printf(" 出场暂放区║ 1 2 3 4 5 ║");printf("---------------------------------------------------------------------- ║");printf(" 主车道║");printf("---------------------------------------------------------------------- ║");printf(" 12 11 10 9 8 7 6 5 4 3 2 1 ║");printf("═══════════════════════════════════╗ ║");printf(" ↑ ╔══════════════╝ ║");printf(" 便道停车区→ ║ 1 2 3 4 5 ║");printf(" ╚══════════════════╝");printf(" 停车场管理日记\n\n");printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) "); }//打印日记记录void printlog(Time t,int n,int io,char ab,int po,double f){jy++;gotoxy(jx,jy);// printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) ");if(io==0)printf("/ %2.1f",f);gotoxy(jx,jy);printf(" / %d / %c:%d",io,ab,po);gotoxy(jx,jy);printf(" %d:%d / %d",t.hour,t.minute,n);}void printstop(int a,int num,int x0,int y0){static char *car="【█】";// int x0=0,y0=23;int x=0,y=28;if(a==0){x=(num+6)*6;for(;x0<72;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}for(;y0<y;y0++){gotoxy(x0,y0); printf("%s",car); Sleep(100);gotoxy(x0,y0); printf(" ");}for(;x0>x;x0--){gotoxy(x0,y0); printf("%s",car); Sleep(50);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}else{x=(12-num)*6;y=y-3;for(;x0<x;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}}void printleave(int a,int po,int num){static char *car="【█】";int x0=0,y0=23;int x=0,y=28;int i;if(a==-1){x=(12-po)*6;y=y-3;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car);Sleep(100);if(12>num){gotoxy((12-num)*6,y);printf(" ");}gotoxy(x,y); printf("%s",car);for(;x>x0;x--){gotoxy(x,y-2); printf("%s",car); Sleep(30);gotoxy(x,y-2); printf(" ");}}else{i=num+1;for(;num>po;num--){x=(num+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>21;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(i-num+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}x=(po+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>23;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>0;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}num++;for(;i-num>0;num++){x=(i-num+6)*6; y=21;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y<28;y++){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(num-1+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}if(a>0){x=66;y=25;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car); Sleep(100);if(12>a){gotoxy((12-a)*6,y);printf(" ");}if(a>1){gotoxy(x,y); printf("%s",car);}printstop(0,i-1,x,y-2);}}}/************************************************************ main ********************************************************/int main(void){SqStackCar s1,s2; //停车栈和暂存栈LinkQueueCar p; //队列InitSeqStack(&s1);InitSeqStack(&s2);InitLinkQueue(&p);printf(" 停车场管理系统\n\n");printf("************************* 欢(=^_^=)迎***************************\n");printf(" 收费标准:基础费0.5元,每分钟收取0.05元,收费精确到0.1元\n");printf(" PS:车牌号由阿拉伯数字组成");panitPL();printcar(); gotoxy(0,-3);char c=0; //接受按键while(1) //按ESC退出系统{for(int i=2;i>-1 ;i--) //初始化对话框qingping(i);printf("按ESC退出系统,其它键开始对话");c=getch();if(c==Esc){qingping(0);break;}while(1){qingping(2);gotoxy(28,8); printf("欢迎来到停车场!我是管理员小王。

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

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

C语言课程设计实习报告目录一. 题目要求二. 需求分析三.总体设计四. 具体程序五. 上机操作及使用说明六. 存在问题与不足七. 学习心得停车场管理一. 题目要求1.设计一个停车场用长度为N的堆栈来模拟。

由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。

2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。

二. 需求分析根据题目要求首先设计一个堆栈,以堆栈来模拟停车场,又每辆汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素设计成汽车的车牌号。

当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。

这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。

当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。

另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。

由于时间不像汽车一样需要让道,可设计了一个顺序表来存放时间。

又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。

三. 总体设计四. 具体程序#include <stdio.h>#include <malloc.h> #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 elem[SIZE+1]; 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->elem[S->top].num=r->num;r->position=S->elem[S->top].position=S->top;S->elem[S->top].t.hour=r->t.hour;S->elem[S->top].t.min=r->t.min;}int IsEmpty(Stack* 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->elem[S->top].num;n->position=S->elem[S->top].position;n->t.hour=S->elem[S->top].t.hour;n->t.min=S->elem[S->top].t.min;return 1;}void InitQueue(LinkQueue *Q){ Q->front=(CQueueNode*)malloc(sizeof(CQueueNode)); if(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.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=NewNode;return 1;}else return 0;}{ 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(Stack *S){int tag;Car x;printf("停车场停车情况:\n");if(IsEmpty(S))printf("无车!");for(tag=S->top;S->top>0;S->top--)if(GetTop(S,&x))printf("车牌号%d,所在位置%d,到达/离开时间 %d:%d\n",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, 到达/离开时间 %d:%d",p->data.num,p->data.t.hour,p->data.t.min);}void TaM(Car *r,int h,int m){ if(m>r->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);}{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->elem[tag].num&&tag>0;tag--){ Push(S0,&S->elem[tag]);S->top--;}if(r->num==S->elem[tag].num){ TaM(r,S->elem[tag].t.hour,S->elem[tag].t.min);S->top--;for(;S0->top>0;S0->top--)Push(S,&S0->elem[S0->top]);if(S->top<SIZE && Q->front!=Q->rear){ DeleteQueue(Q,&x);Push(S,&x);}}else if(tag==0){ printf("未进入停车场应支付金额 0元!");for(;S0->top>0;S0->top--)Push(S,&S0->elem[S0->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 c[10];Car x;Stack S,S0;LinkQueue Q;InitStack(&S);InitStack(&S0);InitQueue(&Q);while(1){ print();scanf("%d",&m);switch(m){case 1:printf("\n请输入车牌号:");scanf("%d",&c[i].num);printf("\n请输入到达/离开时间:");scanf("%d:%d",&c[i].t.hour,&c[i].t.min); In(&S,&Q,&c[i]);i++;break;case 2:printf("\n请输入车牌号:");scanf("%d",&n);for(j=0;j<10;j++)if(n==c[j].num) break;printf("\n请输入到达/离开时间:");scanf("%d:%d",&c[j].t.hour,&c[j].t.min); Out(&S,&S0,&c[j],&Q); break;case 3: print1(&S);print2(&Q);break;case 4: flag=1; break;default:printf("\n输入错误,请输入 1,2,3 或4"); }if(flag)break;} return 0;}五. 上机操作及使用说明运行Microsoft Visual C++,进入运行状态:1.主菜单:根据页面提示,输入相应数字。

停车场管理系统程序设计

停车场管理系统程序设计

程序停车场管理系统( 2013 /2014 学年第 1学期)题目:停车场管理系统专业网络工程组长学号姓名组员学号姓名李洬翊 B12070319指导教师周剑指导单位软件教学中心日期 2013年11月 20 日停车场管理系统一、课题内容和要求(1) 管理人员根据口令进入系统;(2) 管理车位信息(车位编号,状态)和每分钟的收费费率;(3) 停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;(4) 取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。

二、需求分析停车场管理系统的功能框架图如图1所示。

图1 停车场管理系统功能框架图(1)管理员登陆:其实现是在设计程序时定义一个字符串数组作为密码,在管理员想通过主菜单界面登陆到管理系统的时候,系统要求管理员输入密码,将保存的密码和管理员输入的密码进行比较,如果一致则跳出密码登陆函数进入管理界面。

(2)车位信息:可查询当前时间车库的基本停车情况。

(3)车辆驶入:进入此系统后,输入当前时间和车牌号码,若有空位则停车成功,否则显示车库已满,自动返回上一层操作系统。

(4)车辆驶离:进入此系统后,依次输入车牌号码,停车时间,当前时间,若查找到所输入的车牌信息,则显示本次停车应付金额,并显示取车成功。

若无输入的车牌号码信息,则显示取车错误并返回上层操作系统。

(5)退出系统:当程序使用结束的时候,通过该项功能即可终止程序。

文档供参考,可复制、编制,期待您的好评与关注!............三、概要设计1.用户登录文档供参考,可复制、编制,期待您的好评与关注!NY2.信息查询3.主体程序四、源程序代码#include <iostream> #include <stdio.h> #include <string> #include <time.h> #include<fstream> using namespace std; class car {public: char no[9]; int pos; double fee; void putcar(); void takecar();}; class Time {public: int hour; int min;void getime();};int position[100]={0};//全局变量car carin[100];Time catime[100];int juge();int comp();void search_no();void search_pos();void main(){/////////////////////////////////////////////用户登录const char ha[10]="hahaha";//管理员用户名const char hb[10]="1234";//////管理员密码char cn[10],cm[10];int ci=0;while(1){cout<<"请输入管理员用户名:";cin>>cn;if(strcmp(ha,cn)){cout<<"输入错误!\n";ci++;if(ci==3)return;continue;}else{cout<<"请输入密码:";cin>>cm;}if(!strcmp(hb,cm))break;else{cout<<"密码错误!\n";ci++;if(ci==3)return;continue;}}////////////////////////////////////////////////主程序cout<<"请选择:"<<"\n\n\t◇◎◇◎◇◎◇◎◇◎◇◎◇◎◇◎"<<"\n\n\t◇1.停车操作◇"<<"\n\n\t◇2.取车操作◇"<<"\n\n\t◇3.查询信息◇"<<"\n\n\t◇4. 退出◇"<<"\n\n\t◇◎◇◎◇◎◇◎◇◎◇◎◇◎◇◎\n\n";ofstream outfile("车辆信息.txt",ios::app);if(! outfile){cerr<<"open error!"<<endl;exit(1);//ifstream infile("车辆信息.txt",ios::in);//if(! outfile)//{cerr<<"open error!"<<endl;//exit(1);}while(cin>>k){if(k==1){i=juge();cout<<"\t车牌号:";cin>>carin[i].no;carin[i].putcar();cout<<"请选择:"<<"\n\n\t◇◎◇◎◇◎◇◎◇◎◇◎◇◎◇◎"<<"\n\n\t◇1.停车操作◇"<<"\n\n\t◇2.取车操作◇"<<"\n\n\t◇3.查询信息◇"<<"\n\n\t◇4. 退出◇"<<"\n\n\t◇◎◇◎◇◎◇◎◇◎◇◎◇◎◇◎\n\n";string time1;time_t t;time(&t);time1=ctime(&t);cout<<time1;////////////////////////////////////导入系统时间outfile<<carin[i].no<<" "<<time1<<endl;/////////保存车辆信息。

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

程序设计报告( 2014 / 2015 学年第 1学期)题目:停车场管理系统专业组长学号姓名组员学号姓名指导教师指导单位日期分工停车场管理系统一、课题内容和要求停车场管理是一个计时收费系统,同时也是一个能对车位进行管理的系统,最基本的功能是实现停车、取车、查询以及修改停车费费率等功能。

同时,为了使用的方便和安全的考虑设计了管理员能对密码进行修改的功能。

在停车的功能中采用了文件流的形式,对车位、车牌号、车型都进行了保存,以便于查询功能的实现,除此之外,也是为了能够实现在取车模块中利用输入的车牌号自动计算出停车的费用。

停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。

取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上,可以随时根据车牌查询是否入库。

可以随时根据车位查询该位置上的相关信息。

本系统对不同车型的费率给出了默认值,管理员可以根据实际需要对费率进行修改。

功能要求:用C/C++设计一个程序实现停车场管理系统,要求如下:(1)管理人员根据口令进入系统;(2)管理人员有权限对登陆账号和密码进行修改;(3)管理车位信息(车位编号,状态)和每小时的收费费率;(4)停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;(5)取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。

(6)管理人员可以根据需要随时更改每小时的收费费率。

二、需求分析停车场管理系统的功能框架图如图1所示。

图1 功能框架图(1)系统主要包括了管理员登陆、停车操作、取车操作、信息查询、费率修改这五大模块,每个模块都用用相应的函数来实现这些功能。

(2)在管理员登陆模块中,设置了三次输入机会,用户名和密码事先用文档存储,供使用者进入系统;若管理员连续输入密码错误超过提示,则系统给出修改密码或者退出系统的提示,这些功能在函数名为loadin()的函数中实现。

(3)管理员登陆模块结束之后便到了系统的主要界面,选择操作1是停车模块。

在选择停车操作之后,系统能够实现“将第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示”这一功能用函数compare()和jugement()共同实现的。

进入停车模块后,还应选择不同的车型进行停车,这一过程会调用putcar()和gettime()函数,用来给出不同车型的费率和调用停车时的系统时间。

(4)通常选择了停车操作之后取车和查询功能才会有意义,所以取车和查询公共主要是使用了campare()函数,调用strcmp()字符串比较函数对输入的车牌号和停车时的车牌号进行比较,若相同,则返回该车位,达到取车和查询的作用。

(5)不同的停车场可以根据需要修改每种车型的车辆对应的费率。

这个功能在修改费率的模块中实现。

(6)根据不同的车型以及其停泊时间收费,间差乘以单价就是最后收费,其中取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上。

这个功能需要调用系统时间,因此在整个程序中包含了头文件后(#include<time.h>)利用结构这种数据类型来实现。

三、概要设计1. 主要结构体为了实现停车场管理系统的停车、取车、查询、修改功能,主要用一个while循环,通过输入的数字选择相应的操作。

同时为了实现每个模块的功能,引用一些相应的子函数。

下面是主要结构体的流程图:图2 主要结构体流程图2. 主要函数流程图(1)管理员登陆模块管理员登陆模块是用函数loadin()来实现的,在loadin()函数中对账号和密码都有三次的输入机会,用变量ai来记录输入的次数,当ai>=3时,进入修改密码的界面。

在修改密码模块了,用strcpy()函数将输入的字符串adpassword1赋值给密码adpassword(adpassword为全局变量,所以才能起到修改的作用)。

修改完成密码后,在loadin()函数中再次调用loadin()函数,这样在修改密码后就能重新回到登陆界面进行登陆,大体程序流程图如下:图3 管理员登陆模块流程图(2)比较函数compare()在停车场管理系统的取车、查询模块中都需要用到输入“车牌号判断停车场中是否有该车”这个功能,而compare()函数就是用来实现这个功能的。

其大概思路是,通过输入的字符串与系统储存有的字符串进行比较,如果字符串相等就返回一个0,如果不相等就返回非0,而通过0和非0的控制,便能实现判断的功能,其流程图如下所示:图4 字符串比较函数流程图(3)搜索空车位函数jugement()对于停车操作来说,需要在所有停车位中找到第一个空车位,并返回这个车位。

在该系统中,这个功能由函数jugement()来实现。

设int型变量j为车位编号,利用数字position[j]的值是否为1,来判断是车位是否为空(这里是将1视为有车,0为无车)。

图5 搜索空车位函数流程图在这个函数中还要注意:在用while循环对每个车位进行逐个判断的时候,j一定要小于停车场的总车位。

除此之外,返回第一个空车位表示将要在这个车位进行停车,因此要重新将position[j]的值置为1。

四、源程序代码#include <iostream>#include <string>#include <time.h>#include<fstream>using namespace std;class car{public:char no[10];int pos;double fee;void putcar();void takecar();void changefee();};class Time{public:int hour;int min;void getime();};char adpassword[10]="123456";char adname[10]="wcx";int i,poi;int position[50]={0};//全局变量car carin[50];Time catime[50];double Fee1=6.0, Fee2=5.0, Fee3=4.0 , Fee4=3.0 ;int jugement();int compare();void search_no();void search_position();void loadin();void main(){//---------------------------------------------管理员登陆模块---------------------------- loadin();//--------------------------------------------------登陆模块结束---------------------int k=0;cout<<""<<endl;cout<<"请选择:"<<"\n\n\t---------------------------"<<"\n\n\t●1.停车操作"<<"\n\n\t●2.取车操作"<<"\n\n\t●3.查询信息"<<"\n\n\t●4.修改车费"<<"\n\n\t●5.退出"<<"\n\n\t---------------------------\n\n";ofstream outfile("车辆信息.txt",ios::app);if(! outfile){cerr<<"open error!"<<endl;exit(1);}while(cin>>k){if(k==1){i=jugement();//--------------通过jugement()函数返回第一个空的车位i cout<<"-------------------------------------------------" <<endl;cout<<"\t请输入车牌号:";cin>>carin[i].no; //用户输入停在第i个车位的车牌号carin[i].putcar();cout<<"请选择:"<<"\n\n\t-----------------------------"<<"\n\n\t ●1.停车操作"<<"\n\n\t ●2.取车操作"<<"\n\n\t ●3.查询信息"<<"\n\n\t ●4.修改车费"<<"\n\n\t ●5.退出"<<"\n\n\t ----------------------------\n\n";string time1;time_t t;time(&t);time1=ctime(&t);cout<<time1;//---------------------------导入系统时间outfile<<carin[i].no<<" "<<time1<<endl;continue;}if(k==2){poi=compare();carin[poi].takecar();cout<<"请选择:"<<"\n\n\t-----------------------------"<<"\n\n\t ●1.停车操作"<<"\n\n\t ●2.取车操作"<<"\n\n\t ●3.查询信息"<<"\n\n\t ●4.修改车费"<<"\n\n\t ●5.退出"<<"\n\n\t ----------------------------\n\n";continue;}if(k==3){int x;while(1){cout<<"请输入数字选择需要的操作:"<<endl;cout<<""<<endl;cout<<"\n\n\t-------------------------------------"<<"\n\n\t●1.查询车牌号"<<"\n\n\t●2.查询车位"<<"\n\n\t●3.退出查询"<<"\n\n\t-------------------------------------\n\n";cin>>x;if(x==1){search_no();break;}else if(x==2){search_position();break;}else if(x==3){break;}elsecout<<"\t选择错误,请重新选择:";}cout<<"请选择:"<<"\n\n\t-----------------------------"<<"\n\n\t ●1.停车操作"<<"\n\n\t ●2.取车操作"<<"\n\n\t ●3.查询信息"<<"\n\n\t ●4.修改车费"<<"\n\n\t ●5.退出"<<"\n\n\t ----------------------------\n\n";}//outfile.close();if(k==4){carin[i].changefee();continue;}if(k==5){exit(0);}}}//-----------------------------------------------loadin()-----------------------------------void loadin(){char an[10],ap[10];int ai=0;cout<<" -------------欢迎使用XX停车场管理系统-------------"<<endl; while(1){cout<<""<<endl;cout<<"请输入管理员用户名:";cin>>an;if(strcmp(adname,an)){cout<<"此用户名不存在!\n";ai++;if(ai==3)exit(0);continue;}else{cout<<"请输入密码:";cin>>ap;if(!strcmp(adpassword,ap)){break;}else{cout<<"密码错误!\n";ai++;if(ai==3){cout<<""<<endl;cout<<"密码连续输入错误3次,请重新选择操作:"<<endl;cout<<"--------------------------------"<<endl;cout<<"●1.修改密码"<<endl;cout<<"●2.退出系统"<<endl;cout<<"--------------------------------"<<endl;int k;while(cin>>k){if(k==1){cout<<"请输入新的密码,密码不超过10位数:"<<endl;char adpassword1[10];cin>>adpassword1;strcpy(adpassword,adpassword1);cout<<"你的新密码是:"<<endl;cout<<adpassword<<endl;loadin();break;}if(k==2){exit(0);}if(k!=1&&k!=2){cout<<"输入错误,请重新输入:";}}return;}continue;}}cout<<"登陆成功!" <<endl;}}//-------------------------------------------------------------- jugement() --------------------int jugement() //-------------------------判断出第一个空的车位{int j=0;while(position[j]==1&&j<50){j++;}cout<<" 共有50个停车位,当前可使用停车位:"<<50-j<<endl;cout<<""<<endl;cout<<" 本停车场收费标准如下:"<<endl;cout<<""<<endl;cout<<" 货车每小时"<<Fee1<<"元,客车每小时"<<Fee2<<"元,轿车每小时"<<Fee3<<"元,其它车辆每小时"<<Fee4<<"元。

相关文档
最新文档