Loading...
zdravkostov avatar zdravkostov 4 Точки

JAVA, Nested Loops - Lab, 07. Cinema Tickets

Условие:

7. *Билети за кино
Вашата задача е да напишете програма, която да изчислява процента на билетите за всеки тип от
продадените билети: студентски(student), стандартен(standard) и детски(kid), за всички прожекции. Трябва
да изчислите и колко процента от залата е запълнена за всяка една прожекция.
Вход
Входът е поредица от цели числа и текст:
 На първия ред до получаване на командата "Finish" - име на филма – текст
 На втори ред – свободните места в салона за всяка прожекция – цяло число [1 … 100]
 За всеки филм, се чете по един ред до изчерпване на свободните места в залата или до получаване на
командата "End":
o Типа на закупения билет - текст ("student", "standard", "kid")

Изход
На конзолата трябва да се печатат следните редове:
 След всеки филм да се отпечата, колко процента от кино залата е пълна
"{името на филма} - {процент запълненост на залата}% full."
 При получаване на командата "Finish" да се отпечатат четири реда:
o "Total tickets: {общият брой закупени билети за всички филми}"
o "{процент на студентските билети}% student tickets."
o "{процент на стандартните билети}% standard tickets."

© SoftUni – https://softuni.org. Copyrighted document. Unauthorized copy, reproduction or use is not permitted.
Follow us: Page 1 of 1

o "{процент на детските билети}% kids tickets."

Примерен вход и изход
Вход Изход Обяснения
Taxi
10
standard
kid
student
student
standard
standard
End
Scary Movie
6
student
student
student
student
student
student
Finish

Taxi - 60.00% full.
Scary Movie - 100.00% full.
Total tickets: 12
66.67% student tickets.
25.00% standard tickets.
8.33% kids tickets.

Първи филм – Taxi, местата в залата са 10
Купуват се 3 стандарти, 2 студентски, 1 детски билет
и получаваме командата End.
Общо 6 билета от 10 места -> 60% от залата е заета.
Втори филм – Scary Movie, места в залата са 6
Купуват се 6 студентски билета и местата в залата
свършват.
Общо 6 билета от 6 места -> 100% от залата е заета.
Получаваме командата Finish
Общо закупените билети за всички филми са 12.
За всички филми са закупени общо:
8 студентски билета. 8 билета от общо 12 е 66.67%
3 стандартни билета. 3 билета от общо 12 е 25%
1 детски билет. 1 билет от общо 12 е 8.33%

Вход Изход Обяснения
The Matrix
20
student
standard
kid
kid
student
student
standard
student
End
The Green Mile
17
student
standard
standard
student
standard
student
End
Amadeus
3
standard
standard
standard
Finish

The Matrix - 40.00% full.
The Green Mile - 35.29% full.
Amadeus - 100.00% full.
Total tickets: 17
41.18% student tickets.
47.06% standard tickets.
11.76% kids tickets.

Първи филм – The Matrix, местата в залата са 20
Купуват се 2 стандартни, 4 студентски, 2 детски
билета и получаваме командата End.
Общо 8 билета от 20 места -> 41.18% от залата е заета
Втори филм - The Green Mile, местата в залата са 17
Купуват се 3 стандартни, 3 студентски билета и
получаваме командата End.
Общо 6 билета от 17 места -> 47.06% от залата е заета
Трети филм – Amadeus, местата в залата са 3
Купуват се 3 стандартни билета и местата в залата
свършват.
Общо 3 билета от 3 места -> 100% от залата е заета.
Получаваме командата Finish
Общо закупените билети за всички филми са 17.
За всички филми са закупени общо:
7 студентски билета. 7 билета от общо 17 е 41.18%
8 стандартни билета. 8 билета от общо 17 е 47.06%
2 детски билета. 2 билета от общо 17 е 11.76%

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Моят проблем:

Резултатът на моите тестове е по някакъв начин различен от този на Judge-a , макар да въвеждаме едни и същи стойности на променливите. Тук не ми дава да пратя скрийншот, но проблемат е такъв: На първия пример, където имената на филмите са "Taxi" и "Scary Movie" , ако аз инициализирам променливите в Intelij, ми излиза Total tickets: 2.0,а в Judge илиза само 2, което прави грешка на всяка една от проверките и 0/100 точки. Бих искал помощ да разбера дали грешката е моя, или на Judge, и как да пращам скрийншоти тук. Копчето "image" не работи както си мислех, а не реаргира, когато довлача снимките от мястото им на съхранение.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Моят код:

import java.util.Scanner;

public class CinemaTickets {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        String moveiname = "";
        String typeofperson = "";
        int seats;
        double occupiedseats = 0;
        int students = 0;
        int kids = 0;
        int standard = 0;
        boolean endofthefilm = false;
        double percentagefull;
        double allpeople = 0;
        double studentpercentage = 0;
        double standardpercentage = 0;
        double kidspercentage = 0;

        while (!moveiname.equals("Finish")) {
            moveiname = scan.nextLine();
            if (moveiname.equals("Finish")) {
                break;
            }
            seats = Integer.parseInt(scan.nextLine());

            while (occupiedseats < seats) {
                typeofperson = scan.nextLine();

                switch (typeofperson) {

                    case ("student"):
                        students++;
                        break;

                    case ("standard"):
                        standard++;
                        break;

                    case ("kid"):
                        kids++;
                        break;

                    case ("End"):
                        endofthefilm = true;
                        break;

                }

                if (endofthefilm == true) {
                    break;
                }

                occupiedseats++;

            }

            percentagefull = occupiedseats / seats;
            percentagefull = percentagefull * 100;

            System.out.print(moveiname);
            System.out.print(" - ");
            System.out.printf("%.2f", percentagefull);
            System.out.print("%");
            System.out.println(" full.");

            seats = 0;
            occupiedseats = 0;
            percentagefull = 0;
            endofthefilm = false;

        }

        allpeople = students + standard + kids;
        studentpercentage = students / allpeople;
        standardpercentage = standard / allpeople;
        kidspercentage = kids / allpeople;

        studentpercentage = studentpercentage * 100;
        standardpercentage = standardpercentage * 100;
        kidspercentage = kidspercentage * 100;

        double totaltickets = allpeople;

        System.out.print("Total tickets: ");
        System.out.printf("%.1f", totaltickets); //ето тук би трябвало да е проблема
        System.out.println("");


        System.out.printf("%.2f", studentpercentage);
        System.out.println("% student tickets.");
        System.out.printf("%.2f", standardpercentage);
        System.out.println("% standard tickets.");
        System.out.printf("%.2f", kidspercentage);
        System.out.println("% kids tickets.");

    }
}

 

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

Тагове:
1
Programming Basics with Java
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.