Announcement

Collapse
No announcement yet.

index nutzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • index nutzen

    Hallo,

    ich möchte ein Programm schreiben womit ich den notendurchschnitt berechnen lassen kann. Ich habe angefangen, aber ich komme nicht dort mit dem index weiter, weil ich möchte in ein while/for schleife die anzahl der angegebenen Fächer einen String Fach mit der nummer erstellen.

    Also:

    Fach1
    Fach2
    Fach3...

    Aber ich komme nicht mehr weiter kann mir jemand behilflich sein?


    Code:
    public static void main(String[] args) {
    
        // Notendurchschnittsrechner
        Scanner input = new Scanner(System.in);
    
        int anzahlFaecher;
        int i; 
    
        //Fächer
        System.out.println("Anzahl der Fächer: ");
        anzahlFaecher = input.nextInt();
        System.out.println("Okay, also die Anzahl der Fächer sind " + anzahlFaecher + ".");
        anzahlFaecher++;
    
        public void Faecher (int anzahlFaecher) {
            for(i = 1; i < anzahlFaecher; i++) {
                String fach[anzahlFaecher] = Fach[anzahlFaecher];
            }    
        }
    
    
    
    
        for(i = 1; i < anzahlFaecher; i++){
            System.out.println("Wie lautet das " + i + ". Fach?:");
            String faecherName = input.next();
            System.out.println("Okay, das " + i + ". Fach lautet " + faecherName + ".");
            }
        System.out.println("Perfekt, jetzt haben wir alle Fächer!");
    
    
    
    
        //Noten
        System.out.println("Jetzt können wir mit den Noten anfangen!");
    
        System.out.println("Welche Note has du im " + i + ". Fach?");
    
    
        }

  • #2
    Da es keine Frage zu Eclipse ist -> verschoben nach Java

    Deine Programmstruktur ist falsch.
    Innerhalb einer Methode (hier main) kan keine andere Methode definiert werden (hier Faecher). Die Methode Faecher muss also außerhalb der main-Methode hingeschrieben werden
    Des Weiteren muss die Größe eines Array (hier String fach) VORHER bekannt sein.

    Es bietet sich an, eine Arraylist zu benutzen.
    Also im Kopf der Klasse
    private static List fach=new Arraylist<>();

    In der Methode Faecher (besser fillFach oder fillFachList)
    int i = 0;
    while (i < anzahlFaecher) {
    fach.add("Irgendeinen Text");
    i++;
    }
    Diese Programmzeile verstehe ich nicht
    String fach[anzahlFaecher] = Fach[anzahlFaecher];
    Sofern damit ein Array angelegt werden soll, ist das so nicht möglich


    Methoden werden klein geschrieben und sollte aus einem Verb(en) und einem Substantiv bestehen.

    weil ich möchte in ein while/for schleife die anzahl der angegebenen Fächer einen String Fach mit der nummer erstellen.
    Der Satz ist unverständlich. Es gibt keine while/for Schleifen. Entweder while oder for

    Code:
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class Test {
    
       private static List<String> fachName = new ArrayList<>();
    
       public static void main(String[] args) {
          // Notendurchschnittsrechner
          Scanner input = new Scanner(System.in);
    
          int anzahlFaecher;
          int i;
    
          // Fächer
          System.out.println("Anzahl der Fächer: ");
          anzahlFaecher = input.nextInt();
          System.out.println("Okay, also die Anzahl der Fächer sind " + anzahlFaecher + ".");
          fillFachname(input, anzahlFaecher);
          System.out.println("Folgende Fächer sind eingegeben:");
          for (String s : fachName) {
             System.out.println(s);
          }
          // Noten
          System.out.println("Jetzt können wir mit den Noten anfangen!");
          fillNoten(input, anzahlFaecher);
          input.close();
       }
    
       public static void fillFachname(Scanner scanner, int anzahlFaecher) {
          int i = 0;
          while (i < anzahlFaecher) {
             System.out.println("Wie lautet das " + (i+1) + ". Fach?");
             String name = scanner.next();
             fachName.add(name);
             i++;
             System.out.println("Okay, das " + (i+1) + ". Fach lautet: " + name);
          }
       }
    
       public static void fillNoten(Scanner scanner, int anzahlFaecher) {
       }
    }
    Zuletzt editiert von Christian Marquardt; 12.07.2019, 11:17.
    Christian

    Comment


    • #3
      Danke @Christian Marquardt!

      Ich habe es weiter gemacht und dank deiner Hilfe geschafft!

      Mein jetziger Code:
      Code:
      package testproject;
      import java.lang.reflect.Array;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Scanner;
      
      
      public class testclasse {
      
          private static List<String> fachName = new ArrayList<>();    
          private static List<Integer> fachNoten = new ArrayList<>();
      
          public static double durchschnitt;
      
      
          /*public static void main(String[] args) {
          // TODO Auto-generated method stub
      
      
          //Text wird ausgegeben
          System.out.print("Hello World \n");
      
      
          //Die angegebene Zahl wird von den Fällen unterschieden + angegeben
          int zahl = 2;
      
          switch (zahl) {
          case 1:
              System.out.println("Fall 1");
              break;
          case 2:
              System.out.println("Fall 2");
              break;
          case 3:
              System.out.println("Fall 3");
              break;
          default:
              System.out.println("Sonstiger Fall");
          }
          */
      
      
      
          public static void main(String[] args) {
      
              // Notendurchschnittsrechner
              Scanner input = new Scanner(System.in);
      
              int anzahlFaecher;
      
              //anzahl der Fächer
              System.out.print
              ("Anzahl der Fächer: ");
              anzahlFaecher = input.nextInt();
              System.out.println("Okay, also die Anzahl der Fächer sind " + anzahlFaecher + ".");
              fillFachname(input, anzahlFaecher);
              /*for(String g : fachName) {
                  System.out.println(">>> " + g);
              }*/
      
      
      
              //Noten der Fächer
              System.out.println("Jetzt können wir mit den Noten anfangen!");
      
              fillNoten(input, anzahlFaecher);
              /*for(int f : fachNoten) {
                  System.out.println(">>> " + f);
              }*/
      
      
              //Durschnitt ausgeben
              System.out.println("Dein Notendurchschnitt lautet: " + (durchschnitt/anzahlFaecher) + ".");
      
          }
      
          public static void fillFachname(Scanner scanner, int anzahlFaecher) {
                int i = 0;
                while (i < anzahlFaecher) {
                   System.out.print("Wie lautet das " + (i+1) + ". Fach? ");
                   String name = scanner.next();
                   fachName.add(name);
                   //System.out.println("Welche Note hast du in dem Fach?");
                   //String note = scanner.next();
                   //fachNoten.add(note);
                   //System.out.println("Okay, das " + (i+1) + ". Fach lautet: " + name + " und du in dem Fach die Note " + note + ".");
                   System.out.println("Okay, das " + (i+1) + ". Fach lautet: " + name); //ERSATZ
                   i++;
                }
             }
      
             public static void fillNoten(Scanner scanner, int anzahlFaecher) {
                 int i = 0;
                 while(i < anzahlFaecher) {
                     System.out.println("Welche Note hast du im " + (i+1) + ". Fach?");
                     int note = scanner.nextInt();
                     fachNoten.add(note);
                     durchschnitt += note;
                     System.out.println("Okay, also hast du im " + (i+1) + ". Fach eine " + note + ".");
                     i++;
                 }
             }
      
      }
      Ich habe noch einen Wunsch, denn ich möchte gerne, dass hier:

      Code:
      public static void fillNoten(Scanner scanner, int anzahlFaecher) {
                 int i = 0;
                 while(i < anzahlFaecher) {
                     System.out.println("Welche Note hast du im " + (i+1) + ". Fach?");
                     int note = scanner.nextInt();
                     fachNoten.add(note);
                     durchschnitt += note;
                     System.out.println("Okay, also hast du im " + (i+1) + ". Fach eine " + note + ".");
                     i++;
                 }
             }
      nicht 1. sondern der Fachname angezeigt wird ist aus auch möglich aus der ArrayList das hier nach der Reihe anzuzeigen?

      Comment


      • #4


        System.out.println("Welche Note hast du im " + fachName.get(i) + ". Fach?");

        https://docs.oracle.com/javase/7/doc...ArrayList.html
        Christian

        Comment


        • minimm25
          minimm25 commented
          Editing a comment
          Dankeee ;-)
      Working...
      X