2022年车辆管理系统.docx

上传人:Q****o 文档编号:27989294 上传时间:2022-07-26 格式:DOCX 页数:45 大小:231.95KB
返回 下载 相关 举报
2022年车辆管理系统.docx_第1页
第1页 / 共45页
2022年车辆管理系统.docx_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《2022年车辆管理系统.docx》由会员分享,可在线阅读,更多相关《2022年车辆管理系统.docx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - C+ 项目:车辆治理系统 目标:写一个小程序,要求到用标准模板库中的多继承来进行试验;1.1 General 概述 1.在写代码之前要认真阅读作业要求 2.要求对不正确的输入做检查list容器和迭代器,可以使用到3.在你写完一个类之后,要紧接着写这个类的测试函数,因此,当你调试你写的 代码的时候,你能够很简单的对你的代码做重复检查;码这样才能够保证你当前写的代能够精确无误的执行; 可能出于某些缘由你要对你写过的代码作一此些修改,这 样 你重新测试你修改的代码就相比照较简单;4.添加完成你的任务所需要的函数;1.2 Introduction简介:

2、 “ 数据库”,来为它的议会 委员会 渥太华这个城市正在创建一个有关交通工具的做 预算供应较好的参考; 这个城市有很多不同种类的机动车辆:客车,货车,卡车,紧急车辆 抢救,消防等 ,在对这个城市明白之后,要求你设计一个有以下图要 求的层次的系统;2 Implement the following functions for each class: 为每个类实现以下函数名师归纳总结 - - - - - - -第 1 页,共 24 页精选学习资料 - - - - - - - - - 2.1 Vehicle 类 属性:全部的属性要求为私有的 char licensePlate属性:车的车牌 执照 作

3、为它的id, 一个车牌最多可由8组成;char *type 属性:车辆类型 例如:汽车,卡车,消防车 char *make 属性:车辆的制造商double gasTankSize 属性:总油量double fuelConsumption 属性:单位路程耗油量函数 : R1. 构造函数 vehicle char *type, char* licensePlate, double gasTankSize, double fuelConsumption Tppe 的默认值为: car licensePlate 的默认值为 : ottawa01 gasTankSize 的默认值为 : 100 fuel

4、Consumption 的默认值为 : 10 全部其他不在构造函数中的参数要求置 0或置空R2. void setMake char *make; 设置 制造商 的值R3. setFuelData double gasTankSize, double fuelConsumption 设置 燃料的有关信息 总油量,单位路程耗油量 R4. setType char *type 设置车辆类型R5. setLicensePlate char *license 设置 车辆的车牌R6. virtual printSpecifications 车牌,燃油量和油箱容积- 打印车辆的详细信息 ,例如:制造商、类

5、型,R7. virtual double computeTravelDistance 的距离, 这个函数运算车辆可能行使运算公式为: gasTankSize * fuelConsumption总油量 *单位路程耗油量 名师归纳总结 Class LoadVehicle: LoadVehicle类 第 2 页,共 24 页- - - - - - -精选学习资料 - - - - - - - - - Attributes 属性 int numberOfWheels contains the number of wheels that the vehicle has. int numberOfWheel

6、s 属性:车辆的车轮个数double loadCapacity the load weight that the vehicle can carry in kg double loadCapacity:车辆的负荷double towingCapacity the total weight that the vehicle can tow in kg double towingCapacity:车辆能够拖曳的重量Functions R8. loadVehicle char *type, int numberOfWheels, double loadCapacity, double towingC

7、apacity, double gasTankSize, double fuelConsumption. A constructor for the class. The default values for numberOfWheels, loadCapacity and towingCapacity are 6, 500kg and 5000kg respectively. The default values for gasTankSize and fuelConsumption are 200 and 6 respectively. The constructor will initi

8、alize all the fields of the class as required. All other member variables that are not initialized should be set to the default values of the base classes, or, if no default values exist, to 0 or NULL. 这个类的构造函数,各个属性的默认值:loadCapacity 的默认值: 6, 500kg towingCapacity 的默认值: 5000kg gasTankSize 的默认值: 200 fu

9、elConsumption 的默认值: 6 其他没有初始化的成员变量应当设置为基类的默认值一样,应置0或置空假如没有默认值, 就R9. setLoadData double towingCapacity, double loadCapacity 设置负荷 ,拖曳量R10. printSpecifications print the specification of the vehicle the vehicle specification from the vehicle class, the towing capacity, the load capacity and the number

10、of wheels. 打印出车辆的详细信息,包括从基类继承的和它自身的;R11. double computeTravelDistance every pair of wheels above four reduces the travel distance by 5% travelDistance = gasTankSize*fuelConsumption*100- numberOfWheels-4/2*5/100. For example: if the gasTankSize if 100 litres, the 名师归纳总结 - - - - - - -第 3 页,共 24 页精选学习资

11、料 - - - - - - - - - fuelConsumption is 10 km/l and there are 10 wheels then the travelDistance= 100*10*100-10-4/2*5/100 = 1000*85/100 = 850km. 超过 4个车轮,每增加两个车轮,车辆可行使的车程以5%削减 . 例如:总油量为 100公升,耗油量为 10km/ 公升,该车车辆有 10个车轮,它可行使的车 程为:100 * 10 * 100-10-4/2 * 5/100 = 1000*85/100 = 850km. 2.3 Class passengerVeh

12、icle: passengerVehicle 类 Attributes int numberOfPassengers vehicle can Carry int numberOfPassengersFunctions 函数 contains the number of passengers that the 属性:车辆可搭乘的乘客的数量R12. passengerVehicle double char *type, int numPassengers, double gasTankSize, fuelConsumption The default values for numPassenger

13、s is 5. The default values for gasTankSize and fuelConsumption are 100 and 11 respectively. The constructor will initialize all the fields of the class as required using default values of base classes. All other variables that are not initialized are set to 0 or NULL. 该类的构造函数,成员变量的默认值:numPassengers

14、的默认值:5 gasTankSize 的默认值: 100 fuelConsumption 的默认值: 11 要用基类的构造函数对要求有默认值的属性进行初始化,员要置 0或置空R13. setNumPassengers 设置可搭乘的乘客人数int numPassengers 没其他没有初始化的成R14. printSpecifications print the specification of the vehicle the vehicle specification from the vehicle class, and the number of passengers. 打印车辆的详细信息

15、R15. computeTravelDistance 少例如: 超过 5个人每多搭乘 1个人行程将以 2.5% 减总油量为 100公升,燃油量为 10km/ 公升,有 7个乘客 ,就可行使的路程为:100*10*100-7-5*2.5/100 = 1000*95/100 = 950km. 名师归纳总结 2.4 Class emergencyVehicleemergencyVehicle类 第 4 页,共 24 页Attributes属性 - - - - - - -精选学习资料 - - - - - - - - - int numWorkers属性:为每辆车安排的工作人员char *driver

16、属性:为车辆安排的驾驶员char *station 属性:车辆停靠的车站Functions R16. emergencyVehiclechar *type, char*driver, char *station, int numPassengers,double gasTankSize, double fuelConsumption 构造函数,部分属性平的默认值:fornumPassengers 的默认值: 5 gasTankSize 的默认值: 100 fuelConsumption 的默认值: 11 wheels 的默认值: 6 其他没有给初始值的属性要求置 0或置空 . R17. set

17、Assignment char *driver, char *station 设置安排 司机,停靠站 R18. printSpecifications 打印的车辆车辆标准规格从车辆类,该 loadvehcile ,客运车辆和 emergencyequipment 类;打印车辆的详细信息R19. computeTravelDistance 中较小的行程 行程是 loadVehicle 和passengerVehicle 2.5 Class EmgergencyEquipmen 紧急设备类 Attributes 属性int sirenNoiseDistance 汽笛能够被听到的距离 ,默认为 50

18、0m int numBeds 可以同时供应病人的床位,默认值为2 构造函数Functions R20. emergencyEquipmentint sirenNoiseDistance, int numBeds 给汽笛的可听见距离,床位初始化R21. getBedsNum 返回床位数R22. printSpecifications 打印汽笛的可听见距离,床位数2.6 Container class 容器类 要求使用标准模板库中的list 容器,list 容器要求可以储备指向对象的指针,这样全部不同类型的车辆可以在同一个容器中 iterator- 迭代器 的使用 2.7 Decision cla

19、ss决策 类 dynamic casting运行时类型信息进使用相应的迭代器对容器遍历,使用行不同类之间的类型转型如将指向不同派生类对象的基类指针转为派生类对象指针 的,可以对相应不同类名师归纳总结 - - - - - - -第 5 页,共 24 页精选学习资料 - - - - - - - - - 成员函数的调用,这个类由城市的议会用来做打算Attributes 属性list& vehicleList:各类车辆的指针Functions方法R23. decisionlist& R24. printVehiclesSpecifications 构造函数:接收储备各类车辆信息的容器-打印全部车辆的详

20、细信息R25. printEmergencyVehicles -单独打印紧急车辆的紧急数据信息. R26. int numberLongDistanceEmergencyVehicles 打印不用中途加油能够行使 800km 以上的紧急车辆的数量R30. int numBeds - 确定以防紧急大事这个城市能够调遣的移动床位的数量R27. int numPassengers 确定以防紧急大事这个城市可转移的乘客人数2.8 Testing测试 主函数要求能够获得供议会做打算的运算结果int main list vehicleList; LoadVehicle* lv1 = new LoadVeh

21、icle ; backlv1; PassengerVehicle* pv1 = new PassengeVehicle ; backpv1; .Vehicle ;EmergencyVehicle* ev1 = new Emergencybackev1; .Decision decisionvehicleList; ; ; ; ; ; delete lv1; delete pv1; delete ev1; return 0; 11. 写一个同学类, 从 person 类继承, 增加的属性为成果 name,age,print #include f 和评语 label字符串;person: 名师归纳

22、总结 - - - - - - -第 6 页,共 24 页精选学习资料 - - - - - - - - - class person private: char *name; int age; public: personchar *name=,int age=0 this-name=name; this-age=age; void print cout :name 年龄: age; personcoutPerson destructorendl; ; class student:public person private: double f; char *label; public: stud

23、entchar *n=,int a=0,double b=0,char *c=:personn,a,fb,labelc void print person:print; cout 成果: f 评语: labelendl; studentcoutStuent destructorendl; ; void main person a1; student d1 张三 ,16,89.5, 优秀 ; a1=d1; a1.print; coutendl; d1.person:print; coutendl; d1.print; 运行结果:名师归纳总结 - - - - - - -第 7 页,共 24 页精选

24、学习资料 - - - - - - - - - :张三 年龄: 16 :张三 年龄: 16 :张三 年龄: 16 成果: 89.5 评语:优秀Stuent destructor Person destructor Press any key to continue exercise15 12. Person 为基类:虚函数为 dailywork Person 定义三个子类:Student Doctorchar* label Driverchar* label 主函数:定义基类指针数组,动态创建子类对象,调用成员函数,删除创建的对象;#include class Person public: Pe

25、rsonchar *name=,int age=0 this-name=name; this-age=age; virtual void dailyworkcout: name 年龄: age; virtual Personcout erson destructorendl; private: char *name; int age; ; class Student:public Person public: Studentchar *n=,int a=0,char *c= ersonn,a,labelc void dailywork Person:dailywork; cout 同学 ; c

26、out 评语: labelendl; StudentcoutStuent destructorendl; private: char *label; ; class Doctor:public Person 名师归纳总结 - - - - - - -第 8 页,共 24 页精选学习资料 - - - - - - - - - public: Doctorchar *n=,int a=0,char *c= ersonn,a,labelc void dailywork Person:dailywork; cout 医生 ; cout 评语: labelendl; DoctorcoutDoctor des

27、tructorendl; private: char* label; ; class Driver:public Person public: Driverchar *n=,int a=0,char *c= ersonn,a,labelc void dailywork Person:dailywork; cout 司机 ; cout 评语: labelendl; DrivercoutDriver destructorendl; private: char* label; ; void main Student *s=new Student 张三 ,15, 好; Doctor *d1=new D

28、octor 李四 ,45, 认真 ; Driver *d2=new Driver 王五 ,35, 优秀 ; Person *array3; array0=s; array1=d1; array2=d2; forint i=0;idailywork; delete array0; delete array1; delete array3; 运行结果:名师归纳总结 - - - - - - -第 9 页,共 24 页精选学习资料 - - - - - - - - - :张三年龄: 15 同学评语:好:李四年龄: 45 医生评语:认真:王五年龄: 35 司机评语:优秀Stuent destructor

29、Person destructor Doctor destructor Person destructor Driver destructor Person destructor Press any key to continue exercise16 13. 修改类 Figure ,将 Point 对象指针作为属性组合进来,#include class Point private: double x,y; public: Pointdouble i,double j:xi,yj void print const coutx,y; PointcoutPoint 析构 endl; ; class

30、 Figure private: Point *str; Point center; public: Figuredouble i=0,double j=0:centeri,j Point& location str=¢er; return *str; void movePoint p str=¢er; str=&p; draw; 对 Figure 的子类也做相应的修改;名师归纳总结 - - - - - - -第 10 页,共 24 页精选学习资料 - - - - - - - - - virtual void draw =0; virtual void rotatedouble

31、=0; virtual FigurecoutFigure 析构 endl; ; class Circle:public Figure private: double radius; public: Circledouble i=0,double j=0,double r=0:Figurei,j,radiusr void draw couta circle with center; location.print; coutand radiusradiusendl; void rotatedoublecoutno effectendl; CirclecoutCircle 析构 endl; ; cl

32、ass Square:public Figure private: double side,angle; public: Squaredouble i=0,double j=0,double r=0,double a=0:Figurei,j,sider,anglea void draw couta square with center; location.print; coutside lengthsideendlThe angle between one side and the X-axis isangleendl; void rotatedouble a angle+=a; coutTh

33、e angle between one side and the X-axis isangleendl; void vertices coutThe vertices od the square are:endl; 名师归纳总结 - - - - - - -第 11 页,共 24 页精选学习资料 - - - - - - - - - SquarecoutSquare 析构 draw; f-movePoint2,2; ; 1; ; 运行结果:a circle with center1,2and radius3 a circle with center1,2and radius3 Point 析构 P

34、oint 析构 a square with center4,5side length6 The angle between one side and the X-axis is0 The angle between one side and the X-axis is1 The vertices od the square are: Square 析构 Figure 析构 Point 析构 Circle 析构 Figure 析构 Point 析构 Press any key to continue /* 在 Complex 类中实现:重载 = ,.=*/ answer :#include cl

35、ass Complex public: Complexint i=0x=i; friend int operator =Complex c1,Complex c2; 名师归纳总结 - - - - - - -第 12 页,共 24 页精选学习资料 - - - - - - - - - friend int operator .=Complex c1,Complex c2; void display; private: int x; ; void Complex:display coutx; int operator =Complex c1,Complex c2 ifc1.x=c2.x return

36、 1; else return 0; int operator .=Complex c1,Complex c2 ifc1.x.=c2.x return 1; else return 0; void main Complex c16,c28; ifc1=c2 c1.display;coutis equal to;c2.display; coutendl; ifc1.=c2 c1.display;coutisnt equal to;c2.display; coutendl; run result :6isnt equal to8 名师归纳总结 - - - - - - -第 13 页,共 24 页精

37、选学习资料 - - - - - - - - - 本帖最终由陶亮 于 2022-11-30 16:31 编辑/* 1. 实现一个字符串类 String ,功能包括:1、Big Three: 析构函数 Destructor 复制构造函数copy constructor复制赋值运算符copy assignment operator2、下标操作符重载 : 只能作为类的成员函数,不能作为类的友元函数;3、输入输出操作符重载 4、= 操作符重载 5、+ 操作符重载 参考 Vector 类*/ answer :#include #include class String public: Stringstr=

38、NULL; Stringint m:lenm str=new charlen; Stringchar *s str = new charstrlens+1; strcpystr,s; len=strlens; String& operator+String& c; friend istream& operatoristream& is,String& c; friend ostream& operatorlen-1 cout 整数下标越界 endl; return ch; else return *str+n; void Disp coutstrendl; void print coutistream& is,String& c is; return is; ostream& operatorostream& os,Strin

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁