Java programma hulp

Plaats reactie
tammzak
Member
Member
Berichten: 73
Lid geworden op: 07 maa 2007, 14:18
Contacteer:

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.
Afbeelding
Afbeelding
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

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

Terug naar “Development”