Kalkulator w java obiektowo

0

Witam mam kod do kalkulatora obiektowego lecz coś nie działa. Proszę o pomoc

int a, b;
                    System.out.println("Podaj dwie liczby do zsumowania");
                    a = in.nextInt();
                    b = in.nextInt();
 					
                    int wynik = suma(a,b);
 
                    System.out.format("Suma liczb wynosi "+wynik);

Sory tu jest kod

import java.util.Scanner;

import java.io.IOException;
public class iii {
        
        
        public static int menu(){
        
        System.out.println("1. dodawanie");
        System.out.println("2. odejmowanie");
        System.out.println("3. mnozenie");
        System.out.println("4. dzielenie");
 
        Scanner in = new Scanner(System.in);
        int w = in.nextInt();
 
        return w;
    }
    
    public static void main(String[] args) throws IOException  {
  Scanner in = new Scanner(System.in);
  
   int wybor = menu();
   
   while(wybor!=0){
            switch(wybor){
                case 1:
                	dodawanie(int a, double b);
                	break;
                case 2:
                	odejmowanie(int a, double b);
                	break;
                case 3:
                	mnozenie(int a, double b);
                	break;
                case 4:
                	dzielenie(int a, double b);
                	break;
                default:
                	System.out.println("Podales zla liczbe");
 
            }
   		}
    }
    public static int suma(int a, int b){
        int a, b;
                    System.out.println("Podaj dwie liczby do zsumowania");
                    a = in.nextInt();
                    b = in.nextInt();
 					System.out.format("Suma liczb wynosi "+a+b);
    }
  public static int odejmowanie(int a, int b){
        int a, b;
                    System.out.println("Podaj dwie liczby do odejmowania");
                    a = in.nextInt();
                    b = in.nextInt();
 					System.out.format("Suma liczb wynosi "+a-b);
   }
 
 public static int mnozenie(int a, int b){
      int a, b;
                    System.out.println("Podaj dwie liczby do mnozenia");
                    a = in.nextInt();
                    b = in.nextInt();
 					 System.out.format("Suma liczb wynosi "+a*b);
}
 
 public static int dzielenie(int a, int b){
       int a, b;
                    System.out.println("Podaj dwie liczby do dzielenia");
                    a = in.nextInt();
                    b = in.nextInt();
 					System.out.format("Suma liczb wynosi "+a/b);
 }
 
}
0

NO chodzi mi o to żeby działało to na metodach na razie. Później chciałbym się zająć obiektowym wykonaniem.

0

CO nie dziala ?!

0
  1. Raz ze ten kod w ogóle nie korzysta z obiektowości. Jest żywym przykładem na programowanie proceduralne w Javie ;]
  2. Za kombinacje klawiszy ctrl+c i ctrl+v powinien ci eksplodować komputer. Jakbyś miał 100 działań to też być tak zrobił czy bys jednak pomyślal?
  3. a/b na intach zapewne nie zwróci ci takiego wyniku jakiego byś się spodziewał...
  4. Tego scannera rozumiem ze tworzysz w losowych miejscach "z d**y" licząc że a nuż zadziała?
  5. Jak wywołujesz funkcję to masz do niej podać parametry więc nie żadne
dodawanie(int a, double b);
//a
dodawanie(a,b);

gdzie a i b są zmiennymi widzianymi w danym zakresie. Rozumiem ze chciałeś napisać coś takiego:

import java.util.Scanner;

import java.io.IOException;
public class iii {
 
 
        public static int menu(){
 
        System.out.println("1. dodawanie");
        System.out.println("2. odejmowanie");
        System.out.println("3. mnozenie");
        System.out.println("4. dzielenie");
 
        Scanner in = new Scanner(System.in);
        int w = in.nextInt();
 
        return w;
    }
 
    public static void main(String[] args) throws IOException  {
      Scanner in = new Scanner(System.in);
      int wybor = menu();
   while(wybor!=0){
      int a, b;
      System.out.println("Podaj dwie liczby");
      a = in.nextInt();
      b = in.nextInt();
            switch(wybor){
                case 1:
                        dodawanie(a,b);
                        break;
                case 2:
                        odejmowanie(a,b);
                        break;
                case 3:
                        mnozenie(a,b);
                        break;
                case 4:
                        dzielenie(a,b);
                        break;
                default:
                        System.out.println("Podales zla liczbe");
            }
      }
    }
 public static int suma(int a, int b){
   System.out.format("Suma liczb wynosi "+(a+b));
 }
 public static int odejmowanie(int a, int b){
    System.out.format("Roznica liczb wynosi "+(a-b));
 }
 
 public static int mnozenie(int a, int b){
   System.out.format("Iloczyn liczb wynosi "+(a*b));
 }
 
 public static int dzielenie(int a, int b){
    System.out.format("Iloraz liczb wynosi "+((double)a/b)); //radziłbym sprawdzać czy b nie jest 0...
 }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1