Habe ein frage wie man etwas macht.

JavaNewbie2.0

Bekanntes Mitglied
Ich habe ein ganz einfaches programm geschrieben was den Notendurchschnitt ausrechnet aber jetzt möchte is das belibih viel faecher angeben kann hat da einer eine ahnung oder einen ansatz?
Danke.

Java:
package Notendurchschnitt;

import java.util.Scanner;

public class Notendurchschnitt {

    private static Scanner scannerNotendurchschnitt;

    public static void main(String[] args) {
        int deutsch, mathe, englisch, italienisch, physik, musik, chemie, religion, zeichnen, geschichte, geografie, sport;
        float durchschnitt;     
        scannerNotendurchschnitt = new Scanner (System.in);     
       
        System.out.println("Schreibe alle deine Noten auf!");
     
        deutsch = scannerNotendurchschnitt.nextInt();     
        mathe = scannerNotendurchschnitt.nextInt();
        englisch = scannerNotendurchschnitt.nextInt();     
        italienisch = scannerNotendurchschnitt.nextInt();
        physik =  scannerNotendurchschnitt.nextInt();     
        musik = scannerNotendurchschnitt.nextInt();     
        chemie = scannerNotendurchschnitt.nextInt();     
        religion = scannerNotendurchschnitt.nextInt();     
        zeichnen = scannerNotendurchschnitt.nextInt();     
        geschichte = scannerNotendurchschnitt.nextInt();     
        geografie = scannerNotendurchschnitt.nextInt();     
        sport = scannerNotendurchschnitt.nextInt();
     
        durchschnitt = (deutsch + mathe + englisch + geografie + musik + sport +  + geschichte + zeichnen + italienisch + physik + chemie + religion) / 13;
     
        System.out.println("Dein Notenschnitt betreagt " + durchschnitt);
    }
}
 

Tarrew

Top Contributor
Am besten die Fächer in einer dynamischen Datenstruktur wie einer Liste speichern, und am Ende zusammenrechnen.

Etwa so:
Java:
public class Notendurchschnitt {


    public static void main(String[] args) {
        List<Tupel<String, Integer>> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);

        int ende;
        do {
            System.out.print("\nFach: ");
            String fach = sc.nextLine();

            System.out.print("Note: ");
            int note = sc.nextInt();
            sc.nextLine();


            list.add(new Tupel<>(fach, note));

            System.out.print("\n[1] Weiteres Fach [2] Durchschnitt berechnen: ");
            ende = sc.nextInt();
            sc.nextLine();

        } while (ende != 2);

        System.out.println("---------------------------------------");

        int summe = 0;
        for (Tupel<String, Integer> t : list) {
            System.out.format("%-24s %8d\n", t.e, t.v);
            summe += t.v;
        }

        System.out.format("\n%-24s %8f", "Durchschnitt", (double) summe / (double) list.size());

    }
}

class Tupel<E, V> {
    E e;
    V v;

    public Tupel(E e, V v) {
        this.e = e;
        this.v = v;
    }
}
 

JavaNewbie2.0

Bekanntes Mitglied
Am besten die Fächer in einer dynamischen Datenstruktur wie einer Liste speichern, und am Ende zusammenrechnen.

Etwa so:
Java:
public class Notendurchschnitt {


    public static void main(String[] args) {
        List<Tupel<String, Integer>> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);

        int ende;
        do {
            System.out.print("\nFach: ");
            String fach = sc.nextLine();

            System.out.print("Note: ");
            int note = sc.nextInt();
            sc.nextLine();


            list.add(new Tupel<>(fach, note));

            System.out.print("\n[1] Weiteres Fach [2] Durchschnitt berechnen: ");
            ende = sc.nextInt();
            sc.nextLine();

        } while (ende != 2);

        System.out.println("---------------------------------------");

        int summe = 0;
        for (Tupel<String, Integer> t : list) {
            System.out.format("%-24s %8d\n", t.e, t.v);
            summe += t.v;
        }

        System.out.format("\n%-24s %8f", "Durchschnitt", (double) summe / (double) list.size());

    }
}

class Tupel<E, V> {
    E e;
    V v;

    public Tupel(E e, V v) {
        this.e = e;
        this.v = v;
    }
}
Danke das du dir die Mühe gibst so etwas zu schreiben. Aber ich verstehe den code nicht ganz binn noch ein kompeltter noob in java mache es erst 5 tage. Könntest du es ein bisschen erklären bittte
 
X

Xyz1

Gast
Ich muss hier und in nachfolgenden Themen mal einforken, verwende nicht .nextInt(), sondern stattdessen (besser) .nextLine();.

Bearbeitung: Nach den Vorgaben so:
Java:
/**
 * @author
 */
public class Noten {

    int deutsch, mathe, englisch, italienisch, physik, musik, chemie, religion, zeichnen, geschichte, geografie, sport;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Field[] fields = Noten.class.getDeclaredFields();
        String[][] strings = new String[fields.length][2];
        int i = 0;
        for (Field field : fields) {
            String name = field.getName();
            name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
            System.out.println("Jetzt ist das Fach " + name + " dran. Welche Note hast Du/Sie?");
            String line = sc.nextLine();
            line = line.replace(',', '.');
            strings[i][0] = name;
            strings[i][1] = line;
            i++;
        }
        float av = 0;
        for (String[] string : strings) {
            av += Float.parseFloat(string[1]);
        }
        av /= strings.length;
        System.out.println("Dein/Ihr Schnitt beträgt: " + av);
    }
}

Code:
Jetzt ist das Fach Deutsch dran. Welche Note hast Du/Sie?
5
Jetzt ist das Fach Mathe dran. Welche Note hast Du/Sie?
4
Jetzt ist das Fach Englisch dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Italienisch dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Physik dran. Welche Note hast Du/Sie?
1
Jetzt ist das Fach Musik dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Chemie dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Religion dran. Welche Note hast Du/Sie?
4
Jetzt ist das Fach Zeichnen dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Geschichte dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Geografie dran. Welche Note hast Du/Sie?
1
Jetzt ist das Fach Sport dran. Welche Note hast Du/Sie?
2
Dein/Ihr Schnitt beträgt: 2.6666667

Du siehst, ich nicht so gut sprechen Deutsch. :D
 
Zuletzt bearbeitet von einem Moderator:

JavaNewbie2.0

Bekanntes Mitglied
Ich muss hier und in nachfolgenden Themen mal einforken, verwende nicht .nextInt(), sondern stattdessen (besser) .nextLine();.

Bearbeitung: Nach den Vorgaben so:
Java:
/**
 * @author
 */
public class Noten {

    int deutsch, mathe, englisch, italienisch, physik, musik, chemie, religion, zeichnen, geschichte, geografie, sport;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Field[] fields = Noten.class.getDeclaredFields();
        String[][] strings = new String[fields.length][2];
        int i = 0;
        for (Field field : fields) {
            String name = field.getName();
            name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
            System.out.println("Jetzt ist das Fach " + name + " dran. Welche Note hast Du/Sie?");
            String line = sc.nextLine();
            line = line.replace(',', '.');
            strings[i][0] = name;
            strings[i][1] = line;
            i++;
        }
        float av = 0;
        for (String[] string : strings) {
            av += Float.parseFloat(string[1]);
        }
        av /= strings.length;
        System.out.println("Dein/Ihr Schnitt beträgt: " + av);
    }
}

Code:
Jetzt ist das Fach Deutsch dran. Welche Note hast Du/Sie?
5
Jetzt ist das Fach Mathe dran. Welche Note hast Du/Sie?
4
Jetzt ist das Fach Englisch dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Italienisch dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Physik dran. Welche Note hast Du/Sie?
1
Jetzt ist das Fach Musik dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Chemie dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Religion dran. Welche Note hast Du/Sie?
4
Jetzt ist das Fach Zeichnen dran. Welche Note hast Du/Sie?
3
Jetzt ist das Fach Geschichte dran. Welche Note hast Du/Sie?
2
Jetzt ist das Fach Geografie dran. Welche Note hast Du/Sie?
1
Jetzt ist das Fach Sport dran. Welche Note hast Du/Sie?
2
Dein/Ihr Schnitt beträgt: 2.6666667

Du siehst, ich nicht so gut sprechen Deutsch. :D
thx also .nextLine ist also besser funktioniert das immer?
 

Blender3D

Top Contributor
Schau Dir diese Variante an. Vielleicht verstehst Du sie als Anfänger eher ?? :p
Java:
import java.util.Scanner;
public class Notendurchschnitt {
    // Beim Starten von der Konsole werden die Fächer als Parameter übergeben
    public static void main(String[] args) {
        // args ist ein Feld von Strings mit der Länge args.length
        // args entält die übergebenen Parameter beim Programstart
        int anzahlfaecher = args.length;
        if( anzahlfaecher < 1 ){ // Wenn kein Fach übergeben wird terminiere
            System.out.println("Bitte die Namen der Fächer übergegen!!");
            System.exit(1);
        }
        // Feld von integer für die Noten erzeugen
        int[] noten = new int[anzahlfaecher];
                                       
        // Schleife über der Anzahl der Einträge im Feld args
        // zum Einlesen  der Noten
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < args.length; i++) {
            System.out.print("Die Note fuer " + args[i] + "\t ");
            noten[i] = sc.nextInt();
        }
        sc.close();
        int notensumme = 0;
        // Schleife über der Anzahl der Einträge im Feld args
        // zum Ausgeben der Noten und Fächer
        for (int i = 0; i < anzahlfaecher; i++) {       
            System.out.println(  noten[i] +"\t"+ args[i] );
            notensumme += noten[i]; // Summe der Noten addieren
        }
        // Berechnet den Notenschnitt und formatiert den double zu einem String mit einer Kommastelle
        String schnitt = String.format("%.1f\tNotenschnitt", (notensumme / (double) anzahlfaecher));
        System.out.println(schnitt);
    }
}
 
Zuletzt bearbeitet von einem Moderator:
X

Xyz1

Gast
Gibt es eine Liste mit Fächern?
Woher stammt diese Liste?
Gibt es nur einen Schüler?
Gibt es mehrere Schüler?
Sollen alle Noten "gespeichert werden"?
wäre noch interessant zu wissen,
dann ich/du/er auch eine Architektur für das ganze wählen.

Und am besten vergiss Scanner komplett - nicht nur am Anfang schadet das mehr, als es nützt.
 

JavaNewbie2.0

Bekanntes Mitglied
Schau Dir diese Variante an. Vielleicht verstehst Du sie als Anfänger eher ?? :p
Java:
import java.util.Scanner;
public class Notendurchschnitt {
    // Beim Starten von der Konsole werden die Fächer als Parameter übergeben
    public static void main(String[] args) {
        // args ist ein Feld von Strings mit der Länge args.length
        // args entält die übergebenen Parameter beim Programstart
        int anzahlfaecher = args.length;
        if( anzahlfaecher < 1 ){ // Wenn kein Fach übergeben wird terminiere
            System.out.println("Bitte die Namen der Fächer übergegen!!");
            System.exit(1);
        }
        // Feld von integer für die Noten erzeugen
        int[] noten = new int[anzahlfaecher];
                                      
        // Schleife über der Anzahl der Einträge im Feld args
        // zum Einlesen  der Noten
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < args.length; i++) {
            System.out.print("Die Note fuer " + args[i] + "\t ");
            noten[i] = sc.nextInt();
        }
        sc.close();
        int notensumme = 0;
        // Schleife über der Anzahl der Einträge im Feld args
        // zum Ausgeben der Noten und Fächer
        for (int i = 0; i < anzahlfaecher; i++) {      
            System.out.println(  noten[i] +"\t"+ args[i] );
            notensumme += noten[i]; // Summe der Noten addieren
        }
        // Berechnet den Notenschnitt und formatiert den double zu einem String mit einer Kommastelle
        String schnitt = String.format("%.1f\tNotenschnitt", (notensumme / (double) anzahlfaecher));
        System.out.println(schnitt);
    }
}
hab mir das jetzt angeschaut aber was bedeutet \t??
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Habe ein Problem und eine Frage Java Basics - Anfänger-Themen 19
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
E Habe ein Problem Java Basics - Anfänger-Themen 10
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J Java: Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 4
Thallius String und \n. Habe wohl gerade Brett vorm Kopf Java Basics - Anfänger-Themen 13
G Umgebungsvariable Hallo Ich habe ein Problem mit der Umgv Java Basics - Anfänger-Themen 9
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
J Habe problem mit Java Java Basics - Anfänger-Themen 2
S Habe mist gebaut.. ^^ Java Basics - Anfänger-Themen 4
I Habe keine Idee was ich als Anfänger programmieren kann. Java Basics - Anfänger-Themen 4
K Habe ich ein Synchronisationsproblem ? Java Basics - Anfänger-Themen 25
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
E Habe java. Datei wie ausführen ? Java Basics - Anfänger-Themen 9
B Habe einen Fehler Java Basics - Anfänger-Themen 3
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4
U Habe meine .class files gelöscht. Java Basics - Anfänger-Themen 3
S Taschenrechner programmieren und habe null Ahnung Java Basics - Anfänger-Themen 22
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
G habe ein Catch problem Java Basics - Anfänger-Themen 7
X Habe Set, möchte List Java Basics - Anfänger-Themen 3
W Applet starten - ich habe keine ahnung Java Basics - Anfänger-Themen 17
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
K Brauche nur Tipps Leute habe keine plan wie ich dass machen Java Basics - Anfänger-Themen 4
P Habe da ein Problem mit Arrays! Bitte um Hilfe Java Basics - Anfänger-Themen 2
A Gleichungssystem: Ich habe es probiert! Java Basics - Anfänger-Themen 4
H habe keine main Java Basics - Anfänger-Themen 9
ven000m Rauten "Stern" zeichnen, hälfte habe ich zweite? Java Basics - Anfänger-Themen 2
G Habe Fragen zu der Programmierung eines Matheprogramms Java Basics - Anfänger-Themen 5
T HILFE! Ich habe keinen Plan mehr! Java Basics - Anfänger-Themen 16
M Habe ein Problem mit dem Konstruktor!Wer kann helfen? Java Basics - Anfänger-Themen 15
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben