Please i need help with this. Thanks so much! Objective: The objective of this h
ID: 3851533 • Letter: P
Question
Please i need help with this. Thanks so much!
Objective:
The objective of this homework is to create a set of subclasses and a base class.
Task 1: Download the following files and view the demo-code from class.
Download the starter code here: https://github.com/fuzzpault/UIndy-CSCI156-2016-Summer/tree/master/Solutions-Starters/HW06-Vehicles
Type make to compile the vehicle-sandbox.cpp file.
Type make test to run the vehicle_test.cpp file.
Type make coverage to find the code coverage on your tests.
Look at the following code for hints on completing this assignment: https://github.com/fuzzpault/UIndy-CSCI156-2016-Summer/tree/master/Week06-Inheritance-Poly
Task 2: Create a base class and sub-classes inside vehicle.h.
Create a vehicle.h file.
Your task is to create 4 classes, Bike, Car, Truck, Airplane. It is your job to choose appropriate types for all variables. Each class below should have it’s own constructor which specifies all parameters.
You MUST create a base class (Vehicle is a good name) to make your life easier!
Here are the specifications for the classes:
Bike class:
getColor, setColor - stored as a string.
getPrice - Returns a float. A new bike is $1000, and it depreciates 100 per year, down to 0.
1 passenger only
2 wheels
getYear, setYear - stored as an int. Year built. Use the current year if the given value is in the future.
print - Returns a string of the details of the vehicle.
Car class:
getColor, setColor - stored as a string.
getPrice - Returns a float. $5,000 per passenger, minus 500 depreciation per year, down to 100. +200 if it has air-conditioning. +100 if it has a DVD player.
getPassengers, setPassengers - 1 to 10 passengers.
getYear, setYear - stored as an int. Year built. Use the current year if the given value is in the future.
getAir, setAir - Bool if the car has air-conditioning.
getDVD, setDVD - Bool if the car has a DVD player
4 wheels
print - Returns a string of the details of the vehicle.
Truck class:
getColor, setColor - stored as a string.
getPrice - Returns a float. $10,000 base price, plus $1,000 per passenger, minus 500 depreciation per year, down to 200. $1.25 per carrying capability lb, $200 per wheel.
getPassengers, setPassengers - 1 to 4 passengers.
getYear, setYear - stored as an int. Year built. Use the current year if the given value is in the future.
getCap, setCap - Int for the lb it can carry, up to 20,000.
getWheels, setWheels - 4 - 16 wheels, integer, must be even
print - Returns a string of the details of the vehicle.
Airplane class:
getColor, setColor - stored as a string.
getPrice - Returns a float. $15,000 base price, plus $1,000 per passenger, minus 500 depreciation per year, down to1000. $5.25 per carrying capability lb, $100 per prop.
getPassengers, setPassengers - 1 to 40 passengers.
getYear, setYear - stored as an int. Year built. Use the current year if the given value is in the future.
getCap, setCap - Int for the lb it can carry, up to 20,000.
getProps, setProps - 1+, integer
print - Returns a string of the details of the vehicle.
If a vehicle has a set value (a bike only has 2 wheels), the setter exists but shouldn’t do anything.
All classes should only have a default constructor, you may have others, but they aren’t required.
All variables must be private or protected.
Use 2017 as the current year. (This is a constant at the top of vehicle.h)
If a value is provided which is outside the allowed values (10000 passengers), don’t do anything.
Task 3: Write at least 20 unit tests in vehicle_test.cpp for all functionality. Your goal is to have 100% coverage (90% for full credit).
Explanation / Answer
vahicle.h:
#ifndef VEHICLE_H
#define VEHICLE_H
/* @file vehicle.cpp
@author < Fill Me In >
@date < Fill Me In >
@description Implements 5 classes for vehicle information
*/
#include <string>
using namespace std;
const int CURRENT_YEAR = 2017; // Use this variable whever you are doing
// your price/year calculations.
// Insert your classes below!
class vehicle{
private: string color;
float prise;
int number; //number of passengers
public:
vehicle(){
}
string getColor(){
return color;
}
void setColor(string col){
color=col;
}
float getPrice(){
return price;
}
int getPassenger(){
return
}
void setPassenger(int i){
n=i;
}
} ;
class Bile : public vahicle{
getPrice(int n){
number=n;
if(number==1){
price = 1000;
}
return price;
}
};
class Car : public vahicle{
getPrice(int n, char ch1, char ch2){
number=n;
if(ch1=='y'&& ch2==Y){
price = (n*5000)+200+100;
}
if(ch1=='y'|| ch2==Y){
price = (n*5000);
}
if(ch1!='y'&& ch2==Y){
price = (n*5000)+100;
}
if(ch1=='y'&& ch2!=Y){
price = (n*5000)+100;
}
return price;
}
};
class truck : public vahicle{
getPrice(int n, char ch1, char ch2){
number=n;
if(ch1=='y'&& ch2==Y){
price = 10000+(n*1000)+200+200;
}
if(ch1=='y'|| ch2==Y){
price = 10000+(n*1000);
}
if(ch1!='y'&& ch2==Y){
price = 10000+(n*1000)+200;
}
if(ch1=='y'&& ch2!=Y){
price = 10000+(n*1000)+200;
}
return price;
}
};
class airplane public vahicle{
getPrice(int n, char ch1, char ch2){
number=n;
if(ch1=='y'&& ch2==Y){
price = 15000+(n*1000)+2000+1000;
}
if(ch1=='y'|| ch2==Y){
price = (n*1000);
}
if(ch1!='y'&& ch2==Y){
price = 15000+(n*1000)+1000;
}
if(ch1=='y'&& ch2!=Y){
price = 15000+(n*1000)+1000;
}
return price;
}
};#endif
main.cpp
#include "gtest/gtest.h"
#include "vehicle.h"
TEST(car,name){
Car a;
a.setName("Olds");
EXPECT_EQ(a.getName(), "Olds");
}
int main(){
vehicle vih;
int n1;
char ch1,ch2;
cout<<"enter no of passengers";
cin>>n1;
cout<<"do you need air-conditioning (y/n)";
cin>>ch1;
cout<<"do you need DVD (y/n)";
cin>>ch2;
if(n1<=2)
vih.getBike(n1,ch1,ch2);
if(n1>=3 && n1<<=4)
vih.getCar(n1,ch1,ch2);
if(n1>=5 && n1<<=10)
vih.getTruck(n1,ch1,ch2);
if(n1>=11 && n1<<=40)
vih.getAirPlane(n1,ch1,ch2);
}