Софтуерно Инженерство
Loading...
+ Нов въпрос
Chetiov avatar Chetiov 5 Точки

Задача Навреме за Изпит Java

Студент трябва да отиде на изпит в определен час (например в 9:30 часа). Той идва в изпитната зала в даден час на пристигане (например 9:40). Счита се, че студентът е дошъл навреме, ако е пристигнал в часа на изпита или до половин час преди това. Ако е пристигнал по-рано повече от 30 минути, той е подранил. Ако е дошъл след часа на изпита, той е закъснял. Напишете програма, която въвежда време на изпит и време на пристигане и отпечатва дали студентът е дошъл навреме, дали е подранил или е закъснял и с колко часа или минути е подранил или закъснял.
Вход
От конзолата се четат 4 цели числа (по едно на ред):
•    Първият ред съдържа час на изпита – цяло число от 0 до 23.
•    Вторият ред съдържа минута на изпита – цяло число от 0 до 59.
•    Третият ред съдържа час на пристигане – цяло число от 0 до 23.
•    Четвъртият ред съдържа минута на пристигане – цяло число от 0 до 59.
Изход
На първият ред отпечатайте:
•    „Late“, ако студентът пристига по-късно от часа на изпита.
•    „On time“, ако студентът пристига точно в часа на изпита или до 30 минути по-рано.
•    „Early“, ако студентът пристига повече от 30 минути преди часа на изпита.
Ако студентът пристига с поне минута разлика от часа на изпита, отпечатайте на следващия ред:
•    „mm minutes before the start“ за идване по-рано с по-малко от час.
•    „hh:mm hours before the start“ за подраняване с 1 час или повече. Минутите винаги печатайте с 2 цифри, например „1:05“.
•     „mm minutes after the start“ за закъснение под час.
•    „hh:mm hours after the start“ за закъснение от 1 час или повече. Минутите винаги печатайте с 2 цифри, например „1:03“.

 

Привет мъча да реша въпросната задачка написах този код http://pastebin.com/H5zEGkKy Проблема е че при задаване на стойности при които се получава закаснение/подраняване с повече от час не се изписва цялото съобщение а само част пример: вход 11 , 30 , 8, 12 изход Early 3:18 hours а трябва да е Early 3:18 hours before the start . Като пусна дебъгера ми изкарва Disconnected from the target VM и немога да проверя каде е грешката.

 

Самата задачка се намира тук

Тагове:
0
Основи на програмирането 18/11/2016 15:46:29
StefkaVasileva avatar StefkaVasileva 259 Точки

Мисля,че проблема е тук:  if (hours > 0) ,  когато това условие е вярно се изписват часовете и минутите и кода който  е в тялото на else не се изпълнява, за това и не се изписва before или after . Направи просто още една проверка. 

1
18/11/2016 16:10:30
Chetiov avatar Chetiov 5 Точки

Да вярно не съм догледал. Благодаря за помоща вкарах условието в проблемния if и сега кода работи 100 от 100.

http://pastebin.com/ff4WXNYH

0