数据结构课程设计停车场管理系统c++Word文件下载.docx

上传人:b****3 文档编号:14301427 上传时间:2022-10-21 格式:DOCX 页数:42 大小:91.26KB
下载 相关 举报
数据结构课程设计停车场管理系统c++Word文件下载.docx_第1页
第1页 / 共42页
数据结构课程设计停车场管理系统c++Word文件下载.docx_第2页
第2页 / 共42页
数据结构课程设计停车场管理系统c++Word文件下载.docx_第3页
第3页 / 共42页
数据结构课程设计停车场管理系统c++Word文件下载.docx_第4页
第4页 / 共42页
数据结构课程设计停车场管理系统c++Word文件下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

数据结构课程设计停车场管理系统c++Word文件下载.docx

《数据结构课程设计停车场管理系统c++Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计停车场管理系统c++Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。

数据结构课程设计停车场管理系统c++Word文件下载.docx

时间

2013.6.24——2013.7.5

一、教学要求

1.掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力

4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风

二、设计资料及参数

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

以结构体类型表示停车时间和车辆信息,在此基础上借助栈完成对车辆的入场和出场操作,借助队列完成辅助停车场便道,即存放等待入场车辆或辅助车场中的某辆车出场。

要求设计类(或类模板)来描述栈、队列、停车场及其操作,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:

v压栈、退栈

v入队列、出队列

v车辆到场(有车位即入场,否则入便道等待)、车辆出场(任意位置车辆均可出场)

v查询车辆信息、输出停车场(包括停车位和便道的车辆)

并设计主函数测试该类。

三、设计要求及成果

1.分析课程设计题目的要求

2.写出详细设计说明

3.编写程序代码,调试程序使其能正确运行

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告

四、进度安排

资料查阅与讨论(1天)

系统分析(2天)

系统的开发与测试(5天)

编写课程设计说明书和验收(2天)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

4.根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问

六、建议参考资料

1.《数据结构(C语言版)》严蔚敏、吴伟民主编清华大学出版社2004.11

2.《数据结构课程设计案例精编(用C/C++描述)》,李建学等编著,清华大学出版社2007.2

3.《数据结构:

用面向对象方法与C++语言描述》,殷人昆主编, 

清华大学出版社2007.6

第一章、需求分析

根据题目要求,充分地分析和理解问题,描述系统的功能要求,明确问题要求做什么?

以及限制条件是什么?

第一节、问题描述

随着我国人民生活水平提高和汽车工业的高速发展.越来越多的家庭拥有了汽车,但受到土地的限制,所以采用立体停车场是解决停车难的必然出路。

立体停车场占地少,容量大.利用效率高;

泊车与取车全自动化,省时省力,安全防盗。

本文主要以两层停车场为例,设计一能完成存车与取车的停车场系统。

有一个两层的停车场, 

每层有6个车位, 

当第一层车停满后才允许使用第二层. 

( 

停车场可用一个二维数组实现, 

每个数组元素存放一个车牌号 

) 

每辆车的信息包括车牌号、 

层号、 

车位号、停车时间共4项, 

其中停车时间按分钟计算。

假设停车场初始状态为第一层已经停有4辆车, 

其车位号依次为1—4 

 

停车时间依次为20, 

15, 

10 

即先将这四辆车的信息存入文件”car.dat”中( 

数组的对应元素也要进行赋值 

)。

停车操作:

当一辆车进入停车场时, 

先输入其车牌号, 

再为它分配一个层号和一个车位号, 

停车时间设为5 

最后将新停入的汽车的信息添加文件”car.dat”中, 

并将在此之前的所有车的停车时间加5。

收费管理(取车):

当有车离开时, 

输入其车牌号, 

先按其停车时间计算费用, 

每5分钟0.2元. 

(停车费用可设置一个变量进行保存), 

同时从文件”car.dat”中删除该车的信息, 

并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 

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

第二节、基本要求

输入的形式和输入值的范围

程序以车牌号作为车主的身份验证,以真实的汽车车牌号为准,当取车或停车时,需输入车牌号,输入字段长7位。

输出的形式

用户:

当车主存车时,要求显示空闲的车位,方便车主在层内选择(层间要满足,如果第一层有空则必须停在第一层)。

当车主取车时,可以根据客户选择,决定是否输出凭据。

管理员:

能够查询全部车辆的信息。

程序所能达到的功能

用户存车:

包括查找空位,选择车位;

用户取车:

包括出车,显示凭据。

更改停车场的状态。

停车场管理员:

初始化停车场,查询所有车的停车信息(历史停车信息),进行一定的查询功能。

第二章、概要设计

第一节、设计思想

本停车场有两层, 

所以 

停车场可用一个二维数组实现,用来描述现停汽车的信息。

每辆车用一结构体表示,包括车牌号、 

车位号、停车时间和停车标志位(标志是否停车)。

当车入库时,将更改二维数组的信息,当车出库时,将信息写入car.dat中。

再次进入该系统时,还用这个二维数组,来接受car.dat数据的读入,便于用户以后的操作,防止停车信息的流失。

此外,由于需要显示所有汽车的停车信息,所以我们又加了一个顾客结构体,一个顾客链表,当存车时,新建用户节点,并使用头插法,插于链表(便于取车时查到用户,补充完整用户的信息),填写用户的相关信息(车牌号,层号,车位号,车入库时刻)。

当出库时,查找相应节点,补充完整用户信息,包括(用户留言,停车时间总计,花费)。

当退出系统后,将已出库的汽车的车主信息,写入历史文件list.dat中,便于管理员的查询。

将还未取走车的车主的信息存入临时文件temp.dat中,防止系统关闭后数据信息的丢失,车主取车时找不到车。

第二节、数据结构

结构体Car,保存每个车位的停车信息。

结构体Snode,保存每个客户的信息。

结构体User,保存管理员信息。

结构体Date,保存时间。

数组Cars,保存整个停车状况。

链表CustList,保存所有客户的信息,包括车已取走,和车未取走的。

第三节、程序模块

(1)此停车场管理系统,主要分为以下若干模块:

首先定义用来模拟停车的数组,用来保存顾客信息的链表,保存管理员信息的结构以及全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。

在主函数中首先调用option()函数,出现欢迎用户使用的界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的主界面(包括顾客界面和停车场管理员管理界面)。

当用户选择顾客界面时,跳入到顾客界面,再次界面,用户可以选择存车、取车及返回主页面。

在用户的选择过程中,程序又分别存车,取车函数调用以及退出程序这三个函数模块。

其中,当存车时,调用了显示空闲车位状态的信息函数,并调用了保存car.dat的函数;

当取车时,调用显示本次停车情况以及消费金额的函数,并调用了保存car.dat的函数。

最后,在主界面选择“退出”,保存历史文件list.dat和临时文件temp.dat。

当用户选择车管系统时,调用管理员身份验证函数,从而跳入车管界面,然后相应的功能函数,实现查询所有停车信息。

(2)在以上各个模块中,出现的调用的函数为:

//—————————客户————————

voidCustomer(Carcars[FLOOR][PNUMBER]);

voidCustomerNote(charnote[100],CustList*cl);

//存车

intEnterpark(Carcars[FLOOR][PNUMBER],char*license,int&

floor,int&

pnumber);

voidGetDate(Date&

date);

boolIsFull(Carcars[FLOOR][PNUMBER]);

boolIsSame(Carcars[FLOOR][PNUMBER],char*license);

//取车

intCarOutMenu(charlicense[],int&

pnumber,int&

ptime,float&

cost,charnote[100]);

boolIsEmpty(Carcars[FLOOR][PNUMBER]);

voidPrint(charlicense[],intfloor,intpnumber,intptime,float&

cost);

voidLeavepark(Carcars[FLOOR][PNUMBER],charlicense[],int&

ptime,charnote[100]);

//-----------------------后台管理---------------------------

voidManage(Carcars[FLOOR][PNUMBER]);

//保存到car.dat

voidSavecars(Carcars[FLOOR][PNUMBER]);

voidFourCarIn(CarCars[FLOOR][PNUMBER]);

//初始停车场

intUsertestAdd();

//管理员身份验证

voidLoad(Carcars[FLOOR][PNUMBER]);

//加载文件

voidLoadfile(Carcars[FLOOR][PNUMBER],charlicense[8],intfloor,intpnumber,intptime,intempty);

voidShowcars(Carcars[FLOOR][PNUMBER],CustList*cl);

//显示停车场现存车

voidMessage(CustList*clr);

//显示客户信息

voidNews();

//发布消息

voidIncome(CustList*cl,charday[],float&

amount);

//一些查询

voidCheckOneCar(CustList*clr,char*license);

//后台中关于单链表的

voidInitCustList(CustList*&

cl);

voidInsertToFirst(CustList*cl,char*license,intfloor,intpnumber,Datedate);

voidInsertToLst(CustList*cl,char*license,intfloor,intpnumber,intptime,floatcost,Datedate);

voidSearchCust(CustList*&

cl,char*license,floatcost,intptimecount,charnote[]);

voidSaveListTemp(CustList*cl);

//保存到temp.dat

voidSaveList(CustList*cl);

//保存到list.dat

voidDeleteAll(CustList*cl);

voidReadFromList(CustList*cl);

voidLoadList(CustList*clr);

voidDeleteByNote(CustList*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1