@turdubekov
Студент

Как написать калькулятор который умеет работать с римскими цифрами?

Привет!
Есть задание: написать калькулятор
* Калькулятор умеет работать с арабскими и римскими числами
* должен принимать на вход числа от 1 до 10 включительно, не более
* Калькулятор умеет работать только с целыми числами
Мой говно "code"
import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        RomeNumbers rome = new RomeNumbers();
        int value1 = 0;
        int value2 = 0;
        String operation = null;

        System.out.println("Введите 2  целых числа: ");
        Scanner scanner = new Scanner(System.in);
        if (value1 > 0 || value1 < 10) {
            value1 = scanner.nextInt();
            operation = scanner.next();
            value2 = scanner.nextInt();
        }
        if (operation.equals("+")) {
            System.out.println(value1 + value2);
        }

        if (operation.equals("-")) {
            System.out.println(value1 - value2);
        }

        if (operation.equals("*")){
            System.out.println( value1 * value2);
        }

        if (operation.equals("/")){
            System.out.println(value1 / value2);
        }
        else {
            System.out.println("error!");
        }

    }
}

public class RomeNumbers {
    int I = 1;
    int II = 2;
    int III = 3;
    int IV = 4;
    int V = 5;
    int VI = 6;
    int VII = 7;
    int VIII = 8;
    int IX = 9;
    int X = 10;


}

Вопрос: Как быть с римскими числами и как вообще это все сделать по человечески?
  • Вопрос задан
  • 16163 просмотра
Пригласить эксперта
Ответы на вопрос 3
irishmann
@irishmann
Научись пользоваться дебаггером
В твоем классе не учитываются L, C, D, M. Тебе нужно сначала перевести в арабские цифры, произвести операцию, затем результат переводить обратно в римские цифры. Вот тут посмотри.
Ответ написан
Комментировать
@EmelyanovKonstantin
GIS архитектура, аналитика, разработка
L, C, D, M не надо на вход. Только на выход.
* должен принимать на вход числа от 1 до 10 включительно, не более

Получайте входную строку как String
String value1;
Сканер должен ждать тогда не .nextInt();, а nextLine(); чтобы прочитать строку.
А потом парсите его по вашим правилам:
int num1 = toArabic(value1);
.....
public int toArabic(String value){

   if(value.equals("I") return 1;
   if(value.equals("II") return 2;
   и т.д.

}
Ответ написан
@Bonce
Уже был такой вопрос недавно. Поищи на тостере. Там готовый код скидывали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 11:14
65000 руб./за проект
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект