Написать запускаемый класс Price.java для решения следующей задачи.
Дана цена услуги в евро:
вещественное число от 0.00 до 10.99
Записать сумму в текстовом виде:
количество евро написать словом с большой буквы и слово «Euro»,
центы – двузначным числом и слово «ct».
Если цена нулевая – вывести текст «Free».
Если сумма меньше 1 евро – выводить только центы.
Если цена – целое число, то центы выводить не надо.
Если центов 9 или меньше - вывести перед числом 0, например: «09 ct»
Если сумма отрицательная, больше 10,99 или задана некорректно –
вывести текст «Unknown price».
Исходные данные могут быть указаны следующими способами:
Переданы аргументом в командной строке, например: java Price 3.14
Если аргументов нет – попытаться считать из файла price.txt
Если файла нет – попросить ввести сумму с клавиатуры.
Результат напечатать на экране.
Использовать в программе:
Свои методы для конвертации числа в евро и в центы:
static String getEuroText (int euro)
static String getCtText (int ct)
Оператор выбора switch для конвертации числа в слово
Условный оператор if для выбора исходных данных
Получение данных через аргумент командной строки
Проверку наличия текстового файла через if (new File("price.txt").isFile())
Считывание данных из текстового файла через FileReader и BufferedReader
Обработку ошибок при считывании из файла/клавиатуры вынести в throws IOException
Считывание с клавиатуры через InputStreamReader
Конвертацию строки в вещественное число
Обработку ошибок try-catch при конвертации числа
Математическую функцию Math.floor() для выделения целой части
Примеры см. ниже:
Цена | Результат |
---|---|
0 | Free |
0.15 | 15 ct |
1 | One euro |
2.5 | Two euro 50 ct |
3.14 | Three euro 14 ct |
4.80 | Four euro 80 ct |
5.05 | Five euro 05 ct |
6 | Six euro |
7.09 | Seven euro 09 ct |
8 | Eight euro |
9.01 | Nine euro 01 ct |
10.99 | Ten euro 99 ct |
30.00 | Unknown price |
-34 | Unknown price |