12-3-摩托车继承自行车和机动车
来源:互联网 发布:php sql错误提示 编辑:程序博客网 时间:2024/04/29 21:55
01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2011, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称:test.cpp 06.* 作 者:刘芳07.* 完成日期:2014 年05 月17 日 08.* 版 本 号:v1.0 09.* 对任务及求解方法的描述部分: 10.* 输入描述:无 11.* 问题描述: 自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类12.* 程序输出: 13.* 问题分析:略 14.* 算法设计:略 15.*/
#include <iostream>#include<conio.h>#include <windows.h>using namespace std;enum vehicleStaus {rest, running}; //车辆状态:泊车、行进class vehicle //车辆类{protected: int maxSpeed;//最大车速 int currentSpeed;//当前速度 int weight;//车重 vehicleStaus status; //rest-泊车状态;running-行进状态public: vehicle(int maxS, int w); //构造函数,初始时,当前速度总为0且处在停车状态 void start(); //由rest状态到running, 初速为1 void stop(); //由running状态到rest, 当前速度小于5时,才允许停车 void speed_up(); //加速,调用1次,速度加1 void slow_down(); //减速,调用1次,速度减1,速度为0时,停车};vehicle::vehicle(int maxS, int w){ maxSpeed=maxS; weight=w; currentSpeed=0; status=rest;}void vehicle::start(){ if(status==0) { currentSpeed=1; status=running; } else cout<<"车辆已启动!"<<endl;}void vehicle::stop(){ if(status==1) { if(currentSpeed<5) { currentSpeed=0; status=rest; } else cout<<"请先减速,在停车!"<<endl; } else cout<<"车辆早已停车!"<<endl;}void vehicle::speed_up(){ if(status==1) { if(currentSpeed<maxSpeed) currentSpeed++; else cout<<"车辆已到达最大速度,不能加速!"<<endl; } else cout<<"车辆未启动!"<<endl;}void vehicle::slow_down(){ if(status==1) { if(currentSpeed>0) currentSpeed--; else { cout<<"车辆已停止,不能减速!"<<endl; currentSpeed=0; status=rest; } } else cout<<"车辆已停止,不能减速!"<<endl;}class bicycle :virtual public vehicle//(1)自行车类的虚基类为车辆类{protected: double height; //车高public: bicycle(int maxS=10, int w=50, int h=0.7); //定义构造函数};bicycle::bicycle(int maxS, int w, int h):vehicle(maxS,w),height(h) {}class motorcar : virtual public vehicle//(2)机动车类的虚基类也为车辆类{protected: int seatNum; //座位数 int passengerNum; //乘客人数public: motorcar(int maxS=150, int w=1500, int s=5, int p=1); //定义构造函数 void addPassenger(int p=1); //增加搭载的乘客,超员要拒载,有人下车时,p为负数。当然车上乘客至少有1个(司机)。只有车停稳后才能上下客。};motorcar::motorcar(int maxS, int w, int s, int p): vehicle(maxS,w),seatNum(s),passengerNum(p) {}void motorcar::addPassenger(int p){ if(status==1) cout<<"为了确保安全请停车后在上人!"<<endl; else { if(passengerNum<seatNum) passengerNum+=p; if(passengerNum>seatNum) cout<<"车上人员已满,不能再上人!"<<endl; }}class motorcycle:public bicycle,public motorcar//(3)摩托车类的基类为自行车类和机动车类{public: motorcycle(int maxS=90, int w=100, int s=3, int p=1, int h=0.7);//定义构造函数 void show(); //显示摩托车的运行状态};motorcycle::motorcycle(int maxS, int w, int s, int p, int h): vehicle(maxS,w),bicycle(maxS,w,h),motorcar(maxS,w,s,p) {}void motorcycle::show(){ cout<<" "<<"状态:"; if(status==0) cout<<"泊车"<<" "<<"车速:"<<currentSpeed<<"/"<<maxSpeed <<" "<<"当前成员"<<passengerNum<<"/"<<seatNum<<endl; else cout<<"前进"<<" "<<"车速:"<<currentSpeed<<"/"<<maxSpeed <<" "<<"当前成员"<<passengerNum<<"/"<<seatNum<<endl;}int main( ){ motorcycle m; bool end=false; while (!end) { cout<<"请操作:1-启动 2-加速 3-减速 4-有人上车 5-有人下车 6-停车 0-结束"<<endl; char keydown= _getch(); //_getch()返回键盘上读取的字符 switch(keydown) { case '1': cout<<"选中的操作是1-启动\t"; m.start(); break; case '2': cout<<"选中的操作是2-加速\t"; m.speed_up(); break; case '3': cout<<"选中的操作是3-减速\t"; m.slow_down(); break; case '4': cout<<"选中的操作是4-有人上车\t"; m.addPassenger(); break; case '5': cout<<"选中的操作是5-有人下车\t"; m.addPassenger(-1); break; case '6': cout<<"选中的操作是6-停车\t"; m.stop(); break; case '0': end=true; break; } m.show(); cout<<endl; Sleep(200); //要包含头文件<windows.h> } return 0;}
0 0
- 12-3-摩托车继承自行车和机动车
- 12周 摩托车继承机动车和自行车
- 12周【项目3 - 摩托车继承自行车和机动车】
- 12项目3 - 摩托车继承自行车和机动车
- 第12周-项目3-摩托车继承自行车和机动车
- 12周 项目3 摩托车继承机动车和自行车
- 第12周-项目3-摩托车继承自行车和机动车 .
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- 摩托车继承自行车和机动车
- [OOP作业]设计一个栈,并用括号匹配检验
- 直接拿来用!最火的Android开源项目(完结篇)
- DragSortListView学习总结
- my_bank
- 多张表struts2导入excel数据 其中一张表是一对多 ,故excel横向cell长度可变
- 12-3-摩托车继承自行车和机动车
- NYOJ 37 回文字符串
- android瀑布流效果(仿蘑菇街)
- java之join/wait/notify/notifyall
- find命令不区分大小写
- failed to install Tomcat7 service解决办法
- JAVA UUID 生成 - jdonson - 博客园 http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html
- linux常用查看硬件设备和系统信息命令
- 2014年5月12日 中美电视剧比较