Pagina 1 van 1

Java programma hulp

Geplaatst: 05 jan 2009, 16:43
door tammzak

Code: Selecteer alles

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

public class Rooster {
	
	static String namen[];
	static String rooster[][];
		
	public static void main(String args[]) {
		JTextArea outputArea = new JTextArea();
		
		grootte();
		
		outputArea.setText("Rooster:\n\n");
		outputArea.append(output(rooster));
		JOptionPane.showMessageDialog(null,outputArea);
		
	}
	
	public static void grootte() {
		int aantNamen, rij, kolom;
	
		aantNamen = Integer.parseInt(JOptionPane.showInputDialog("Geef het aantal namen in: "));
		rij = Integer.parseInt(JOptionPane.showInputDialog("Geef aantal rijen in voor de rooster: "));		
		kolom = Integer.parseInt(JOptionPane.showInputDialog("Geef aantal kolommen in voor de rooster: "));
	
		namen = new String [aantNamen];
		rooster = new String [rij][kolom];
		invoerNamen();
	}
	
	public static void invoerNamen() {
		for(int i = 0; i < namen.length; i++) {
				namen[i] = JOptionPane.showInputDialog("Geef naam " + (i+1) + " in: ");
			}
		invoerRooster();
	}
	
	public static void invoerRooster() {
		for(int i = 0; i < rooster.length; i++) {
			for(int j = 0; j < rooster[i].length; j++) {
				
			Random getal1 = new Random(); 
				
			rooster[i][j] = namen[0 + getal1.nextInt(namen.length)] +  " en " + namen[0 + getal1.nextInt(namen.length)];
								
			}			
		}
	}
	
	public static String output(String array[][]) {
		String output = "";
		
		for(int i = 0; i < rooster.length; i++) {
			for(int j = 0; j < rooster[i].length; j++) {
				output = output + String.format("%s\t\t", array[i][j]);
			}
			output = output + "\n";
		}
		return output;
	}
	
}
	
Met dit porgramma wil ik dat de user eerst het aantal namen kan ingeven en dan het aantal rijen en kolommen in het rooster en daarna de namen zelf.
Het programma moet met die gegevens een rooster maken (array) waarin per cel telkens twee namen moeten verschijnen. Dit werkt maar de bedoeling is eigenlijk dat er geen twee dezelfde namen bij elkaar mogen staan in de hele array en dat dezelfde naam ook geen twee keer mag verschijnen in een rij.

Ik heb al wat geprobeerd maar ik geraak er niet aan uit.

Alvast bedankt voor de (hopelijk) komende hulp.

Re: Java programma hulp

Geplaatst: 06 jan 2009, 10:45
door ubremoved_539
tammzak schreef:Dit werkt maar de bedoeling is eigenlijk dat er geen twee dezelfde namen bij elkaar mogen staan in de hele array en dat dezelfde naam ook geen twee keer mag verschijnen in een rij.
Tja, dan ga je aan je invoerRooster method de nodige testen moeten toevoegen.

Om twee dezelfde namen te vermijden in een rij zou ik eerst een duplicaat maken van de namen array, en hieruit schrappen als je er één opneemt in een rij. Als je het anders puur op basis van random en controle gaat doen, kan je eindeloos blijven zoeken achter aan naam.

Hetzelfde concept kan je gebruiken voor tweemaal dezelfde namen... eerst alle combinaties in een array listen, en daaruit schrappen.