- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之双层停车场
洛 阳 理 工 学 院
课 程 设 计 报 告
课程名称 数据结构课程设计
设计题目 双层停车场
专 业 计算机科学与技术
班 级 B150406
学 号
姓 名 文 熊
完成日期 2016.12.30
课 程 设 计 任 务 书 设计题目: 双 层 停 车 场 管 理
1.算法思想
整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。
另外车辆停放信息涉及到从car.dat中读取,保存和修改,为了方便起见,和程序的模块化,我们将文件的读入和保存单独设计为两个子程序。
模块划分
(1)通过读取car.dat的数据,对程序初始化。
在init()通过一个for循环完成对car.dat中数据的读取。
设计一个子程序saveAll()用来保存停车场车位的信息到car.dat。
用for循环再将处理后的数据存入文件中。
(3)停车void putCar()
首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。输入出错时要求继续输入。我们引入flag标志量判断车牌号是否正确,初始int flag=1,从键盘读入车牌号码,并判断:
其次,读取的车牌号正确之后对标志量清零flag=0,代表没有没有找到车位,进行为车辆找停车位的操作。
通过for循环和continue语句找到没有停车的车位,即car[i][0]不等于0,并将标志量flag赋值1,表示有车位,用break语句跳出循环。
再用if语句处理flag==1的情况,即停车场车位已满无法停车。
最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。
(4)取车void getCar()
读取要提取车辆的车牌号码。再通过flag标志量对所输入车牌号正误分别处理。(初始flag=0),对于输入正确的车辆进行操作:删除车辆信息,再计算费用,再对时间清零并标志取车成功。进过上一步后取车不成功时即flag还是为0时,提示重复输入车牌号直道成功为止。
有选择性的显示收费价格
取车函数中,取车时,选择性的显示收费价格
(6)车辆信息浏览void showInfo()
浏览停车场的全部信息
3.数据结构
使用全局变量数组,用一个二维数组实现停车场车位的信息, int cars[12][4];
测试结果
假设停车场初始状态为第一层已经停有 4 辆车,其车位号依次为 1—4,停车时间依次 为 20,15,10,5。
停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车 位号(分配前先查询车位的使用情况, 如果第一层有空则必须停在第一层), 停车时间设为 5, 最后将新停入的汽车的信息添加文件“car.dat”中,并将在此之前的所有车的停车时间加 5。
收费管理(取车):当有车离开时,输入其车牌号,先按其停车时间计算费用,每 5 分 钟 0.2 元。(停车费用可设置一个变量进行保存),同时从文件“car.dat”中删除该车的信 息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。 按用户的选择来判 断是否要输出停车收费的总计。
输出停车场中全部车辆的信息。
洛 阳 理 工 学 院 课 程 设 计 报 告
2
输入车辆车牌号存车
putCar
停车模块
saveAll将车辆信息存入car.dat
输入车牌号码取车
getCar
取车模块
删除车辆信息
显示停车费用
Main
键盘式菜单
showInfo
车位信息
Exit
退出
图1 整体模块图
文档评论(0)