Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- String filmName = scan.nextLine(); // прочитаме името на филма
- // инициализираме три променливи, които броят колко броя билети от всеки тип са продадени
- int studentCnt = 0; // брояч за студентските билети
- int standardCnt = 0; // брояч за стандартните билети
- int kidCnt = 0; // брояч за детските билети
- while (!"Finish".equals(filmName)) { // цикълът се изпълнява докато не въведем командата "Finish"
- int capacity = Integer.parseInt(scan.nextLine()); // прочитаме капацитета на текущата зала
- int counter = 0; // брояч на билетите, които са продадени за текущия филм
- for (int i = 0; i < capacity; i++) { // цикъл, който ще се завърти, колкото места има в залата, освен ако не бъде прекъснат по-рано (може да се направи и с while цикъл)
- String ticketType = scan.nextLine(); // прочитаме текущият тип на продадения билет
- if ("End".equals(ticketType)) { // ако командата е "End" спираме прочитането на билетите за този филм
- break;
- }
- counter++; // увеличаваме броят на продадените билети за този филм NB: важно е увеличаването на билетите да бъде след проверката за "End"
- switch (ticketType) { // със switch проверяваме типът на билета, и увеличаваме нужният брояч
- case "student":
- studentCnt++;
- break;
- case "standard":
- standardCnt++;
- break;
- case "kid":
- kidCnt++;
- break;
- }
- }
- double percent = counter * 1.0 / capacity * 100; /* намираме колко процента от местата в текущата зала, са продадени
- умножаваме counter по 1.0 за да го преобразуваме от int в double, ако не го направим, получаваме целочислено делене
- за пример, ако counter е 15, а capacity 20, получаваме 15 / 20 * 100, което е 0 * 100 = 0%
- когато го умножим по 1.0 минаваме на дробно делене, тоест 15 * 1.0 / 20 * 100 -> 15.0 / 20 * 100, 0.75 * 100 -> 75% */
- System.out.printf("%s - %.2f%% full.%n", filmName, percent); // принтираме името на филма и процента запълненост на залата
- filmName = scan.nextLine(); // прочитаме нов филм, ако не прочетем такъв, се получава безкраен цикъл
- }
- int totalTickets = kidCnt + standardCnt + studentCnt; // намираме общият брой на билетите, за да открием процентите на всеки тип билет
- System.out.printf("Total tickets: %d%n", totalTickets); // принтираме общият брой на билетите
- // намираме процента на всеки тип билет по формулата, броя на билетите разделен върху броя на всички билети, умножено по 100 за да се превърне в проценти
- double studentPercent = studentCnt * 1.0 / totalTickets * 100; // намираме процента на студентските билети
- System.out.printf("%.2f%% student tickets.%n", studentPercent); // принтираме, колко процента от всички продадени билети са студентски
- double standardPercent = standardCnt * 1.0 / totalTickets * 100; // намираме процента на стандартните билети
- System.out.printf("%.2f%% standard tickets.%n", standardPercent); // принтираме, колко процента от всички продадени билети са стандартни
- double kidPercent = kidCnt * 1.0 / totalTickets * 100; // намираме процента на детските билети
- System.out.printf("%.2f%% kids tickets.", kidPercent); // принтираме, колко процента от всички продадени билети са детски
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment