第12周项目三
来源:互联网 发布:sql认证考试 编辑:程序博客网 时间:2024/05/18 02:41
/** Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp* 作 者: 李中意* 完成日期:2014 年 5 月 13 日* 版本号: v1.0* 输入描述:无*/#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)//构造函数,初始时,当前速度总为0且处在停车状态 { maxSpeed=maxS; weight=w; } void start() //由rest状态到running, 初速为1 { currentSpeed=0; if(currentSpeed==0) { currentSpeed=1; } else { cout<<"车已开动"<<endl; } } void stop() //由running状态到rest, 当前速度小于5时,才允许停车 { if(currentSpeed<5) { currentSpeed=0; cout<<"已安全停车"<<endl; } else { cout<<"速度过快,请先减速后再停车"<<endl; } } void speed_up() //加速,调用1次,速度加1 { if(currentSpeed>=maxSpeed) { cout<<"速度已达到最大速度,请勿超速驾驶"<<endl; } else { currentSpeed=currentSpeed+1; } } void slow_down() //减速,调用1次,速度减1,速度为0时,停车 { if(currentSpeed==0) { cout<<"车已停下"<<endl; } else if(currentSpeed==1) { currentSpeed=currentSpeed-1; cout<<"车已停下"<<endl; } else { currentSpeed=currentSpeed-1; } }};class Bicycle :virtual public Vehicle//(1)自行车类的虚基类为车辆类{protected: double height; //车高public: Bicycle(int maxS=10, int w=50, int h=0.7):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): Vehicle(maxS,w) , seatNum(s),passengerNum(p) { } //定义构造函数 void addPassenger(int p=1)//增加搭载的乘客,超员要拒载,有人下车时,p为负数。当然车上乘客至少有1个(司机)。只有车停稳后才能上下客。 { if(currentSpeed!=0) cout<<"请先停车"<<endl; else { passengerNum+=p; if(passengerNum>seatNum) cout<<"已超员,请注意乘客安全"<<endl; if(passengerNum<1) { passengerNum=1; 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):Vehicle(maxS,w),Bicycle(h),Motorcar(s,p) {} //定义构造函数 void show() //显示摩托车的运行状态 { if(currentSpeed>=0) { cout<<"状态: 行进"<<endl; } else { cout<<"状态: 静止"<<endl; } cout<<"车速为:"<<currentSpeed<<endl; cout<<"当前成员:"<<passengerNum<<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周项目三
- 第12 周 项目三
- 2014-第12周项目三-摩托车
- 第12周项目三转二进制
- 第3周项目三
- 第12周项目1:法三(运用数组)
- 第12周 项目三-日期时间类
- 第12周项目三广度优先遍历算法实现
- 第12周 【项目三】 Floyd算法验证
- 第6周项目三-点类
- 第7周项目三-友元类
- 第14周项目三-CSolid
- 第06周:项目三:多文件组织
- 第07周:项目三:改
- 第2周项目三 体验复杂度
- 第16周项目三--电子字典
- 第2周 【项目三】 汉诺塔
- 第4周 【项目三】 单链表应用
- Poj 3685 Matrix
- DevStore独家点评:腾讯信鸽推送服务
- 2014.05.14日志----修饰符
- ubuntu 死机重启的方式 Login timed out after 60 seconds
- VC++简单获取网页代码
- 第12周项目三
- 秀外慧中的springMVC(三)---文件的上传
- C# 编码总结
- android camera
- 标准SQL语句(4) --- 表的查询(2)
- linux下的定时操作
- 起来吧!不要做奴隶的IT工程师们!
- 无法连接到http://XXX/arcgis/services 错误拒绝访问:计算机som服务为启动或som权限
- 面向对象表达式(四)