# Studentenverwaltung



## NooBLearninG (25. Okt 2010)

Hallo,

also wir haben die Aufgabe eine Studentenverwaltungsprogramm zu schreiben. Allerdings geht es Schritt für Schritt das heißt pro Übung. Die Begrenzungen für diese AUfgabe ist:
-Nur 1 Dimensionales Array
-Nur Char (kein String,Kein Enum)
-Als Zufallsoperator Math.random()

Die Aufgabe lautet:
Schreiben sie ein Programm das 50 Studenten in ein Array abspeichert mit Matnr, Alter,Geburtsjahr,Studiengang und Fachbereich. Dabei sollen alle Werte zufällig gefüllt werden. Ich habe alles soweit hinbekommen außer ein paar sachen. Ich möchte das mein char[] Studiengang = {'I','W','S','T'} erstens zufällig ausgebgen wird und 50x wie Matnr. usw. ausgebgen wird.
Das bekomme ich nicht hin ich weißt auch nicht ob es möglich ist. Sry ist echt irgendwie schwer zu erklären wo mein Problem liegt, aber hier ist erst mal mein Code:

CODE ENTFERNT, da oft kopiert wurde bei uns und es ist nicht schön wenn einer das selbe hat, aber auf Wunsch zeige ich es noch einmal auf.

Vielen Dank für eure Hilfe.


----------



## Michael... (26. Okt 2010)

NooBLearninG hat gesagt.:


> Die Aufgabe lautet:
> Schreiben sie ein Programm das 50 Studenten in ein Array abspeichert mit Matnr, Alter,Geburtsjahr,Studiengang und Fachbereich.


Also wenn ich die Aufgabenstellung wörtlich nehme, dann lese ich was von *ein*em Array.
==> Meine Interpretation erstellen einer Klasse Student und verwalten der Instanzen in einem Array

```
Student[] studentsArray = new Student[50];
```
Ist jetzt nur wie ich die Aufgabenstellung interpretiert hätte.

Und grundsätzlich hast Du da einige Denkfehler drinnen.

Zur konkreten Fragestellung:


NooBLearninG hat gesagt.:


> ```
> while(index2 < Studiengang.length){
> char zufallS = (char) (Math.random()*(Studiengang.length-index2)+index2); //????
> Studiengang[index2]= zufallS;
> ...


Abgesehen davon, dass in deinem Code nichst zum Speichern von Sudiengang und Fachbereich der einzelnen Studenten vorhanden ist:
Was soll das mit dem 
	
	
	
	





```
-index2) +index2
```
 ?


```
char[] studentStudiengang = new char[50];
char[] studiengang = = {'I','W','S','T'};
...
for (int i=0; i<studentStudiengang; i++) {
...
    int zufallS = Math.random()*Studiengang.length;
    studentStudiengang[i] = studiengang[zufallS];
...
}
```

Statt erst alle Matrikelnummern zu erzeugen (Achtung mit Deinem Code können doppelte vorkommen - warum nicht einfach die Nummern von 1 bis 50 nehmen?), dann Studiengang zu ordnen und dann Geburtsjahr: Warum erzeugst Du nicht einen Student mit all seinen Attributen nach dem andern.


----------



## NooBLearninG (26. Okt 2010)

Vielen Dank für deine Antwort. Also ist es nicht wichtig ob die eine Matrikelnummer doppelt vorkommt, dieses Problem ist mit Absicht erzeugt wurden, da wir dieses Problem in den nächsten Übungen lösen sollen. 
Wie meinst du das denn "Statt erst alle Matrikelnummern zu erzeugen (Achtung mit Deinem Code können doppelte vorkommen - warum nicht einfach die Nummern von 1 bis 50 nehmen?), dann Studiengang zu ordnen und dann Geburtsjahr: Warum erzeugst Du nicht einen Student mit all seinen Attributen nach dem andern. " Also wie kann ich denn einen Studenten mit allen seinen Attributen nach dem anderen erzeugen ??? Weil ich wollte das so lösen das ich alles Arrays nach einander abklappere und dann mit einer schleife ausgeben lasse, aber das hat nicht hin gehauen, da ich das mit Studiengang nicht hin bekommen habe. Es wäre echt Prima wenn du Zeit und Lust hast  mir das erklären könntest mit einen Studenten mit allen seinen Attributen nach dem anderen.


----------



## Michael... (26. Okt 2010)

NooBLearninG hat gesagt.:


> Wie meinst du das denn "Statt erst alle Matrikelnummern zu erzeugen (Achtung mit Deinem Code können doppelte vorkommen - warum nicht einfach die Nummern von 1 bis 50 nehmen?), dann Studiengang zu ordnen und dann Geburtsjahr: Warum erzeugst Du nicht einen Student mit all seinen Attributen nach dem andern. "


Ich nehme mal an Ihr habt noch nicht mit der Objektorientierten Programmierung angefangen:

```
// Studentenattribute
int[] matNr = new int[5];
int[] geburtsJahr = new int[matNr.length];
char[] studienGang = new char[matNr.length];
char[] fachBereich = new char[matNr.length];

// sonstige Werte
char[] studienOption  = {'I','W','S','T'};
int minjahr=1970;
int maxjahr=1990;
...


for (int i=0; i<matNr.length; i++) {
    //Matrikelnummer erzeugen
    matNr[i] = (int) Math.random(matNr.length);
    //Geburtsjahr erzeugen
    geburtsJahr[i] = (int) (Math.random()*(maxjahr-minjahr)+minjahr);
    //Studiengang zuordnen
    studienGang[i] = studienOption[(int) Math.random(studienOption.length)];
    ...
    
}
```
Ist jetzt nur so dahin geschrieben - keine Gewähr ;-)


----------



## NooBLearninG (26. Okt 2010)

Leider dürfen wir noch nicht Objektorientiert programmieren, weil es wäre einfacher wenn ich einfach 3 Methoden habe und dann diese in der Main Methode ausgebe. Allerdings bin ich so in den Methoden usw. gewohnt das ich nicht mehr die einfachsten Dinge mehr hin bekomme ^^

Vielen Dank für deine Antwort. Ich werde es später nach deiner Art probieren, falls ich dann noch fragen habe oder so kann ich mich ja wieder hier wenden wenn keiner was dagegen hat


----------



## NooBLearninG (26. Okt 2010)

Hat alles wunderbar geklappt vielen Dank für die Hilfe. Auf wunsch kann ich auch mein vollständiges Programmcode zeigen Ansonstn lieber nicht, da es auch einige CopyCats gibt ^^.


----------

