Професионална програма
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