Java code probleem

Status
Niet open voor verdere reacties.

DeserV

Nieuwe gebruiker
Lid geworden
1 jun 2008
Berichten
2
Kan iemand mij eventjes helpen? Mijn code werkt, compileert perfect maar doet daarna niet meer wat het vraagt. Zoals bv niet de juiste methodes openen, informatie opslagen.

Kunnen jullie even helpen en zeggen waar mijn fout zit?


TestSAT.java
Code:
{

public class TestSAT{
	
		public static void main (String args[])
		{
			SAT bedrijf = new SAT(" Aarschot");
			bedrijf.keuzemenu();
			
			System.exit(0);
		}
		
}

SAT.java

Code:
import javax.swing.*;
import java.util.*;

public class SAT{

	private ArrayList<Werknemers> werkers;
	private String filiaal;

	public SAT(String filiaal)
	{
		this.filiaal=filiaal;
		werkers = new ArrayList <Werknemers>();
	}

	public void keuzemenu()
	{
		int menu;

		menu = Integer.parseInt(JOptionPane.showInputDialog(null, "Geef u keuze in voor SAT" + filiaal + "\n \n"+ "1. Voeg werknemer toe \n"+ "2. Verwijder werknemer \n"+ "3. Wijs job toe \n"+ "4. Geef werknemerslijst \n"+ "5. exit"));

		switch(menu)
		{
		case 1: voegWerknemerToe();
		break;
		case 2: deleteWerknemer();
		break;
		case 3: toewijzenJob();
		break;
		case 4: print();
		break;
		case 5: break;
		}
	}

	public String toewijzenJob()
	{
		for(int i = 0; i < werkers.size(); i++)
		{
			werkers.get(i).voegJobToe();
		}

		return "";
	}

	public String print()
	{
		for(Werknemers w: werkers)
		{
			System.out.println( w );
		}

		// moet string teruggeven
		return "";
	}

	public String deleteWerknemer()
	{
		String zoek = "";
		String wtf = "";
		zoek = JOptionPane.showInputDialog(null, "Geef id in van te verwijderen werknemer.");

		for(int i = 0; i < werkers.size(); i++)
		{
			if(werkers.get(i).equals(zoek))
			{
				werkers.remove(i);	
			}
			else
			{
				wtf+= "Deze werknemer bestaat niet, probeer opnieuw";
			}
		}

		// moet string teruggeven
		return wtf;
	}


	public String voegWerknemerToe()
	{
		String werker, werkid, werkid1, aofv = "";

		werkid1 = JOptionPane.showInputDialog("Geef het volledige werkid van de nieuwe werknemer op, specifeer 'v' voor vrijwilliger en 'a' voor volwaardig agent gevolgd door een streep en werkid; bv: a-584");

		for(int i = 0; i < werkers.size(); i++)
		{
			if(werkid1.equals(werkers.get(i)))
			{
				String out = "Deze werknemer is al ingeschreven, probeer iemand anders";
				return out;
			}
			else
			{
				werker = JOptionPane.showInputDialog(null, "Geef de naam in van de nieuwe werknemer die moet worden opgenomen in de database");

				StringTokenizer yetagain = new StringTokenizer (werkid1, "-");
				aofv = yetagain.nextToken();
				werkid = yetagain.nextToken();
				werkers.add(new Werknemers(werker, aofv, werkid));
			}

		}//end of for

		return "";
	}

}

Werknemer.java

Code:
import javax.swing.*;
import java.util.*;

public class Werknemers
{
	private String Naam = "";
	private String Lidnr= "";
	private ArrayList <Taken> taak;
	private String aofv = "";
	private int uren = 0;
	private double loon;
	
	public Werknemers(String werker, String aofv, String werkid)
	{
		this.Naam = werker;
		this.Lidnr = werkid;
		this.aofv = aofv;
		taak = new ArrayList <Taken>();
	}
	
	public void voegJobToe()
	{
		Naam = JOptionPane.showInputDialog(null, "Geef de naam van de agent waarbij de opdracht zal worden toegevoegd.");
		
		String job = "";
		
		job = JOptionPane.showInputDialog(null, "Dag- of Nachtopdracht? Geef aan met 'd' voor dag of 'n' voor nacht.");
		if(job.charAt(0) == 'd')
		{
			taak.add(new Dagtaak (uren, loon));
		}
		else
		{
		if(job.charAt(0) == 'n')
		{
			taak.add(new Nachttaak (uren, loon));
		}	
		}//end of else
		
	}//end of method
	
	public String printOverzicht()
	{
		for(Taken b : taak)
		{
			System.out.println( b );
		}
		
		// string teruggeven
		return "";
	}
}//end of file

Taken.java

Code:
import javax.swing.*;
import java.util.*;

public class Taken
{
	protected int uren;
	protected double loon;
	protected double werk;
	
	public Taken(int uren, double loon)
	{
		this.uren=uren;
		this.loon=loon;
	}
	
	public void loonBerekening(double loon)
	{
		
		uren = Integer.parseInt(JOptionPane.showInputDialog(null, "Hoeveel uren zal deze persoon werken?"));
		werk = Double.parseDouble(JOptionPane.showInputDialog(null, "Hoeveel is het loon?"));
		
		loon = uren * werk;
	}
		
    public double getLoon()
    {
    	return loon;
    }
    
    public int getUren()
    {
    	return uren;
    }
    
    public String toString()
    {
    	String output = "";
    	
    	output+= "De persoon heeft " +getUren() + "gewerkt.";
    	output+= "Het loon bedroeg " +getLoon();
    	
    	return output;
    }//end of methode
	}//eof

Nachttaak.java

Code:
public class Nachttaak extends Taken
{
	private int uren;
	private double loon;
	
	public Nachttaak(int uren, double loon)
	{
		super(uren, loon);
	}
	
	public void premieBerekening()
	{
		loon = uren * super.werk * 2;
	}
	
	public String toString()
	{
		String outpuut = "";
		outpuut+= "Er werd(en) " +super.getUren()+ " gewerkt tijdens deze nachttaak.";
		
		return outpuut;
	}
	
}

Dagtaak.java

Code:
public class Dagtaak extends Taken
{
	private int uren;
	private double loon;
	
	public Dagtaak(int uren, double loon)
	{
		super(uren, loon);
	}
	
	public String toString()
	{
		String outpud = "";
		outpud+= "Er werd(en) " +super.getUren()+ "gewerkt tijdens deze dagtaak.";
		return outpud;
	}
}
 
Wat doet hij precies niet wat hij wel zou moeten doen?

Want het is voor ons nu glazen bol kijken :)
 
Het is een simulatie van een bedrijf (geen GUI)
Het kan werknemers inschrijven en er jobs aan toekennen.
als er een job wordt toegekend wordt deze persoon opgezocht door zijn uniek werkersid en dan zal er de job aan toegekend worden.
Bij verwijderen van werknemers en toevoegen wordt er altijd eerst gecheckt of er al iemand met hetzelfde id in het systeem zit.
de taken zijn onderverdeeld in Dagtaak en Nachttaak (polymorfie van taken)
ook moet het mogelijk zijn om een werknemer te verwijderen
en alles te laten tonen op het scherm
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan