Рассчитайте скидку на фитнес-цену (скидка 30%, 20% и 15%)

Пользовательские функции

Стоимость членства в фитнес-центре выглядит следующим образом:

  • Скидка для пенсионеров составляет 30%.
  • Если членство куплено и оплачено за 12 и более месяцев, скидка составляет 15%
  • Если куплено и оплачено более пяти индивидуальных тренировок, скидка на каждую сессию составляет 20%.

Напишите программу на основе меню, которая определяет стоимость нового членства. Ваша программа должна содержать функцию, которая отображает общую информацию о фитнес-центре и его расходах, функцию получения всей необходимой информации для определения стоимости членства и функцию определения стоимости членства. Используйте соответствующие параметры для передачи информации в и из функции. (Не используйте глобальные переменные.)

Мои коды:

#include <iostream>
#include <iomanip>

using namespace std;

// program constants

void setPrices(double&, double&);
void getInfo(bool&, bool&, bool&, int&, int&);
double membershipCost(double, int, double, int, bool, bool, bool);

void displayCenterInfo();


int main()
{
    bool seniorCitizen;
    bool boughtFiveOrMoreSessions;
    bool paidTwelveOrMoreMonths;

    int numberOfMembershipMonths;
    int numberOfPersonalTrainingSessions;
    double regularMembershipChargesPerMonth;
    double costOfOnePersonalTrainingSession;

    double memberCost;

    cout << fixed << showpoint << setprecision(2);

    displayCenterInfo();

    cout << endl;

    setPrices(regularMembershipChargesPerMonth, costOfOnePersonalTrainingSession);

    getInfo(seniorCitizen, boughtFiveOrMoreSessions, paidTwelveOrMoreMonths, numberOfMembershipMonths, numberOfPersonalTrainingSessions);

    // cal getInfo
    memberCost = membershipCost(regularMembershipChargesPerMonth, numberOfMembershipMonths, costOfOnePersonalTrainingSession,
        numberOfPersonalTrainingSessions, seniorCitizen, boughtFiveOrMoreSessions, paidTwelveOrMoreMonths);

    cout << "$" << memberCost;

    system("pause");
    return 0;
}

void displayCenterInfo()
{
    cout << "Welcome to Stay Healty and Fit center." << endl;
    cout << "This program determines the cost of a new membership." << endl;
    cout << "If you are a senior citizen, then the discount is 30% of "
        << "of the regular membership price." << endl;
    cout << "If you buy membership for twelve months and pay today, the "
        << "discount is 15%." << endl;
    cout << "If you buy and pay for 6 or more personal training session today, "
        << "the discount on each session is 20%." << endl;
}

void setPrices(double& regMemPrice, double& personalTrSesCost)
{

    cout << "Please enter the cost of regular Membership per month: " << endl;
    cin >> regMemPrice;

    cout << "Please enter the cost of one personal traning session: " << endl;
    cin >> personalTrSesCost;

}

void getInfo(bool& senCitizen, bool& bFiveOrMoreSess, bool& paidTwMnth,
    int& nOfMonths, int& nOfPersonalTrSess)
{
    //Senior Verification
    char userInputSenior;
    cout << "Are you Senior? Please enter 'Y' or 'N': ";
    cin >> userInputSenior;

    if (userInputSenior == 'y' && userInputSenior == 'Y')
    {
        senCitizen = true;
    }
    else
        senCitizen = false;

    cout << endl;


    //Number of personal training session.
    cout << "Enter the number of personal training sessions bought: ";
    cin >> nOfPersonalTrSess;

    if (nOfPersonalTrSess >= 5)
    {
        bFiveOrMoreSess = true;
    }
    else
        bFiveOrMoreSess = false;

    cout << endl;


    //Number of months
    cout << "Enter the number of months you are paying for: ";
    cin >> nOfMonths;

    if (nOfMonths >= 12)
    {
        paidTwMnth = true;
    }
    else
        paidTwMnth = false;

}

double membershipCost(double regMemPricePerMth, int nOfMonths,
    double personalTrSesCost, int nOfPersonalTrSess,
    bool senCitizen, bool bFiveOrMoreSess, bool paidTwMnth)
{
    double finalMembershipCost, finalSessionCost;


    //Session Discount
    if (bFiveOrMoreSess)
    {
        personalTrSesCost = personalTrSesCost * 0.8;
    }
    else
    {
        personalTrSesCost = personalTrSesCost;
    }


    //Month Discount
    if (paidTwMnth)
    {
        regMemPricePerMth = regMemPricePerMth * 0.85;
    }
    else
    {
        regMemPricePerMth = regMemPricePerMth;
    }


    finalMembershipCost = regMemPricePerMth * nOfMonths;
    finalSessionCost = personalTrSesCost * nOfPersonalTrSess;

    // Check if Senior Citizen Discount Applies
    if (senCitizen) {
        return (finalMembershipCost * 0.7) + finalSessionCost ;
    }
    else {
        return finalMembershipCost + finalSessionCost;
    }

}

Мой результат теста

Мой результат теста

Произошла ошибка в "Скидке для пожилых граждан".

Ошибка

Зеленый цвет - мой вывод.

Красный цвет - его вывод (правильный ответ).

Я не знаю, как получить этот ответ ($ 2260,00) с моим кодом. Я проверял много раз, и я не мог решить проблему. Пожалуйста, помогите мне!

2 ответа

Вы должны использовать или-заявление для обнаружения, если это пенсионер:

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

Кстати, у вас есть еще одна небольшая ошибка при расчете скидки на личные уроки, вы получаете скидку только на более чем 5 занятий, поэтому соответствующий if-оператор должен быть

(nOfPersonalTrSess > 5)

Большое спасибо, ребята, я решил свою проблему!

Вот моя полная программа:

#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

// program constants

void setPrices(double&, double&);
void getInfo(bool&, bool&, bool&, int&, int&);
double membershipCost(double, int, double, int, bool, bool, bool);

void displayCenterInfo();


int main()
{
    bool seniorCitizen;
    bool boughtSixOrMoreSessions;
    bool paidTwelveOrMoreMonths;

    int numberOfMembershipMonths;
    int numberOfPersonalTrainingSessions;
    double regularMembershipChargesPerMonth;
    double costOfOnePersonalTrainingSession;

    double memberCost;

    cout << fixed << showpoint << setprecision(2);

    displayCenterInfo();

    cout << endl;

    setPrices(regularMembershipChargesPerMonth, costOfOnePersonalTrainingSession);

    getInfo(seniorCitizen, boughtSixOrMoreSessions, paidTwelveOrMoreMonths, numberOfMembershipMonths, numberOfPersonalTrainingSessions);

    // cal getInfo
    memberCost = membershipCost(regularMembershipChargesPerMonth, numberOfMembershipMonths, costOfOnePersonalTrainingSession,
        numberOfPersonalTrainingSessions, seniorCitizen, boughtSixOrMoreSessions, paidTwelveOrMoreMonths);

    cout << "$" << memberCost;

    system("pause");
    return 0;

}

void displayCenterInfo()
{
    cout << "Welcome to Stay Healty and Fit center." << endl;
    cout << "This program determines the cost of a new membership." << endl;
    cout << "If you are a senior citizen, then the discount is 30% of "
        << "of the regular membership price." << endl;
    cout << "If you buy membership for twelve months and pay today, the "
        << "discount is 15%." << endl;
    cout << "If you buy and pay for 6 or more personal training session today, "
        << "the discount on each session is 20%." << endl;
}

void setPrices(double& regMemPrice, double& personalTrSesCost)
{

    cout << "Please enter the cost of regular Membership per month: " << endl;
    cin >> regMemPrice;

    cout << "Please enter the cost of one personal traning session: " << endl;
    cin >> personalTrSesCost;

}

void getInfo(bool& senCitizen, bool& bSixOrMoreSess, bool& paidTwMnth,
    int& nOfMonths, int& nOfPersonalTrSess)
{
    //Senior Verification
    char userInputSenior;
    cout << "Are you Senior? Please enter 'Y' or 'N': ";
    cin >> userInputSenior;

    if (userInputSenior == 'y' || userInputSenior == 'Y')
    {
        senCitizen = true;
    }
    else
        senCitizen = false;

    cout << endl;


    //Number of personal training session.
    cout << "Enter the number of personal training sessions bought: ";
    cin >> nOfPersonalTrSess;

    if (nOfPersonalTrSess > 5)
    {
        bSixOrMoreSess = true;
    }
    else
        bSixOrMoreSess = false;

    cout << endl;


    //Number of months
    cout << "Enter the number of months you are paying for: ";
    cin >> nOfMonths;

    if (nOfMonths >= 12)
    {
        paidTwMnth = true;
    }
    else
        paidTwMnth = false;

}

double membershipCost(double regMemPricePerMth, int nOfMonths,
    double personalTrSesCost, int nOfPersonalTrSess,
    bool senCitizen, bool bSixOrMoreSess, bool paidTwMnth)
{
    double finalMembershipCost, finalSessionCost;


    //Session Discount
    if (bSixOrMoreSess)
    {
        personalTrSesCost = (personalTrSesCost * 0.8);

    }
    else
    {
        personalTrSesCost = personalTrSesCost;

    }


    //Month Discount
    if (paidTwMnth)
    {
        regMemPricePerMth = regMemPricePerMth * 0.85;
    }
    else
    {
        regMemPricePerMth = regMemPricePerMth;
    }

    finalMembershipCost = regMemPricePerMth * nOfMonths;
    finalSessionCost = personalTrSesCost * nOfPersonalTrSess;


    // Check if Senior Citizen Discount Applies
    if (senCitizen) {
        return (finalMembershipCost * 0.7) + finalSessionCost;
    }
    else {
        return finalMembershipCost + finalSessionCost;
    }


}
Другие вопросы по тегам