# Notenberechnung Eigenes Projekt



## excite0815 (24. Jul 2008)

Hi also habe ich mich hier auch mal angemeldet, da ich zurzeit eine Ausbildung mache und ich der einzigste bin der sich für Java entschieden hat und mein Prof mich ins klate Wasser geworfen hat und mir was ausdenken sollte habe ich jetzt mal Angefangen ein kleines Projekt zu gestalten. 

In diesem Projekt geht es um ein kleines Tool um Noten zu berechnen was auch eigentlich so ganz gut funktioniert so wie ich es mir vorgestellt habe, nun möchte ich aber die Noten in einer xml Datei speichern und dann damit weiterarbeiten ich suche keine Musterlösung aber vielleicht Tipps zu Tutorials oder wo ich erstmal anknüpfen kann.

Denn ich bin nunmal seit 3 Wochen blutiger Anfänger und lese mir halt alles selbst an und habe grossen ergeit Java zu lernen aber hier erstmal mein Code (wenn es was zu verbessern gibt bin ich gerne für Tipps offen) damit ihr erstmal wisst worum es geht. 

Im Endeffeckt würde ich gerne die Noten speichern zu den Schülern und irgendwann es vielleicht Schaffen das man Schüler anlegen kann aussuchen kann und sich dann zB. noch ein Diagramm anzeigen lassen kann wie der Schüler so war das Jahr (Bilanz) hinzu wollte ich ein Fenster noch erstellen was mir anzeigt welcher Schüler versetzungsgefährdet ist und eins welchen den Durchschnitt anzeigt der Schüler.

Im groben und ganzen soll es wie der Name schon sagt ein DozentHelper werden also wer noch Tipps hat ich habe dafür immer ein offenes Ohr das ist wie ich sagte keine Hausaufgabe oder sonstiges sondern ein selbst ausgedachtes Projekt für mich selbst.

Nun ist die Frage ob das überhaupt alles möglich ist und die Frage geht halt an euch falls etwas nicht umsetzbar ist lasst es mich doch bitte wissen.


```
package com.swingdesigner;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.BevelBorder;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

public class SwingDesigner extends JFrame {

	private final JLabel label = new JLabel();
	private final JTextField textField = new JTextField();
	private final JLabel label_1 = new JLabel();
	private final JTextField textField_1 = new JTextField();
	private final JTextField textPane = new JTextField();
	private final JButton button = new JButton();
	private final JButton button_1 = new JButton();
	private final JLabel label_2 = new JLabel();
	private final JLabel label_3 = new JLabel();
	private final JTextField textPane_1 = new JTextField();
	private final JLabel noteLabel = new JLabel();
	private final JTextField textPane_2 = new JTextField();
	private final JTextField textArea = new JTextField();
	private final JLabel unterrichtsfachLabel = new JLabel();
	private final JLabel dozentlehrerLabel = new JLabel();
	private final JTextField textField_Dozent = new JTextField();
	private final JTextField textField_Fach = new JTextField();
	private final JMenuBar menuBar = new JMenuBar();
	private final JMenu dateiMenu = new JMenu();
	private final JMenuItem newItemMenuItem = new JMenuItem();
	private final JMenuItem newItemMenuItem_1 = new JMenuItem();
	private final JMenuItem newItemMenuItem_2 = new JMenuItem();
	private final JMenu dozentMenu = new JMenu();
	private final JMenu frauSchmalzMenu = new JMenu();
	private final JMenu menu = new JMenu();
	private final JMenuItem newItemMenuItem_3 = new JMenuItem();
	private final JMenuItem newItemMenuItem_4 = new JMenuItem();
	private final JMenuItem newItemMenuItem_5 = new JMenuItem();
	private final JMenuItem newItemMenuItem_6 = new JMenuItem();
	private final JMenu menu_1 = new JMenu();
	private final JMenu dozenthelperMenu = new JMenu();
	private final JMenuItem newItemMenuItem_7 = new JMenuItem();
	private final JMenuItem newItemMenuItem_8 = new JMenuItem();
	private final JLabel ergebnissLabel = new JLabel();
	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			SwingDesigner frame = new SwingDesigner();
			frame.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public interface GradingKey {
		 
	       public int convertToGrade(int summe);

	} 
	
	/**
	 * Create the frame
	 */
	public SwingDesigner() {
		super();
		setBounds(100, 100, 544, 418);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try {
			jbInit();
		} catch (Throwable e) {
			e.printStackTrace();
		}
		//
	}
	private void jbInit() throws Exception {
		getContentPane().setLayout(null);
		setFont(new Font("Arial Black", Font.PLAIN, 12));
		setTitle("DozentHelper 0.1 Alpha");
		setBackground(Color.GRAY);
		
		getContentPane().add(label);
		label.setText("Erreichte Punkte:");
		label.setBounds(289, 112, 106, 16);
		
		getContentPane().add(textField);
		textField.setBounds(401, 109, 125, 22);
		
		getContentPane().add(label_1);
		label_1.setText("Maximalpunktzahl:");
		label_1.setBounds(289, 137, 106, 16);
		
		getContentPane().add(textField_1);
		textField_1.setBounds(401, 134, 125, 22);
		
		getContentPane().add(textPane);
		textPane.setBounds(141, 174, 385, 22);
		
		getContentPane().add(button);
		button.setForeground(new Color(34, 139, 34));
		button.addActionListener(new ButtonActionListener());
		button.setText("Berechne");
		button.setBounds(10, 325, 106, 26);
		
		getContentPane().add(button_1);
		button_1.setForeground(new Color(165, 42, 42));
		button_1.addActionListener(new Button_1ActionListener());
		button_1.setText("Lösche");
		button_1.setBounds(122, 325, 106, 26);
		
		getContentPane().add(label_2);
		label_2.setText("Erreichte Punkte:");
		label_2.setBounds(10, 176, 106, 16);
		
		getContentPane().add(label_3);
		label_3.setText("Prozente:");
		label_3.setBounds(10, 204, 106, 16);
		
		getContentPane().add(textPane_1);
		textPane_1.setBounds(141, 202, 385, 22);
		
		getContentPane().add(noteLabel);
		noteLabel.setText("Erreichte Note:");
		noteLabel.setBounds(10, 236, 106, 16);
		
		getContentPane().add(textPane_2);
		textPane_2.setBounds(141, 230, 385, 22);
		
		getContentPane().add(textArea);
		textArea.setBounds(141, 258, 385, 22);
		
		getContentPane().add(unterrichtsfachLabel);
		unterrichtsfachLabel.setText("Unterrichtsfach:");
		unterrichtsfachLabel.setBounds(10, 137, 99, 16);
		
		getContentPane().add(dozentlehrerLabel);
		dozentlehrerLabel.setText("Dozent/Lehrer:");
		dozentlehrerLabel.setBounds(10, 112, 99, 16);
		
		getContentPane().add(textField_Dozent);
		textField_Dozent.setBounds(110, 110, 126, 20);
		
		getContentPane().add(textField_Fach);
		textField_Fach.setBounds(110, 135, 126, 20);
		
		setJMenuBar(menuBar);
		
		menuBar.add(dateiMenu);
		dateiMenu.setText("Datei");
		
		dateiMenu.add(newItemMenuItem);
		newItemMenuItem.addActionListener(new NewItemMenuItemActionListener());
		newItemMenuItem.setText("Neu");
		
		dateiMenu.add(newItemMenuItem_1);
		newItemMenuItem_1.setText("Speichern");
		
		dateiMenu.add(newItemMenuItem_2);
		newItemMenuItem_2.setText("Beenden");
		
		menuBar.add(dozentMenu);
		dozentMenu.setText("Dozent");
		
		dozentMenu.add(frauSchmalzMenu);
		frauSchmalzMenu.setText("Frau Schmalz");
		
		frauSchmalzMenu.add(newItemMenuItem_5);
		newItemMenuItem_5.addActionListener(new NewItemMenuItem_5ActionListener());
		newItemMenuItem_5.setText("Wirtschaft");
		
		frauSchmalzMenu.add(newItemMenuItem_6);
		newItemMenuItem_6.addActionListener(new NewItemMenuItem_6ActionListener());
		newItemMenuItem_6.setText("Word");
		
		dozentMenu.add(menu);
		menu.setText("Herr Schröder");
		
		menu.add(newItemMenuItem_3);
		newItemMenuItem_3.addActionListener(new NewItemMenuItem_3ActionListener());
		newItemMenuItem_3.setText("Wiso");
		
		menu.add(newItemMenuItem_4);
		newItemMenuItem_4.addActionListener(new NewItemMenuItem_4ActionListener());
		newItemMenuItem_4.setText("Kommunikation");
		
		menuBar.add(menu_1);
		menu_1.setText("?");
		
		menu_1.add(dozenthelperMenu);
		dozenthelperMenu.setText("DozentHelper");
		
		dozenthelperMenu.add(newItemMenuItem_7);
		newItemMenuItem_7.setText("Hilfe");
		
		dozenthelperMenu.add(newItemMenuItem_8);
		newItemMenuItem_8.setText("Version");
		
		getContentPane().add(ergebnissLabel);
		ergebnissLabel.setText("Ergebniss:");
		ergebnissLabel.setBounds(10, 258, 99, 16);
	}
	private class ButtonActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			button_actionPerformed(e);
		}
	}
	private class Button_1ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			button_1_actionPerformed(e);
		}
	}
	private class NewItemMenuItem_5ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			newItemMenuItem_5_actionPerformed(e);
		}
	}
	private class NewItemMenuItem_6ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			newItemMenuItem_6_actionPerformed(e);
		}
	}
	private class NewItemMenuItem_3ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			newItemMenuItem_3_actionPerformed(e);
		}
	}
	private class NewItemMenuItem_4ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			newItemMenuItem_4_actionPerformed(e);
		}
	}
	private class NewItemMenuItemActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			newItemMenuItem_actionPerformed(e);
		}
	}
	 protected void button_actionPerformed(ActionEvent e) {
	      String fach = textField_Fach.getText();
	      String zahl1 = textField.getText(); //holen der Zahl1
	      String zahl2 = textField_1.getText(); //holen der Zahl2       
	      String dozent = textField_Dozent.getText(); //Name des Dozenten
	      int dieZahl1 = Integer.parseInt(zahl1); //String in Int umwandeln (Zahl1)
	      int dieZahl2 = Integer.parseInt(zahl2); //String in Int umwandeln (Zahl2)
	      int summe = dieZahl1 * 100 / dieZahl2; //Berechnen von Prozent
	      textPane.setText("Sie haben " + zahl1 + " Punkte von möglichen " + zahl2 + " Punkten erreicht!"); //ausgabe Punkteanzahl
	      textPane_1.setText("Sie haben somit " + summe + " Prozent von 100 Prozent erreicht!"); //ausgabe von erreichten Prozent

	      int mark = getMark(summe);
	      textPane_2.setText("Sie haben mit " + summe + " Prozent die Note "+mark+" erreicht!");
	      textArea.setText("Sie erhalten die Note " + mark + " im Fach " + fach + " bei " + dozent + "!");
	 	}
	   
	   private int getMark(int sum) {
	      if(sum <= 100 && sum >= 92)
	    	  return 1;
	      else if (sum <= 91 && sum >= 81)
	    	  return 2;
	      else if (sum <= 80 && sum >= 67)
	    	  return 3;
	      else if (sum <= 66 && sum >= 50)
	    	  return 4;
	      else if (sum <= 49 && sum >= 30)
	    	  return 5;
	      else if (sum <= 29)
	    	  return 6;
	          return -1;
	      }
	   
	protected void button_1_actionPerformed(ActionEvent e) {
		textField.setText("");		//setzen der Felder auf "leer"
		textField_1.setText("");
		textPane.setText("");
		textPane_1.setText("");
		textPane_2.setText("");
		textArea.setText("");
		textField_Dozent.setText("");
		textField_Fach.setText("");
	}

	/**
	 * WindowBuilder generated method.

	 * Please don't remove this method or its invocations.

	 * It used by WindowBuilder to associate the {@link javax.swing.JPopupMenu} with parent.
	 */
	private static void addPopup(Component component, final JPopupMenu popup) {
		component.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				if (e.isPopupTrigger())
					showMenu(e);
			}
			public void mouseReleased(MouseEvent e) {
				if (e.isPopupTrigger())
					showMenu(e);
			}
			private void showMenu(MouseEvent e) {
				popup.show(e.getComponent(), e.getX(), e.getY());
			}
		});
	}
	protected void newItemMenuItem_5_actionPerformed(ActionEvent e) { //Füllen von Feldern Dozent/Unterrichtsfach mit Frau Schmalz/Wirtschaft
		textField_Dozent.setText("Frau Schmalz");
		textField_Fach.setText("Wirtschaft");
	}
	protected void newItemMenuItem_6_actionPerformed(ActionEvent e) { //Füllen von Feldern Dozent/Unterrichtsfach mit Frau Schmalz/Word
		textField_Dozent.setText("Frau Schmalz");
		textField_Fach.setText("Word");
	}
	protected void newItemMenuItem_3_actionPerformed(ActionEvent e) { //Füllen von Feldern Dozent/Unterrichtsfach mit Herr Schröder/Wiso
		textField_Dozent.setText("Herr Schröder");
		textField_Fach.setText("Wiso");
	}
	protected void newItemMenuItem_4_actionPerformed(ActionEvent e) { //Füllen von Feldern Dozent/Unterrichtsfach mit Herr Schröder/Kommunikation
		textField_Dozent.setText("Herr Schröder");
		textField_Fach.setText("Kommunikation");
	}
	protected void newItemMenuItem_actionPerformed(ActionEvent e) {
		textField.setText("");		//setzen der Felder auf "leer" bei klick im Menu neu
		textField_1.setText("");
		textPane.setText("");
		textPane_1.setText("");
		textPane_2.setText("");
		textArea.setText("");
		textField_Dozent.setText("");
		textField_Fach.setText("");
	}
}
```

So also würde mich über jeden Hinweis oder Tipp freuen MfG Excite0815

P.s. Ich hoffe es war verständlich!


----------



## foobar (24. Jul 2008)

Daten als XMLfile persistieren ist relativ simpel. Am schnellsten gehts wohl per JAXB ansonsten manuell per DOM/JDOM: http://www.java-forum.org/de/viewtopic.php?t=8325&highlight=xml+config
http://www.galileodesign.de/openboo...14_008.htm#mj43d7bcf9caef22c3565cbb6cd9772705

Generell solltest du dir ein paar Gedanken zum Softwaredesign deiner Anwendung machen. Welche Klassen gibt es und wie spielen diese am besten zusammen?
Im Moment ist alles ein großer Haufen. Das ist nicht besonders praktikabel.


----------



## excite0815 (24. Jul 2008)

Ok ich werde mich denn gleich mal an die Links setzen und mich damit befassen, das Design naja habe ich schon ungefähr im Kopf aber wie ich schon sagte war das mein erstes Projekt dass es da noch alles viel ist habe ich auch schon mitbekommen muss mir da mal ein besseres Konzept ausdenken aber mich erstmal mit beschäftigen wie ich das am besten machen kann. Bin eigentlich froh schon selbst überhaupt schon ein Ergebniss bekommen zu haben!


----------



## Niki (24. Jul 2008)

Noch ein Link für XML und Java: XMLBeans-Tutorial


----------

