Member 13592581 Ответов: 2

Как я могу сгенерировать код для этой проблемы


создайте приложение на языке C#, которое вычисляет и отображает членские взносы для N клиентов, зарегистрировавшихся для членства
Продолжительность членства(включая налог)
1-8 недель $40,0 за штуку
week8-16weeks $35,5 в неделю
Более 16 недель $25,0 в неделю

the application should ask the user to enter the customer name, the number of months for membership, and yes or no to indicate whether the customer receives a special offer or not. The special offer will give customers a 20% discount of the membership no matter how many weeks they register. Assume that the number of week to be entered is an integer type with the range between 1 and 30. An error message should be issued if a user enters a value beyond this range and the re-entering is required.The program makes a calculation of membership and displays the result as shown in the below figure. The program should be kept running with entering next set of input data

Что я уже пробовал:

использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;

пространство имен GymMembership
{
открытый класс exercise18
{
static void Main(string[] args)
{
инт недели;
боол акция;
двойная скидка = 20 , totalAmount = 0;
строковое имя;

Приставка.Напишите("\n\n");
Приставка.Напишите("рассчитать членские взносы:\n");
Приставка.Писать("----------------------------");
Приставка.Напишите("\n\n");

Приставка.Write("входное число недель :");
недели = конвертация.ToInt32(Консоль.Линия чтения());
Приставка.Write("введите имя клиента :");
имя = консоль.Линия чтения();
Приставка.Напишите("введите специальное предложение клиента : ");
акция = конвертировать.ToBoolean(Консоли.Линия чтения());
Если (недели <= 8)
totalAmount = (((40,0 * недель) * скидка / 100) - (40,0 * недель));
еще если (недель > 8)
totalAmount = (((35,5 * недель) * скидка / 100) - (35,5 * недель));
еще если (недель > 16)
totalAmount = (((25.0 * недель) * скидка / 100) - (25.0 * недель));
остальное (недели > 30){
Приставка.WriteLine("ошибка");
}
Приставка.Записать("\nElectricity Билл\Н");
Приставка.Write("Customer IDNO :{0}\n", недели);
Приставка.Напишите("имя клиента :{0}\n", имя);
Приставка.Напишите("специальное предложение :{0}\n", specialOffer);
Приставка.Напишите("сумма скидки :{0}\n", скидка);
Приставка.Напишите("чистая сумма, уплаченная клиентом :{0}\n", totalAmount);
}
}
}

Patrice T

И у вас, вероятно, есть вопрос или проблема в вашем коде ?

Member 13592581

Можете ли вы написать код для этой проблемы с исправлением

2 Ответов

Рейтинг:
20

Patrice T

totalAmount = (((40.0 * weeks) * discount / 100) - (40.0 * weeks));
totalAmount = (((35.5 * weeks) * discount / 100) - (35.5 * weeks));
totalAmount = (((25.0 * weeks) * discount / 100) - (25.0 * weeks));

Я боюсь вашей формулы для totalAmount неправильный.


Рейтинг:
2

Shashank Laxman

Ваш общий расчет суммы, это неправильно :

totalAmount = (((40.0 * weeks) * discount / 100) - (40.0 * weeks));


вместо этого он должен быть :

totalAmount =  (40.0 * weeks)) - (((40.0 * weeks) * discount / 100) ;


Итак, за 2 недели : стоимость составит 40*2 = 80$

и скидка 20%: 64$

totalAmount =  (40.0 * weeks)) - (((40.0 * weeks) * discount / 100) ;


= 80 - (80 * 0.2)
= 80 - 16
= 64$

надеюсь, это поможет


Shashank Laxman

почему ответ понижен,я только поправил логику

Patrice T

Вероятно, потому, что я уже заметил проблему в своем решении.
И поскольку мое решение было принято, это означает, что ОП нашел исправление сам, как только он узнал, где была проблема.

Совет: попробуйте ответить на вопросы, оставшиеся без ответа, или добавить что-то полезное в свои решения.

тот факт, что ваши исправленные формулы содержат ошибки, также может не помочь.

Shashank Laxman

Хорошо,спасибо за разъяснение, ваши сообщения очень ценны

Shashank Laxman

Можете ли вы написать код для этой проблемы с исправлением
Это было опубликовано участником 13592581

Я только поправил, приведя пример

Patrice T

В принципе, вы получили поправку, просто скобки неверны.

Shashank Laxman

Да, я согласен, что искал функциональную работу, иначе я бы перекодировал и отправил сообщение.Но как раз в срочном порядке исправили эту деталь.

Shashank Laxman

codeproject пожалуйста, ознакомьтесь с ответом и получить свои очки обратно

Shashank Laxman

Где я ошибся, пожалуйста, поправьте меня?

Patrice T

скобка

Member 13592581

Как я могу заставить эту программу продолжать работать до тех пор, пока не выберу один из вариантов выхода из этой программы
Например
1 введите имя
2 Введите возраст
3 выхода
Как показывать эту штуку снова и снова. Пример здесь общий он не имеет отношения к описанной выше проблеме

Shashank Laxman

for(int i=0;i<=3;i++)
{
Приставка.WriteLine("Введите Имя : ");
имя строки = консоль.Линия чтения();
Приставка.WriteLine("Введите Возраст : ");
int age = конвертировать.ToInt32(Консоль.Линия чтения());
Приставка.WriteLine("нажмите 3 для выхода/нажмите 2 для продолжения");
int exit = консоль.Линия чтения();

если(выход == 2)
продолжить;
если(выход == 3)
перерыв;

}

это будет работать для 4 записей от пользователя.