/**copyright (c) 2016, College of Computer Science, Yantai University *all rights reserved.* file name: main.cpp* Author: Guo Hui * Date of Completion: May 10, 2016 * version number: v1.0** Problem Description: Project-Motorcycle Succession Self Vehicles and motor vehicles. * Input Description: None. * Program output: information. */#include <iostream> #include <conio.h> #include <windows.h>using namespace Std;enum Vehiclestaus { rest, running}; Vehicle status: Parking, travel class Vehicle//Vehicle class {Protected:int maxspeed; Maximum speed int currentspeed; Current speed int weight; Vehicle weight Vehiclestaus status; rest-parking status; running-travel status public:vehicle (int maxs, int w); Constructor, when initially, the current speed is always 0 and in the parking state void start (); From rest state to running, the initial velocity is 1 void stop (); Parking void speed_up () is allowed by the running state to rest at the current speed of less than 5 o'clock; Acceleration, call 1 times, speed plus 1 void slow_down (); Deceleration, call 1 times, speed minus 1, speed of 0 o'clock, parking}; vehicle::vehicle (int maxs, int w) {maxspeed=maxs;currentspeed=0;weight=w;status=rest;} void Vehicle::start () {status=running;currentspeed=1;} void Vehicle::stop () {if (currentspeed<5) {status=rest;currentspeed=0;}} void Vehicle::speed_up () {if (currentspeed<=maxspeed-1) currentspeed++;} void Vehicle::slow_down (){if (currentspeed>=1) currentspeed--;if (currentspeed==0) status=rest;} Class Bicycle:virtual public vehicle//(1) The virtual base class of the bicycle class is the vehicle class {protected:double height;//vehicle height public:bicycle (int maxs=10, in T w=50, int h=0.7); Define constructor}; bicycle::bicycle (int maxs, int w, int h): Vehicle (Maxs, W), height (h) {}class motorcar:virtual public vehicle//(2) Virtual base class of motor vehicle class Also for vehicles class {Protected:int seatnum;//seat number int passengernum;//number of passengers public:motorcar (int maxs=150, int w=1500, int s=5, I NT P=1); Defines the constructor void Addpassenger (int p=1); To increase the number of passengers, overcrowding to refuse, when someone gets off, p is negative. Of course, there are at least 1 passengers (drivers) in the car. Only when the car stops steady can the guest. }; Motorcar::motorcar (int maxs, int w, int s, int p): Vehicle (Maxs, W), Seatnum (s), Passengernum (p) {}void motorcar:: Addpassenger (int p) {if (status==running) {cout<< "vehicle is driving, stop and get off! "<<endl; } else {passengernum+=p; if (passengernum>seatnum) {passengernum=seatnum; cout<< "allegedly overcrowding, has been cleared to reach full!" "<<endl; } else if (passengernum< 1) {passengernum=1; cout<< "Ask the driver not to leave the post!" "<<endl; }}}class motorcycle:public bicycle,public motorcar//(3) The base class of motorcycle class for bicycle class and motor vehicle class {public:motorcycle (int maxs=90, int w=100, int s=3, int p=1, int h=0.7);//define constructor void Show (); Show the running status of motorcycles}; motorcycle::motorcycle (int maxs, int w, int s, int p, int h): Vehicle (Maxs, W), Bicycle (Maxs, W, h), Motorcar (Maxs, W, S, p) {}//shows the running status of the motorcycle void Motorcycle::show () {cout<< "status:"; if (status==rest) cout<< "parking; \ t"; else cout<< "marching; \ t"; cout<< "Speed:" <<currentSpeed<< "/" << maxspeed << "\ t current occupant:" <<passengerNum<< " /"<< seatnum << Endl;} int main () {motorcycle m; BOOL End=false; while (!end) {cout<< "please operate: 1-Start 2-acceleration 3-deceleration 4-people get on the bus 5-someone gets off 6-stop 0-end" <<endl; Char keydown= _getch (); _getch () returns the character read on the keyboard switch (keydown) {case ' 1 ': cout<< "The selected operation is 1-start \ t"; M.start (); Break Case ' 2 ': cout<< "The selected operation is 2-acceleration \ t"; M.speed_up (); Break Case ' 3 ': cout<< "The selected operation is 3-deceleration \ t"; M.slow_down (); Break Case ' 4 ': cout<< "The selected operation is 4-someone get on the bus \ T"; M.addpassenger (); Break Case ' 5 ': cout<< "The selected operation is 5-someone gets off \ t"; M.addpassenger (-1); Break Case ' 6 ': cout<< "The selected operation is 6-stop \ T"; M.stop (); Break Case ' 0 ': end=true; Break } m.show (); cout<<endl; Sleep (200); To include header file <windows.h>} return 0;}
Operation Result:
Motorcycles Inherit bicycles and motor vehicles