停车场管理系统C课程设计报告_第1页
停车场管理系统C课程设计报告_第2页
停车场管理系统C课程设计报告_第3页
停车场管理系统C课程设计报告_第4页
停车场管理系统C课程设计报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 科技学院面向对象程序设计课程设计报告学 院:电气与信息工程学院专业班级: 计科2012-05 学生: 鑫 学 号: 2012442101 设计地点(单位)_I313_ 设计题目:_ 停 车 场 管 理 系 统 _ 完成日期: 2014 年 1月 8 日指导教师评语: _ _ _成绩(五级记分制):_ _ 指导教师(签字):_ _ 23 / 29科技学院课程设计任务书设计题目:停车场管理系统设计学生鑫课程名称面向对象课程设计专业班级计科12-5班地 点I313起止时间12月30日1月10日设计容与要求1)问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开

2、的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。2)功能要求(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能

3、:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以与界面的组织和设计;(2)分

4、析系统中的各个实体与它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参考资料1Richard Johnsonbaugh. M

5、artin Kalin.面向对象程序设计C+语言描述.机械工业.2009年2钱能.+语言程序设计教程.清华大学.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写容较多可另纸附后。3.一题多名学生共用的,在设计容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军/伍建全/黄永文 2013年12月12日摘要C+语言是计算机程序的最基本语言,俗话说学好数理化走遍天下都不怕,但是对于计算机专业的学生来说这句话并不完全正确!对于计算机专业来说这句话应该改为学好C+走遍天下都不怕。在学习完面对对象C+语言后,为了检验与巩固所学习到

6、的知识,要求设计一个车辆系统能够完成引导管理者对车辆进行有效的管理,该管理系统可以大大的节省管理者的时间和资源也对所管理的对象的效率是非常高的,在无外界环境的影响下,该系统对车辆的管理根本不会出错,所以车辆管理系统不失为管理车辆者的一个好帮手。该系统是用C语言和C+语言编写的一个简单的操作系统,在汇编环境下,用户可以按照界面的提示,选择不同的功能,C语言的编写是核的编写,在核中实现的是显示功能。关键词:C+ C语言 车辆管理系统 显示目录课程设计任务书2摘要3第一章绪论511 课程设计的目的512 课程设计的背景和意义5121 课程设计的背景5122 课程设计的意义513 课程设计环境5第二章

7、需求分析621 问题描述622 功能要求623 问题的解决方案6第三章系统设计731 数据设计7311 类设计7312 类之间的关系7313 函数设计732 结构设计8321 系统流程图8322 界面设计8第四章系统实现941 类实现942 函数实现1043 主函数实现26第五章系统测试2851 模块测试2852 课程设计过程中遇到的问题34总结35致36参考文献36附录37 绪论课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。课程设计的背景和意义 课程设计的背

8、景1. 理论研究基础(1)分析系统流程,并会画出流程图;(2)熟练掌握C+程序设计语言。2. 技术层面的支持C+面向对象程序设计中的类的声明与对象定义的熟练使用;以与继承、派生的熟练使用。 课程设计的意义在经过了一个学期对C+程序设计的学习,课程设计可以很好的检验所学知识,对自身来说,是个查漏补缺的好时机,可以将所学知识进行复习与巩固,将前面所有知识综合起来,很好的联系在一起,有机结合,形成知识网络体系,将知识融会贯通,可以让自己进一步熟练掌握程序设计语言,并能熟练运用。 课程设计环境软件:WindosXP系统,Microsoft Visual C+ 6.0编译器。硬件:联想 双核处理器,二G

9、存,二G独立显卡,80G硬盘。第一章 需求分析1.1问题描述系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。本系统主要是运用面对对象C语言编写的程序,在本系统中主要定义了一个Car类,此类为系统的基本类,再由此类派生出三个子类。整个系统的所有功能基本是围绕这三个子类编写的。在这三个子类的基础上再加以辅助的函数与基本实现了整个系统的功能。1.2 基本要求和目的1

10、)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号

11、的唯一性。5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。6)统计信息输出当前车辆信息库中总物品数,以与按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。1.3 软件需求本程序主要是运用C+语言编写的系统。其功能是对在库的车辆信息进行有效的管理,所以该系统主要面对的是停车场管理员。停车场管理员可以根据本系统的操作提示完成对所需要管理的对象进行有效的管理。在本系统中有很多功能,例如可以输入新的车辆信息,包括车辆的车牌、购买时间、制作公

12、司、车型、日常所需的费用以与油费等等。所以本系统不失为一个管理车辆的有效系统,尤其是面对对车辆需要有效管理的停车场、车站、二手车交易市场等等。1.4 系统中各功能函数的关系图主界面与各功能函数的关系:主界面统计功能删除功能编辑功能显示功能查询功能添加功能图 1.41添加函数功能:完成添加添加页面不添加,返回主界面主界面继续添加图1.42查询函数功能:完成完成查询页面不再查询,返回主界面主界面继续查询图1.43显示功能主界面显示车库所有信息图1.44主界面库为空,没有任何信息主界面图1.45编辑功能按照提示进行修改输入的车辆信息有误,提示无此编号编辑功能页面主界面找到要修改的车辆图1.45删除功

13、能主界面删除车辆功能函数选择要删除的车型按照提示输入信息输入正确并按提示对信息进行了修改输入有错请重新输入车库已空请重新选择操作图1.46第二章 主要代码2.1系统运用的语言 本系统主要是运用面对对象C+语言所编写的软件。面对对象C+语言是由C语言衍生而出的一个比C语言更完善更加容易操作的语言。由于该语言主要是由C语言衍生而来,所以对C语言能够使用的语法该语言都能使用,不仅如此,该语言还添加了很多C语言所不具备的语法,例如对类的定义、类的继承以与操作符的重载等等。本系统中主要运用面对对象C+语言对本系统的主要对象car进行类的定义,然后再运用类的继承完成对旗下三个子类的定义,最后对该三个子类赋

14、予适当的辅助函数来完成本程序的编写。2.2类的定义 按照本系统的功能,首先定义了一个父类Car,其代码如下:class Carprivate:string ID;string PlateNumber;string Factory;string BuyTime;string CarType;double Distance;double OilCut;double BaseFee;double ReadFee;double AllFee;double OilFee;public:void setCar()/cout请输入车辆编号ID;cout请输入车牌号PlateNumber;cout请输入车辆制

15、造公司Factory;cout请输入车辆购买时间BuyTime;cout请输入车辆型号CarType;cout请输入总公里数Distance;cout请输入耗油量/公里OilCut;cout请输入养路费ReadFee;cout请输入油价:OilFee;AllFee = Distance*OilCut+ReadFee;void getCar()cout编码:ID车牌号: PlateNumber制作公司: Factory购买时间: BuyTime车型 CarType总公里数: Distance耗油量/公里: OilCut养路费: ReadFee油费/升: OilFee总费用: ;void setB

16、aseFee(int fee)BaseFee = fee;double getAllFee()return AllFee;void setID(string s)ID = s;string getID()return ID;string getFactory()return Factory;class MotorBus:virtual public Carprivate:int BusLoad;public:void setMotorBus()Car:setCar();Car:setBaseFee(2000);cout请输入载客量:BusLoad;void getMotorBus()Car:g

17、etCar();cout(getAllFee()+2000)endl;;定义完父类之后又要对子类进行定义,子类有三个,首先是客车类MotorBus的定义,其代码如下:class MotorBus:virtual public Carprivate:int BusLoad;public:void setMotorBus()Car:setCar();Car:setBaseFee(2000);cout请输入载客量:BusLoad;void getMotorBus()Car:getCar();cout(getAllFee()+2000)endl;其次是卡车类Van的定义:class Van:virtu

18、al public Carprivate:double Load;public:void setVan()Car:setCar();Car:setBaseFee(1500);cout请输入载重量:Load;void getVan()Car:getCar();cout(getAllFee()+1500)endl;最后是轿车Scar的定义:class SCar:virtual public Carprivate:int BoxNumber;public:void setSCar()Car:setCar();Car:setBaseFee(1000);cout请输入箱数:BoxNumber;void

19、getSCar()Car:getCar();cout(getAllFee()+1000)endl;子类与父类的关系图如下:Class Car Class VanClass ScarClass MotorBus 图2.21除此之外还在本程序中有一个对所有类进行操作的函数Function,其主要代码如下:class Function:public MotorBus,public Van,public SCarprivate:public:switch(Type)case 1:if(MLength = 0)return true;break;case 2:if(VLength = 0)return

20、true;break;case 3:if(SLength = 0)return true;break;default:return false;return false;int Check_RepetID(string CID, int Type, int Way)int i;switch(Way)case 1:switch(Type)case 1:for(i = 0; i MLength; i+)if(CID = Mi.getID()return i;break;case 2:for(i = 0; i VLength; i+)if(CID = Vi.getID()return i;break

21、;case 3:for(i = 0; i SLength; i+)if(CID = Si.getID()return i;break;break;case 2:switch(Type)case 1:for(i = 0; i MLength; i+)if(CID = Mi.getFactory()return i;break;case 2:for(i = 0; i VLength; i+)if(CID = Vi.getFactory()return i;break;case 3:for(i = 0; i SLength; i+)if(CID = Si.getFactory()return i;b

22、reak;break;case 3:switch(Type)case 1:if(MLength = 0)cout该类别没有车辆.endl;return 0;elsefor(i = 0; i MLength; i+)Mi.setMotorBus();return 0;case 2:if(VLength = 0)cout该类别没有车辆.endl;return 0;elsefor(i = 0; i VLength; i+)Vi.getVan();return 0;case 3:if(SLength = 0)cout该类别没有车辆.endl;return 0;elsefor(i = 0; i SLength; i+)Si.getSCar();return 0;break;return -1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论