Ich habe ein altes Beispiel von meinem Vater genommen und mal nachprogrammiert um es dann zu vereinfachen. Da bin ich dann auf ein Problem gestoßen. Er verwendete zum EInlesen von Daten die Klasse IN. Doch irgendweíe gibt es die Klasse nicht, zumindest findet bei mir Eclipse die Klasse nicht. Dannach habe ich im Internet gesucht und da gibt es die KLasse aber.
Wo liegt jetzt das Problem??? Warum findet Eclipse die Klasse nicht ?
Scheint keine Klasse der Standard-Java-API zu sein, dann findet Eclipse sie natürlich auch nicht. Wenn du willst, dass Eclipse von der Klasse erfährt, musst du die Klasse (von wo auch immer) herunterladen und bei Eclipse in den Pfad einbinden. Funktioniert genauso mit allen anderen externen Klassen auch.
sorry habe mich verlesen bei dem link
aber ich habe neben dem alten code von meinem vater auch einen ausdruck aus der api wo es unter java.lang.object eine abgeleitete classe In gibt ...
Weil es die Klasse nicht gibt - das war vielleicht eine von einer Schule zur Verfügung gestellte Klasse oder was auch immer - aber was soll die Klasse denn können?
(Wenn du diese Frage nicht beantworten kannst, stell einfach deinen Code hier rein)
Es wäre doch eine sehr gute Übung diese Klasse selbst zu schreiben.
importjava.awt.Component;publicclassMatrNrVergabe{privateint standart =0;privateint tu =24999;privateint boku =39999;privateint ved =44999;privateint wu =49999;privateint angku =73999;publicMatrNrVergabe(){}publicStringcreateMatrNr()throwsSVException{System.out.println();System.out.println("UNI Wien <1>");System.out.println("TU Wien <2>");System.out.println("Boku Wien <3>");System.out.println("Ved-Med Wien <4>");System.out.println("WU Wien <5>");System.out.println("Angewandte Kunst Wien <6>");System.out.print("Bitte geben Sie Ihre Auswahl ein:");In myin =newIn();[COLOR="Red"]////HIER KOMMT IN VOR[/COLOR]int uni = myin.readInt();switch(uni){case1:
standart = standart+1;if(standart <10)returnnewString("0000"+standart);if(standart <100)returnnewString("000"+standart);if(standart <1000)returnnewString("00"+ standart);if(standart <10000)returnnewString("0"+standart);case2:
tu = tu+1;returnString.valueOf(tu);case3:
boku = boku+1;returnString.valueOf(boku);case4:
ved = ved +1;returnString.valueOf(ved);case5:
wu = wu+1;returnString.valueOf(wu);case6:
angku = angku +1;returnString.valueOf(angku);default:thrownewSVException("Falsche Eingabe der Uni");}}}
Java:
importjava.awt.*;importjava.util.*;publicclassNumbercheckextendsComponent{privateString sv_nr;publicNumbercheck(String sv_nr)throwsSVException{this.setSv_nr(sv_nr);int i = sv_nr.length();if(i==1&&sv_nr.substring(0,1).equals("0"))thrownewSVException("ENDE");elseif(i!=10)System.out.println("Falsche Zeichenanzahl eingegeben. Bitte geben Sie SV Nr erneut ein:");elsetry{int x =Integer.parseInt(sv_nr);}catch(Exception e){thrownewSVException("Keine gültige Zahl");}int sv_nr_an =Integer.parseInt(sv_nr.substring(0,4));if(sv_nr_an >1000);elsethrownewSVException("SV Nr ist trotzdem ungültig, weil Zahl unter 1000 eingegeben wurde");int day=Integer.parseInt(sv_nr.substring(4,6));int month=Integer.parseInt(sv_nr.substring(6,8));int year=Integer.parseInt(sv_nr.substring(8,10));GregorianCalendar cal =newGregorianCalendar();if(year<=cal.get(Calendar.YEAR)-1918){switch(month){case1:case3:case5:case7:case8:case10:case12:if(day <=31);elsethrownewSVException("Geburtsdatum ist ungültig");break;case4:case6:case9:case11:if(day <=30);elsethrownewSVException("Geburtsdatum ist ungültig");break;case2:if(day <=28);elsethrownewSVException("Geburtsdatum ist ungültig");break;}}elsethrownewSVException("Student wäre zu jung");}publicvoidsetSv_nr(String sv_nr){this.sv_nr = sv_nr;}publicStringgetSv_nr(){return sv_nr;}}
Java:
importjava.awt.*;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassStudentenadministrationextendsComponent{publicstaticvoidmain(String[] args){String sv_nr;MatrNrVergabe mv =newMatrNrVergabe();do{Studentenadministration sa1 =newStudentenadministration();System.out.println("Bitte geben Sie die SV Nr ein, wenn Sie die Eingabe verlassen wollen -0- eingeben:");In myin =newIn();[COLOR="Red"]////HIER KOMMT IN VOR[/COLOR]
sv_nr =newString();
sv_nr = myin.readWord();try{Numbercheck nc =newNumbercheck(sv_nr);try{String matrnr = mv.createMatrNr();GregorianCalendar cal =newGregorianCalendar();
matrnr =String.valueOf(cal.get(Calendar.YEAR)).substring(2,4)+matrnr;System.out.println("Sie Sind am "+sv_nr.substring(4,6)+"."+sv_nr.substring(6,8)+"."+sv_nr.substring(8,10)+" geboren und erhalten die MAtrNr:"+matrnr);System.out.println();}catch(SVException e){System.out.println(e.msg);}}catch(SVException e){System.out.println(e.msg);}}while(sv_nr.equals("0"));System.out.println("Abbruch der Eingabe!");System.exit(0);}}
MatrNrVergabe Zeile 22 : das [COLOR="Red] weg - das ist kein Java - ich weiss nicht woher das kommt
Schon ist alles kompilierbar - das war mal der erste Schritt.
In "In" muss jetzt natürlich etwas geeignetes gefunden werden um einen Integer einzulesen - kennst du [URL="http://openbook.galileocomputing.de/javainsel9/"]die Insel[/URL]? Es steht alles drin - das hat aber logischerweise auch Nachteile
importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassIn{publicintreadInt()throwsIOException{BufferedReader in =newBufferedReader(newInputStreamReader(System.in));String str = in.readLine();int i =Integer.parseInt(str);return i;}}
Java:
packagecom.javaforum.matrnummer;importjava.io.IOException;publicclassMatrNrVergabe{privateint standart =0;privateint tu =24999;privateint boku =39999;privateint ved =44999;privateint wu =49999;privateint angku =73999;// public MatrNrVergabe(){} -> Braucht es nur, wenn was drin steht ...publicStringcreateMatrNr()throwsSVException{boolean eingabeOk =false;int uni =0;In myin =newIn();do{System.out.println();System.out.println("UNI Wien <1>");System.out.println("TU Wien <2>");System.out.println("Boku Wien <3>");System.out.println("Ved-Med Wien <4>");System.out.println("WU Wien <5>");System.out.println("Angewandte Kunst Wien <6>");System.out.print("Bitte geben Sie Ihre Auswahl ein: ");try{
uni = myin.readInt();
eingabeOk =true;}catch(IOException e){
eingabeOk =false;}}while(!eingabeOk);switch(uni){case1:
standart = standart+1;if(standart <10)returnnewString("0000"+standart);if(standart <100)returnnewString("000"+standart);if(standart <1000)returnnewString("00"+ standart);if(standart <10000)returnnewString("0"+standart);case2:
tu = tu+1;returnString.valueOf(tu);case3:
boku = boku+1;returnString.valueOf(boku);case4:
ved = ved +1;returnString.valueOf(ved);case5:
wu = wu+1;returnString.valueOf(wu);case6:
angku = angku +1;returnString.valueOf(angku);default:thrownewSVException("Falsche Eingabe der Uni");}}}
jetzt habe ich nur noch das Problem das ich in der Stundenadministration den Befehl myin.readWord() habe denn müsste ich jetzt auch noch selber schreiben oder wie ?
oder kann ich einfach das readInt() verwenden nur zum schluss das parseInt rausnehmen ????
Du hast jetzt ja einen laufenden Ansatz und kannst jetzt weiter suchen - falls etwas dann nicht so tut wie du erwartest - du weisst ja wohin mit dem Code und der Fehlerbeschreibung
Hab oben ja mein Main vegessen - na ja so high sophisticated code behalte ich im Normalfall für mich :lol:
Java:
publicclassTest{publicstaticvoidmain(String[] args){MatrNrVergabe matrNr =newMatrNrVergabe();String nr ="";try{
nr = matrNr.createMatrNr();System.out.println("Matrikelnummer = "+ nr);}catch(SVException e){
e.printStackTrace();}}}