i need some one help me figure out the error in my 2 functions accelerate and br
ID: 3634735 • Letter: I
Question
i need some one help me figure out the error in my 2 functions accelerate and breakwhen the letter H sent the speed should increase by 10 but 5 if letter is m means medium and by only one if letter l the same with break speed will decrease by 10 or 5 or 1 depend on the letters sent h or m or l
her my code
#include <iostream>
using namespace std;
//#include<cstring>
#include<string>
class Car
{
public:
Car(string make,string model,int y=2001); //constructor with three prameters
//constructor with two parameter
string GetMake();
string GetMode();
int GetYear();
int GetSpeed();
bool SetValue(string make,string model,int y); // set the fraction's value through parameters
void Display(); // display output
bool Accelerate(char c); //
bool Brake(char c);
private:
string carmake;
string carmodel ;
int carspeed;
int year;
};
int main()
{
Car car1("Ford", "Crown Victoria", 1997);
Car car2("Chevrolet", "Camaro");
Car car3("Hyundai", "Sonata", -15);
cout << " *** Displaying each car's stats ";
cout << "Car1: ";
car1.Display();
cout << " Car2: ";
car2.Display();
cout << " Car3: ";
car3.Display();
cout << " *** Accelerating car 3 several times: ";
car3.Accelerate('h'); // accelerate hard
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('M'); // accelerate medium
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('L'); // accelerate low
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('L'); // accelerate low
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('Z'); // accelerate with invalid level
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
cout << " *** Resetting car make/models ";
car1.SetValue("Flinstones", "Rock Car", -2100);
car3.SetValue("Toyota", "Camry", 2005);
cout << "Car1: ";
car1.Display();
cout << " Car3: ";
car3.Display();
cout << " *** Decelerating car3 ";
car3.Brake('m');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('L');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('l');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('M');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('A');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('H');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
cout << " *** Calling accessors ";
cout << "Car1: ";
cout << " Make: " << car1.GetMake() << ' '
<< " Model: " << car1.GetMode() << ' '
<< " Year: " << car1.GetYear() << ' ';
cout << "Car2: ";
cout << " Make: " << car2.GetMake() << ' '
<< " Model: " << car2.GetMode() << ' '
<< " Year: " << car2.GetYear() << ' ';
cout << "Car1: ";
cout << " Make: " << car3.GetMake() << ' '
<< " Model: " << car3.GetMode() << ' '
<< " Year: " << car3.GetYear() << ' ';
return 0;
}
//--------------- CAR.CPP ---------------
// The class definition for CAR.
//--------constructors definitions------------------
Car::Car(string make,string model,int y)
//constructor with three prameters
{
carmake=make;
carmodel=model;
carspeed=0;
if ( y<0)
year=2010;
else
year=y;
}
string Car::GetMake()
{
return carmake;
}
string Car::GetMode()
{
return carmodel;
}
int Car::GetYear()
{
return year;
}
int Car::GetSpeed()
{
return carspeed;
}
bool Car::SetValue(string make,string model,int y)
{
if(y<0)
{
carmake=make;
carmodel=model;
year=y;
return true;
}
else
return false;
}
void Car::Display()
{
cout<<"Your car is a "<<year<<" "<<carmake<<" "<<carmodel<<endl;
cout<< "And it is currently going "<<carspeed<<" "<<"MPH";
}
bool Car::Accelerate(char c)
{
if(!((c=='h')||(c='H')||(c=='m')||(c=='M')||(c=='l')||(c=='L')))
return false;
else
{
if(c=='h'||c=='H')
carspeed+=10;
if(c=='m'||c=='M')
carspeed+=5;
if(c=='l'||c=='L')
carspeed+=1;
return true;
}
}
bool Car::Brake(char c)
{
if((c=='h')||(c='H')||(c=='m')||(c=='M')||(c=='l')||(c=='L'))
{
if(c=='h'||c=='H'&& carspeed>10)
carspeed-=10;
if((c=='m')||(c=='M') && (carspeed>5))
carspeed-=5;
if((c=='l')||(c=='L')&&(carspeed>1))
carspeed-=1;
return true;
}
else
return false;
}
Explanation / Answer
please rate - thanks
it was order of operation && is before ||, but don't need it
#include <iostream>
using namespace std;
//#include<cstring>
#include<string>
class Car
{
public:
Car(string make,string model,int y=2001); //constructor with three prameters
//constructor with two parameter
string GetMake();
string GetMode();
int GetYear();
int GetSpeed();
bool SetValue(string make,string model,int y); // set the fraction's value through parameters
void Display(); // display output
bool Accelerate(char c); //
bool Brake(char c);
private:
string carmake;
string carmodel ;
int carspeed;
int year;
};
int main()
{
Car car1("Ford", "Crown Victoria", 1997);
Car car2("Chevrolet", "Camaro");
Car car3("Hyundai", "Sonata", -15);
cout << " *** Displaying each car's stats ";
cout << "Car1: ";
car1.Display();
cout << " Car2: ";
car2.Display();
cout << " Car3: ";
car3.Display();
cout << " *** Accelerating car 3 several times: ";
car3.Accelerate('h'); // accelerate hard
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('M'); // accelerate medium
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('L'); // accelerate low
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('L'); // accelerate low
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Accelerate('Z'); // accelerate with invalid level
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
cout << " *** Resetting car make/models ";
car1.SetValue("Flinstones", "Rock Car", -2100);
car3.SetValue("Toyota", "Camry", 2005);
cout << "Car1: ";
car1.Display();
cout << " Car3: ";
car3.Display();
cout << " *** Decelerating car3 ";
car3.Brake('m');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('L');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('l');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('M');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('A');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
car3.Brake('H');
cout << "Car3 speed: " << car3.GetSpeed() << ' ';
cout << " *** Calling accessors ";
cout << "Car1: ";
cout << " Make: " << car1.GetMake() << ' '
<< " Model: " << car1.GetMode() << ' '
<< " Year: " << car1.GetYear() << ' ';
cout << "Car2: ";
cout << " Make: " << car2.GetMake() << ' '
<< " Model: " << car2.GetMode() << ' '
<< " Year: " << car2.GetYear() << ' ';
cout << "Car1: ";
cout << " Make: " << car3.GetMake() << ' '
<< " Model: " << car3.GetMode() << ' '
<< " Year: " << car3.GetYear() << ' ';
system("pause");
return 0;
}
//--------------- CAR.CPP ---------------
// The class definition for CAR.
//--------constructors definitions------------------
Car::Car(string make,string model,int y)
//constructor with three prameters
{
carmake=make;
carmodel=model;
carspeed=0;
if ( y<0)
year=2010;
else
year=y;
}
string Car::GetMake()
{
return carmake;
}
string Car::GetMode()
{
return carmodel;
}
int Car::GetYear()
{
return year;
}
int Car::GetSpeed()
{
return carspeed;
}
bool Car::SetValue(string make,string model,int y)
{
if(y<0)
{
carmake=make;
carmodel=model;
year=y;
return true;
}
else
return false;
}
void Car::Display()
{
cout<<"Your car is a "<<year<<" "<<carmake<<" "<<carmodel<<endl;
cout<< "And it is currently going "<<carspeed<<" "<<"MPH";
}
bool Car::Accelerate(char c)
{
if(c=='h'||c=='H')
carspeed+=10;
else if(c=='m'||c=='M')
carspeed+=5;
else if(c=='l'||c=='L')
carspeed+=1;
else
return false;
return true;
}
bool Car::Brake(char c)
{if((c=='h'||c=='H')&& carspeed>10)
carspeed-=10;
else if(((c=='m')||(c=='M')) && (carspeed>5))
carspeed-=5;
else if(((c=='l')||(c=='L'))&&(carspeed>1))
carspeed-=1;
else
return false;
return true;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.