Need help with this C++ question
Step 1: Add the follow ing lab6.cpp program. Here is a copy of the source code 2// This program determines the fee for a cat or dog pet tag. 3 // It uses nested if/else statements. 4 // PUT YOUR NAME HERE. 5 #include 6 #include 7 using namespace stod; 9 int main0) 10 string pet; "cat" or "dog 12 char spayed; l'y' or n 13 14 I/Get pet type and spaying information 15 cout <<"Enter the pet type (cat or dog): " 16 cin >> pet; 17 cout <<"Has the pet been spayed or neutered (y/n)?" 18 cin >>spayed; 19 20 / Determine the pet tag fee 21 if (pet--"cat") 22 if (spayed 'y) 23 cout<< "Fee is $4.00 n"; 24 else 25 cout<< "Fee is $8.00 n"; 26 27 else if (pet "dog") 28 if (spayed 'y) 29 cout<<"Fee is $6.00 In"; 30 else 31 out<<"Fee is $12.00 In"; 33 else 34 cout<<"Only cats and dogs need pet tags. In" 35 36 return 0;
Step 2: Compile the program and then run it 7 times. For each run use the input test data shown in the table below and write down the fee information that is displayed. Indicate whether or not the displayed information seems to be correct or not. Run Input data FeIformation Correct? cat y cat n cat Y 4 6 dog Y hamster n
Step 3: Improve the program in the following two ways. Use a logical OR on lines 22 and 28 so that either a lowercase 'y' or an uppercase 'Y is accepted. Currently when an animal other than a cat or dog is entered (such as a hamster), the program asks if it is spayed or neutered before displaying the message that only cats and dogs need pet tags. Find a way to make the program only execute the spay/neuter prompt and input when the pet type is cat or dog. Step 4: Recompile your revised previous table. Make sure it works correctly for all 7 cases. program and test it with the same 7 test cases given in the previous table.Make sure it works correctly in all 7 cases

Respuesta :

Answer:

Here is the improvement of the program:

#include<iostream>  //to use input output functions

using namespace std;// to identify objects like cin cout

int main()  {   //start of main function

  string pet;         // "cat" or "dog"  

  char spayed;       // 'y' or 'n'      

  // Get pet type and spaying information  

cout << "Enter the pet type (cat or dog): ";   //prompts user to enter pet type

  cin  >> pet;   //reads input pet type

  if(pet=="cat"|| pet=="dog")     {   //use OR operator to check the type

  cout << "Has the pet been spayed or neutered (y/n)? ";   //prompts user to input if pet been spayed or neutered

  cin  >> spayed;}   //reads input spayed value

  else   // display the message below

  cout<<"only cats and dogs need pet tags";        

  // Determine the pet tag fee  

if (pet == "cat")   //if type of pet is cat

  {  if (spayed == 'y' || spayed == 'Y')  //lowercase or upper case y is accepted  

        cout << "Fee is $4.00 \n";   //if spayed is y or Y

     else   //if spayed is not y or Y

        cout << "Fee is $8.00 \n";   }  

  else if (pet == "dog")   //if type is dog

  {  if (spayed == 'y' || spayed=='Y')   //if spayed is y or Y

        cout << "Fee is $6.00 \n";  

     else   //if spayed is not y or Y

        cout << "Fee is $12.00 \n";    }        

  return 0;   }

 

Explanation:

Step 1:

Here is the copy of original source code:

#include <iostream>

using namespace std;

int main() {

string pet;

char spayed;

cout <<"Enter the pet type (cat or dog): ";

cin >> pet;

cout <<"Has the pet been spayed or neutered (y/n)?" ;

cin >>spayed;

if (pet=="cat") {

if (spayed=='y')

cout<< "Fee is $4.00 \n";

else

cout<< "Fee is $8.00 \n"; }

else if (pet== "dog") {

if (spayed=='y')

cout<<"Fee is $6.00 \n";

else

cout<<"Fee is $12.00 \n";}

else  

cout<<"Only cats and dogs need pet tags";

return 0; }

Step 2:

Compile the program and then run it 7 times

Run       Input Data         Fee Information                                      Correct

 1                cat y               Fee is $4.00                                           Yes  

 2               cat n               Fee is $8.00                                           Yes    

 3               cat Y               Fee is $8.00                                           No

 4               dog y              Fee is $6.00                                           Yes

 5               dog n              Fee is $12.00                                         Yes

 6               dog Y              Fee is $12.00                                         No

 7              hamster n        Only cats and dogs need pet tags       Yes                

Step 3:            

See the Answer section

OR logical operator is used so that either a lowercase 'y' or an uppercase 'Y is accepted:

if (spayed == 'y' || spayed == 'Y')

program only execute the spay/neuter prompt and input when the pet type is cat or dog:

if(pet=="cat"|| pet=="dog")  

 {     cout << "Has the pet been spayed or neutered (y/n)? ";    

cin  >> spayed; }    

else    

cout<<"only cats and dogs need pet tags";      

Step 4:

Run       Input Data         Fee Information                                      Correct

 1                cat y               Fee is $4.00                                           Yes  

 2               cat n               Fee is $8.00                                           Yes    

 3               cat Y               Fee is $4.00                                           Yes

 4               dog y              Fee is $6.00                                           Yes

 5               dog n              Fee is $12.00                                         Yes

 6               dog Y              Fee is $6.00                                           Yes

 7              hamster         Only cats and dogs need pet tags          Yes  

In the last input hamster the program does not ask for spayed information. It only asks to Enter the pet type. When the user enters hamster the program displays the message: Only cats and dogs need pet tags.