Loading...
VarshilovNikolay avatar VarshilovNikolay 0 Точки

Programming Basics Exam - 7 May 2017 , Задача 3. Ученически лагер

Здравейте на всички, моля за малко помощ по конкретната задача. Задачата ми мина в Джъджа 90/100 , но като цяло хич не си харесвам кода и знам, че има и по-лесен начин за решение на задачата. Ако може за насоки и за решението да си го разцъкам и аз. 

 

Ето и моя код: 

 

import java.util.Scanner;

/**
 * Created by Nico on 5/17/2017.
 */
public class SchoolCamp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String season = scanner.nextLine();
        String group = scanner.nextLine();
        int students = Integer.parseInt(scanner.nextLine());
        int nights = Integer.parseInt(scanner.nextLine());


        if (season.equals("Spring") && group.equals("girls")){
            System.out.print("Athletics ");
            double nightsPrice = students * nights * 7.20;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }


        }
        if (season.equals("Spring") && group.equals("boys")){
            System.out.print("Tennis ");
            double nightsPrice = students * nights * 7.20;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Spring") && group.equals("mixed")){
            System.out.print("Cycling ");
            double nightsPrice = students * nights * 9.50;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Winter") && group.equals("girls")){
            System.out.print("Gymnastics ");
            double nightsPrice = students * nights * 9.60;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Winter") && group.equals("boys")){
            System.out.print("Judo ");
            double nightsPrice = students * nights * 9.60;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Winter") && group.equals("mixed")){
            System.out.print("Ski ");
            double nightsPrice = students * nights * 10.0;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Summer") && group.equals("girls")){
            System.out.print("Volleyball ");
            double nightsPrice = students * nights * 15.0;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Summer") && group.equals("boys")){
            System.out.print("Football ");
            double nightsPrice = students * nights * 15.0;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }
        if (season.equals("Summer") && group.equals("mixed")){
            System.out.print("Swimming ");
            double nightsPrice = students * nights * 20.0;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 20 && students < 50) {
                nightsPrice = nightsPrice - (nightsPrice * 0.15);
                System.out.printf("%.2f lv.",nightsPrice);
            }else if (students >= 10 && students < 20){
                nightsPrice = nightsPrice - (nightsPrice * 0.05);
                System.out.printf("%.2f lv.",nightsPrice);
            }else {
                System.out.printf("%.2f lv.",nightsPrice);
            }

        }



    }
}

 

 

 Не изглежда много добре ... 

Благодаря предварително

Тагове:
0
Programming Basics
detkov avatar detkov 3 Точки

Не е хубав кода, особено това, че на всеки иф елс изкарваш в конзолата. по-добре да оставиш изхода отделно най-отдолу .

проблема е някъде 20-ти ред;

if (season.equals("Spring") && group.equals("girls")){
            System.out.print("Athletics ");
            double nightsPrice = students * nights * 7.20;
            if (students >= 50){
                nightsPrice = nightsPrice - (nightsPrice * 0.50);
                 System.out.printf("%.2f lv.",nightsPrice);   <------ това липсваше.

Сметнал си го, но не си написал да го изкара на конзолата.

Приятен ден.

0
18/05/2017 12:24:25
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.