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.