停车场管理系统C++课程设计报告

上传人:无*** 文档编号:103340283 上传时间:2022-06-08 格式:DOC 页数:28 大小:1.03MB
返回 下载 相关 举报
停车场管理系统C++课程设计报告_第1页
第1页 / 共28页
停车场管理系统C++课程设计报告_第2页
第2页 / 共28页
停车场管理系统C++课程设计报告_第3页
第3页 / 共28页
点击查看更多>>
资源描述
重庆科技学院面向对象程序设计课程设计报告 学 院:电气与信息工程学院专业班级: 计科2012-05 学生姓名: 蒋鑫 学 号: 2012442101 设计地点(单位)_I313_ 设计题目:_ 停 车 场 管 理 系 统 _ 完成日期: 2014 年 1月 8 日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院课程设计任务书设计题目:停车场管理系统设计学生姓名蒋鑫课程名称面向对象课程设计专业班级计科12-5班地 点I313起止时间12月30日1月10日设计内容和要求1)问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。2)功能要求(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以和界面的组织和设计;(2)分析系统中的各个实体和它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参考资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2009年2钱能.+语言程序设计教程.清华大学出版社.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军/伍建全/黄永文 2013年12月12日摘要C+语言是计算机程序的最基本语言,俗话说学好数理化走遍天下都不怕,但是对于计算机专业的学生来说这句话并不完全正确!对于计算机专业来说这句话应该改为学好C+走遍天下都不怕。在学习完面对对象C+语言后,为了检验与巩固所学习到的知识,要求设计一个车辆系统能够完成引导管理者对车辆进行有效的管理,该管理系统可以大大的节省管理者的时间和资源也对所管理的对象的效率是非常高的,在无外界环境的影响下,该系统对车辆的管理根本不会出错,所以车辆管理系统不失为管理车辆者的一个好帮手。该系统是用C语言和C+语言编写的一个简单的操作系统,在汇编环境下,用户可以按照界面的提示,选择不同的功能,C语言的编写是内核的编写,在内核中实现的是显示功能。关键词:C+ C语言 车辆管理系统 显示 目录课程设计任务书2摘 要3第一章 绪论511 课程设计的目的512 课程设计的背景和意义5121 课程设计的背景5122 课程设计的意义513 课程设计环境5第二章 需求分析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)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。课程设计的背景和意义 课程设计的背景1. 理论研究基础(1)分析系统流程,并会画出流程图;(2)熟练掌握C+程序设计语言。2. 技术层面的支持C+面向对象程序设计中的类的声明与对象定义的熟练使用;以和继承、派生的熟练使用。 课程设计的意义在经过了一个学期对C+程序设计的学习,课程设计可以很好的检验所学知识,对自身来说,是个查漏补缺的好时机,可以将所学知识进行复习与巩固,将前面所有知识综合起来,很好的联系在一起,有机结合,形成知识网络体系,将知识融会贯通,可以让自己进一步熟练掌握程序设计语言,并能熟练运用。 课程设计环境软件:WindosXP系统,Microsoft Visual C+ 6.0编译器。硬件:联想 双核处理器,二G内存,二G独立显卡,80G硬盘。第一章 需求分析1.1问题描述 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。本系统主要是运用面对对象C语言编写的程序,在本系统中主要定义了一个Car类,此类为系统的基本类,再由此类派生出三个子类。整个系统的所有功能基本是围绕这三个子类编写的。在这三个子类的基础上再加以辅助的函数和基本实现了整个系统的功能。1.2 基本要求和目的1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。6)统计信息输出当前车辆信息库中总物品数,以和按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。1.3 软件需求本程序主要是运用C+语言编写的系统。其功能是对在库的车辆信息进行有效的管理,所以该系统主要面对的是停车场管理员。停车场管理员可以根据本系统的操作提示完成对所需要管理的对象进行有效的管理。在本系统中有很多功能,例如可以输入新的车辆信息,包括车辆的车牌号码、购买时间、制作公司、车型、日常所需的费用以和油费等等。所以本系统不失为一个管理车辆的有效系统,尤其是面对对车辆需要有效管理的停车场、车站、二手车交易市场等等。1.4 系统中各功能函数的关系图主界面与各功能函数的关系:主界面统计功能删除功能编辑功能显示功能查询功能添加功能 图 1.41添加函数功能:完成添加添加页面不添加,返回主界面主界面继续添加图1.42查询函数功能:完成完成查询页面不再查询,返回主界面主界面继续查询图1.43显示功能主界面显示车库所有信息 图1.44主界面库为空,没有任何信息主界面图1.45编辑功能 按照提示进行修改输入的车辆信息有误,提示无此编号编辑功能页面主界面找到要修改的车辆 图1.45删除功能 主界面 删除车辆功能函数选择要删除的车型按照提示输入信息输入正确并按提示对信息进行了修改输入有错请重新输入车库已空请重新选择操作图1.46第二章 主要代码2.1系统运用的语言 本系统主要是运用面对对象C+语言所编写的软件。面对对象C+语言是由C语言衍生而出的一个比C语言更完善更加容易操作的语言。由于该语言主要是由C语言衍生而来,所以对C语言能够使用的语法该语言都能使用,不仅如此,该语言还添加了很多C语言所不具备的语法,例如对类的定义、类的继承以和操作符的重载等等。本系统中主要运用面对对象C+语言对本系统的主要对象car进行类的定义,然后再运用类的继承完成对旗下三个子类的定义,最后对该三个子类赋予适当的辅助函数来完成本程序的编写。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请输入车辆制造公司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 setBaseFee(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:getCar();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:virtual 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 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 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;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;break;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;void AddCar()以上便是在此次课程设计中所用到的主要代码。第三章 系统的调试3.1主界面的调试:图3.13.2添加功能的调试:图3.21图3.223.3查询功能的调试:图3.313.4编辑功能的调试: 图3.32图3.333.5统计的调试:图3.51图3.52图3.53以上便为本系统功能调试结果。第四章 总结通过为期两周的车辆管理系统课程设计,我深深地感觉到了面向对象C语言在计算机领域的重要性,同时也加深了我对书本上的知识的应用,使我编程能力,逻辑思维能力以和整个动手能力都有了很大提高。通过编写一个微小的车辆管理系统,使我了解了什么是定义类,什么是继承等等。总之,学到了很多以前不知道的东西。在这次课程设计中,我虽然将这个简单微小的车辆管理系统完成了,但是在编程的过程中仍有一些地方欠思考,使编写出来的程序还不够严谨,功能还不能完善,同时我对这次感到遗憾的是,没有将键盘的输入写进这个微小的操作系统里,这说明了我在学习知识方面还是比较慢,这让我深深了解到了我的不足,我会在以后编程的过程中不断的完善自己的一种思维模式,不断的提高自己,使自己的综合能力得到进一步的提升。致 谢经过一周的课程设计,我顺利完成了车辆管理系统的设计。这次课程设计的顺利完成,要感谢黄老师的耐心辅导,是他在我思维混乱时,给我指点迷津,让我把问题逐渐清晰化,使我在编写操作系统的时候有一个清新的头脑。黄老师,谢谢您,谢谢。 我还要感谢全班同学对我的帮助,感谢他们在我编程时提出宝贵的意见和建议,感谢他们在我困难时给予了我帮助。参考文献 1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2009年2钱能.+语言程序设计教程.清华大学出版社.2005年
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!