Forum » Programiranje » [Java-FRI(OAPS1)] Težava z konstruktorjem
[Java-FRI(OAPS1)] Težava z konstruktorjem
SkIDiver ::
Težavo kot kaže mi dela konstruktor pa ne vem kaj je narobe.
Napaka, ki jo javlja (vrstica 227 je konstruktor čisto na koncu kode preden se zapre metoda generiraj);
Napaka, ki jo javlja (vrstica 227 je konstruktor čisto na koncu kode preden se zapre metoda generiraj);
K:\OAPS156\avtoTest2.java:227: cannot find symbol
symbol : constructor Student(java.lang.String,java.lang.String,Datum,char,java.lang.String,java.lang.String,short,java.lang.String,char,byte[][])
location: class Student
t[y]=new Student(i,p,new Datum(d,m,l),s,E,f,lv,v,j,to);
^
public class avtoTest2{
public static void main(String[] args){
int n;
char odg;
byte atr;
System.out.print("Vnesi stevilo studentov: ");
n=BranjePodatkov.preberiInt();
System.out.println();
Student[] ts=new Student[n];
generiraj(ts);
Student[] pt=new Student[n];
prepisiTabelo(ts,pt);
izpisiPodatke(ts);
do{
System.out.print("Izberi atribut po katerem zelis razvrstiti studente (1-14):");
atr=(byte)BranjePodatkov.preberiInt();
System.out.println();
while(atr<1||atr>14);
System.out.print("Izberi smer urejanja: ");
byte smer=(byte)BranjePodatkov.preberiInt();
System.out.println();
System.out.print("Zelis zacetno urejenost (+1/o/-1)");
byte zacUr=(byte)BranjePodatkov.preberiInt();
System.out.println();
if(zacUr!=0)
SortiranjeObjektov.straightinsertion(ts,((byte)(zacUr*smer)),atr);
System.out.print("Izberi metodo za sortiranje (1-10)");
byte metoda=(byte)BranjePodatkov.preberiInt();
System.out.println();
switch(metoda){
case 1: SortiranjeObjektov.straightinsertion(ts,smer,atr);
break;
/*case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;*/
default:
}
izpisiPodatke(ts);
prepisiTabelo(pt,ts);
System.out.println("Zelis koncati? (DA/NE)");
odg=(BranjePodatkov.preberiString()).charAt(0);
}
while(odg!='D'&&odg!='d');
}
public static void prepisiTabelo(Student[] t, Student[] p){
for(int i=0;i<t.length; i++)
p[i]=t[i];
}
public static void generiraj(Student[] t){
for(int y=0; y<t.length; y++){
//generiranje imena
int nIme=(int)(((Math.random()+0.1)*10)+((Math.random()+0.1)+10));
String i;
switch(nIme){
case 1: i="Andrej"; break;
case 2: i="Bojana"; break;
case 3: i= "David"; break;
case 4: i= "Erna"; break;
case 5: i= "Franc"; break;
case 6: i= "Glorija"; break;
case 7: i= "Hans"; break;
case 8: i= "Ivana"; break;
case 9: i= "Jernej"; break;
case 10: i= "Katja"; break;
case 11: i= "Luka"; break;
case 12: i= "Maja"; break;
case 13: i= "Niko"; break;
case 14: i= "Dunja"; break;
case 15: i= "Primoz"; break;
case 16: i= "Sanja"; break;
case 17: i= "Samo"; break;
case 18: i= "Tanja"; break;
case 19: i= "Uros"; break;
case 20: i= "Vida"; break;
default: i= "Zan";
}
System.out.println(i);
//generiranje priimka
int xI=(int)(((Math.random()+0.1)*10)+((Math.random()+0.1)+10));
String p;
switch(xI){
case 1: p="Ancelj"; break;
case 2: p="Brecelj"; break;
case 3: p= "Cankar"; break;
case 4: p= "Drganc"; break;
case 5: p= "Erzelj"; break;
case 6: p= "Finzgar"; break;
case 7: p= "Gorenc"; break;
case 8: p= "Ivanec"; break;
case 9: p= "Jakse"; break;
case 10: p= "Koren"; break;
case 11: p= "Levstik"; break;
case 12: p= "Mihelic"; break;
case 13: p= "Novak"; break;
case 14: p= "Opara"; break;
case 15: p= "Preseren"; break;
case 16: p= "Rjavec"; break;
case 17: p= "Sinkovec"; break;
case 18: p= "Turk"; break;
case 19: p= "Uran"; break;
case 20: p= "Vidmar"; break;
default: p= "Zalar";
}
//generiranje dan rojstva
byte d;
//generiranje mesec rojstva
byte m;
//generiranje leto rojstva
byte l;
//generiranje spola
char s;
if(nIme%2==0)
s='Z';
else
s='M';
//generiranje EMŠO-ja
String E;
//generiranje fakultete
int xF=(int)((Math.random()+0.1)*10);
String f;
switch(xF){
case 1: f="FRI"; break;
case 2: f="FE"; break;
case 3: f= "EF"; break;
case 4: f= "FDV"; break;
case 5: f= "FS"; break;
case 6: f= "FK"; break;
case 7: f= "FF"; break;
case 8: f= "BF"; break;
case 9: f= "FMF"; break;
case 10: f= "FOV"; break;
default: f= "PF";
}
//generiranje leto vpisa
short lv=(short)((Math.random()+0.1)*10);
//generiranje vrste vpisa
String v;
//String[]tv={"prvi vpis","ponovni vpis","pavzer","absolvent"};
double vV=Math.random();
if(vV<0.2)
v="prvi vpis";
else if(vV<0.6&&vV>0.2)
v="ponovni vpis";
else if(vV<0.8&&vV>0.6)
v="pavzer";
else
v="absolvent";
//generiranje redni/izredni
char j;
double jI=Math.random();
if(jI<0.5)
j='D';
else
j='N';
//generiranje ocen
byte[][] to=new byte[2006-lv][];
for(int jj=0; jj<to.length; jj++){
to[jj]=new byte[(int)(Math.random()*21)];
for(int kk=0; kk<to[jj].length; kk++){
to[jj][kk]=(byte)(Math.random()*6+5);
}
}
//vpis podatkov v objekt
t[y]=new Student(i,p,new Datum(d,m,l),s,E,f,lv,v,j,to);
}
}
public static void izpisiPodatke(Student[] t){
for(int i=0; i<t.length; i++)
System.out.println(t[i]);
System.out.println();
}
}
SkIDiver ::
No napaka odkrita
Mislm čist banalno. Konstruktorju sem vračal namesto boolean vrednost char
Tudi to se zgodi
Zdej imam pa sledečo težavo! Metoda generiraj() zgenerira samo imena potem pa se verjetno zacikla, ker črtica utripa in ni ne konca ne kraja.
Mogoče kaka ideja zakaj pride do tega? Meni se namreč zdi zadeva smiselna in zastavljeno je tako, da za vsako polje v tabeli najprej zgenerira vse atribute in potem nadaljuje za naslednje polje.
Torej najprej t[0], t[1], t[2], t[3], če vzamemo da ima enodimenzionalna tabela 4 polja/elemente. Zakaj torej zgenerira samo ime ostalo pa ne?
Zdej imam pa sledečo težavo! Metoda generiraj() zgenerira samo imena potem pa se verjetno zacikla, ker črtica utripa in ni ne konca ne kraja.
Mogoče kaka ideja zakaj pride do tega? Meni se namreč zdi zadeva smiselna in zastavljeno je tako, da za vsako polje v tabeli najprej zgenerira vse atribute in potem nadaljuje za naslednje polje.
Torej najprej t[0], t[1], t[2], t[3], če vzamemo da ima enodimenzionalna tabela 4 polja/elemente. Zakaj torej zgenerira samo ime ostalo pa ne?
SkIDiver ::
Tudi ta napaka je odpravljena. Namesto String je vračalo char in se je seveda zadeva zapletla.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | [Java]Pri obratu stevila mi prva cifra zgineOddelek: Programiranje | 1256 (1077) | Robi182 |
| » | Java zvezdice - malo drugačeOddelek: Programiranje | 2451 (2253) | Leyla_ |
| » | [java] napakaOddelek: Programiranje | 1703 (1703) | tx-z |
| » | [Java] vprašanjaOddelek: Programiranje | 1576 (1576) | tx-z |
| » | [JAVA]Branje podatkov tipa int, doubleOddelek: Programiranje | 3523 (3421) | BaRtMaN |