» »

[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);
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:D Mislm čist banalno. Konstruktorju sem vračal namesto boolean vrednost char:\ Tudi to se zgodi:D

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java]Pri obratu stevila mi prva cifra zgine

Oddelek: Programiranje
121119 (940) Robi182
»

Java zvezdice - malo drugače

Oddelek: Programiranje
82316 (2118) Leyla_
»

[java] napaka

Oddelek: Programiranje
91601 (1601) tx-z
»

[Java] vprašanja

Oddelek: Programiranje
71455 (1455) tx-z
»

[JAVA]Branje podatkov tipa int, double

Oddelek: Programiranje
123401 (3299) BaRtMaN

Več podobnih tem