Studentenverwaltung

Tooltime

Mitglied
Hallo,

ich hab ein Problem bei einer Studentenverwaltung, welche ich anfertigen muss.

Java:
public class Student {
	
	public  int maxStudId = 0; 
	
	private String nachname;
	private String vorname;
	private String gebdatum;
	private int studId;
	private boolean semGeb;
	
	public Student (String nachname, String vorname, String gebdatum, int studId, boolean semGeb) {
		this.nachname = nachname;
		this.vorname = vorname;
		this.gebdatum = gebdatum;
		this.studId = studId;
		this.semGeb = semGeb;
		
		if(studId > maxStudId) {
			maxStudId = studId;
		}else if(studId < maxStudId){
			maxStudId ++;
			studId = maxStudId;
		}
	}

	public boolean isSemGeb() {
		return semGeb;
	}

	public void setSemGeb(boolean semGeb) {
		this.semGeb = semGeb;
	}

	public int getMaxStudId() {
		return maxStudId;
	}

	public String getNachname() {
		return nachname;
	}

	public String getVorname() {
		return vorname;
	}

	public String getGebdatum() {
		return gebdatum;
	}

	public int getStudId() {
		return studId;
	}
	

}

Java:
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Studentenregister {
private Map<String, Object> studenten = new HashMap<String, Object>();



public Map<String, Object> getStudenten() {
	return studenten;
}

public void setStudenten(Map<String, Object> studenten) {
	this.studenten = studenten;
}


//Methode public void immatrikulieren(Student neuer), die überprüft, ob der Nachname des Studenten schon in der 
//Hashtable vorhanden ist und bei Bedarf einen neuen Eintrag hinzufügt.


	public void immatrikulieren(Student neuer) {
		if (neuer.getNachname().equals(studenten)) {
			System.out
					.println("Student in Studentenregister bereits vorhanden.");
		} else {
			System.out
					.println("Student noch nicht in Studentenregister vorhanden. Bitte tragen Sie den Student ein.");
			studenten.put(neuer.getNachname(), neuer.getVorname());
		}
	}

//Die Methode public Student finde(String nachname, String vorname, String gebDatum) sucht einen Studenten 
//in dem Studentenregister und liefert ihn zurück. Wenn die Suche erfolglos ist, wird null zurückgegeben	
	
	public Student finde(String nachname, String vorname, String gebdatum) {
		for( String name: studenten.keySet() )
	    {
	       System.out.println(name + ": "+ studenten.get(nachname) + "" + studenten.get(vorname) + "" + studenten.get(gebdatum)); 
	    }		
		return null;

	}

	
//Die Methode public List<Student> findeAlle(String nachname) sucht alle 
//Studenten gleichen Namens in dem Studentenregister und liefert sie zurück. Wenn die Suche erfolglos ist, wird null zurückgegeben.	
	
	public List<Student> findeAlle(String nachname) {
		if (studenten.equals(nachname)) {
			return (List<Student>) studenten.get(nachname);
		} else {
			return null;
		}
	}

//Methode public void exmatrikulieren(Student stu), die überprüft, ob der 
//Student schon in der Hashtable vorhanden ist und bei Bedarf diesen Eintrag löscht.	
	
	public void exmatrikulieren(Student stu) {
		if(stu.equals(studenten)) {
			System.out.println("Student wird aus Liste gelöscht");
			studenten.remove(stu);
		}else{
			System.out.println("Student nicht in Liste vorhanden");
		}
	}
	
	public static void main(String[] args) {
		
		 HashMap map = new HashMap();
		 Student s1 = new Student("Krauss", "Dieter", "20.3.1994", 342, true);
		 map.put(new String(s1.getNachname()), s1);
		 
		 
		 
	}

	

}

Die Methodenköpfe sind vordefiniert. Was diese machen sollen, hab ich üer die Methoden geschrieben.
Da meine Main nicht funktioniert bzw. Methoden ich nicht aufrufen kann, muss ja noch Fehler enthalten sein.
Mit dem Thema Map bin ich acuh noch nicht so richtig vertraut.

Ich bitte um Hilfe.
 

Saheeda

Top Contributor
Wie ist deine Map definiert? Was soll Schlüssel, was Wert sein? Ganz oben steht Map[String, Object] (sorry, für die [], die spitzen Klammern werden als Tags interpretiert), in der immatrikulieren-Methode schreibst du "studenten.put(neuer.getNachname(), neuer.getVorname())", was zweimal Strings sind. Mir scheint, du bist dir selbst noch nicht so ganz sicher, wie deine Map aussehen soll.


In der immatrikulieren-Methode ist die if-Abfrage falsch. Du fragst "Wenn Apfel gleich Korb, dann mache..."
Ich würde hier über die Map iterieren und schauen, ob es bereits einen Studenten dieses Namens gibt. (Boolsche-Variable außerhalb der Iteration, die auf 'true' gesetzt wird, wenn der Student existiert).

Die anderen Methoden dasselbe Spiel. Über alle Einträge iterieren und schauen, ob die Suchkriterien zutreffen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Studentenverwaltung mit TreeMap Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben