Почему мой код MVC ничего не делает? - PullRequest
0 голосов
/ 15 апреля 2019

Прежде всего, я новичок в Java.Я изучаю его уже 2 недели, но я выучил C # раньше.Я никогда не слышал о MVC раньше, и в настоящее время у меня есть проблемы с ним.Я должен сделать консольный калькулятор в MVC (я не знаю, почему, я слышал, что MVC для приложений с пользовательским интерфейсом) для конкуренции.Я успешно делал это раньше для приложения с пользовательским интерфейсом, но я не знаю, как и где обрабатывать ввод и вывод консоли.В настоящее время у меня есть следующие строки кодов:

package com.kristofgero;

public class Model {
    private double e;
    public void osszead(double a, double b) {
        e = a+b;
    }
    public void kivon(double a, double b) {
        e = a-b;
    }
    public void szoroz(double a, double b) {
        e = a*b;
    }
    public void oszt(double a, double b) {
        e = a/b;
    }
    public double getCalculationValue() {
        return e;
    }
}


package com.kristofgero;
import java.util.Scanner;

public class View {
    Scanner scanner = new Scanner(System.in);
    private double a = scanner.nextDouble();
    private double b = scanner.nextDouble();
    private double e = 0;
    public double getA() {
        return a;
    }
    public double getB() {
        return b;
    }
    public double getE() {
        return e;
    }
    void displayError(String hiba) {
        System.out.println(hiba);
    }
}

package com.kristofgero;

public class Controller {
    private View theView;
    private Model theModel;

    public Controller(View theView, Model theModel) {
        this.theView = theView;
        this.theModel = theModel;
    }
    class Calculate {
        public void calculateMethod() {
            double a = 0;
            double b = 0;
            double e = 0;
            try {
                a = theView.scanner.nextDouble();
                b = theView.scanner.nextDouble();
                String jel = theView.scanner.nextLine();
                switch (jel) {
                    case "+": e = a+b; break;
                    case "-": e = a-b; break;
                    case "*": e = a*b; break;
                    case "/": e = a/b; break;
                }
            } catch (Exception error) {
                theView.displayError("Két számot adjon meg!");
            }
        }
    }
}

package com.kristofgero;

public class Main {
    public static void main(String[] args) {
        View theView = new View();
        Model theModel = new Model();
        Controller theController = new Controller(theView, theModel);

    }
}

Я должен сделать этот калькулятор, чтобы прочитать правильную операцию с 2 числами, которые пользователь дал ранее.Прямо сейчас мой код ничего не делает.

1 Ответ

0 голосов
/ 15 апреля 2019

Не уверен, почему вы помещаете calcMethod во внутренний класс, но вам нужно вызвать этот метод для получения ввода от пользователя.

public class Controller {
    private View theView;
    private Model theModel;

    public Controller(View theView, Model theModel) {
        this.theView = theView;
        this.theModel = theModel;
    }

        public void calculateMethod() {
            double a = 0;
            double b = 0;
            double e = 0;
            try {
                a = theView.scanner.nextDouble();
                b = theView.scanner.nextDouble();
                String jel = theView.scanner.nextLine();
                switch (jel) {
                    case "+": e = a+b; break;
                    case "-": e = a-b; break;
                    case "*": e = a*b; break;
                    case "/": e = a/b; break;
                }
            } catch (Exception error) {
                theView.displayError("Két számot adjon meg!");
            }
        }
}

public class Main {
    public static void main(String[] args) {
        View theView = new View();
        Model theModel = new Model();
        Controller theController = new Controller(theView, theModel);
        theController.calculateMethod();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...