Home > Software engineering >  PETS SPA how to add the options for extra charge when the user picks small medium or large
PETS SPA how to add the options for extra charge when the user picks small medium or large

Time:11-12

#include <stdio.h>

int main(void) {

int option;
int many;
char name;
float CNP = 20.00;

float TWS = 30.00;

float FG = 40.00;

float Many1 = 0.00;
float Many2 = 5.00;
float Many3 = 15.00;



while(1){

printf("-------------Welcome-------------\n");
printf("**********M.A.C PETS SPA*********\n");
printf("     choose from our Specials\n");
printf("---------------------------------\n");

printf("[1] CLEAN UP Special includes General shower and haircut - $20.00\n");
printf("-----------------------------------------------------\n");

printf("[2] THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim - $30.00\n");
printf("-----------------------------------------------------\n");

printf("[3] FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne - $40.00\n");
printf("-----------------------------------------------------\n");



printf("Enter your special: number:\n");
scanf("%d",&option);



if(option == 1)

{

printf("What size is your dog?: ");
printf("[1]: small\n");
printf("[2]: medium\n");
printf("[3]: Large\n");
scanf("%d\n",&many);

printf("Total Price including extra charge for the size is = $%.2f\n",(CNP many) );

break;

}

else if(option == 2)

{

printf("What size is your dog?: \n");
printf("[1]: small\n");
printf("[2]: medium\n");
printf("[3]: Large\n");
scanf("%d",&many);

printf("Total Price including extra charge for the size is = $%.2f",TWS*many   (TWS*many*0.07) );

break;

}

else if(option == 3)  

{

printf("What size is your dog?: \n");
printf("[1]: small\n");
printf("[2]: medium\n");
printf("[3]: Large\n");


scanf("%d",&many);

printf("Total Price including extra charge for the size is = $%.2f",FG*many   (FG*many*0.07) );

break;

}



else printf("Invalid item number! Re-enter item number\n");

}

return 0;

}

Im trying to give the user the option to choose the size of their dog and add the extra charge according to the size they picked.I cant seem to get it right i feel like i need to create another loop or use struct i need help please!!!

I tried using the loops and the input lets say would be they pick the first option and the size would be medium

then the output would be 20.00 plus 15.00 = 35.00

CodePudding user response:

You don't want the scanf() format string to contain a newline. Refactored to reduce code duplication (I will revise my answer when you clarify the formula):

#include <stdio.h>

struct option {
    char *string;
    float price;
};

float ask(const char *prompt, size_t n, const struct option options[n]) {
    for(;;) {
        printf("%s\n\n", prompt);
        for(int i = 0; i < n; i  ) {
            printf("[%d] %s - $%.2f\n"
                "-----------------------------------------------------\n",
                i   1,
                options[i].string,
                options[i].price
            );
        }
        printf("\n");
        int o;
        if(scanf("%d", &o) != 1) {
            printf("Option could not be read.\n\n");
            while(getchar() != '\n');
            continue;
        }
        printf("\n");
        for(int i = 0; i < n; i  ) {
            if(o == i   1)
                return options[i].price;
        }
        printf("Option %d was not valid.\n", o);
    }
}

int main(void) {
    for(;;) {
        float service = ask(
            "-------------Welcome-------------\n"
            "**********M.A.C PETS SPA*********\n"
            "     choose from our Specials\n"
            "---------------------------------",
            3,
            (const struct option []) {
                { "CLEAN UP Special includes General shower and haircut", 20 },
                { "THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim", 30
                },
                { "FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne", 40 }
            }
        );

        float size = ask(
            "What size is your dog?",
            3,
            (const struct option []) {
                { "Small", 0 },
                { "Medium", 5 },
                { "Large", 15 },
            }
        );

        printf("Total Price including extra charge for the size is = $%.2f\n\n", service   size);
    }
}

and example run:

-------------Welcome-------------
**********M.A.C PETS SPA*********
     choose from our Specials
---------------------------------

[1] CLEAN UP Special includes General shower and haircut - $20.00
-----------------------------------------------------
[2] THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim - $30.00
-----------------------------------------------------
[3] FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne - $40.00
-----------------------------------------------------

1

What size is your dog?

[1] Small - $0.00
-----------------------------------------------------
[2] Medium - $5.00
-----------------------------------------------------
[3] Large - $15.00
-----------------------------------------------------

x
Option could not be read.

What size is your dog?

[1] Small - $0.00
-----------------------------------------------------
[2] Medium - $5.00
-----------------------------------------------------
[3] Large - $15.00
-----------------------------------------------------

2

Total Price including extra charge for the size is = $25.00
  • Related