Simulatieprogramma ontwikkelen. Adviezen?

Status
Niet open voor verdere reacties.

julianmurillo

Gebruiker
Lid geworden
15 jan 2018
Berichten
41
Ik ben momenteel voor mijn opleiding (HBO Softwareontwikkelaar) bezig met Java.

Nu gaat het vloot met code lezen, maar nu moet ik een simulatieprogramma ontwikkelen.

Graag ontvang ik wat adviezen waar ik iets mee kan.

Kan iemand mij opweg helpen? Dank voor de waardevolle hulp:


Bij de simulatieprogramma wordt er 50x automatisch een stem invult.

Tevens zijn er classes om het stemmen en om de resultaten daarvan weer te geven.

Er wordt gebruik gemaakt van de volgende gegevens.

Er is een kieslijst met partijen.
Een partij heeft een naam en staat in volgorde (heeft dus een nummer) op een kieslijst.
Een partij heeft kandidaten.
De kandidaten hebben een naam en staan in volgorde op de partij(lijst).

Er is een class Stemming deze heeft minimaal de volgende gegevens:

een tweedimensionaal array
de kieslijst.

De class Stemming heeft minimaal de volgende methodes:

RandomStemming() daar wordt precies 50 keer een stemming uit gebracht, door random een partij te kiezen en random uit die partij een kandidaat te kiezen.
ShowStemming geeft de lijst weer in de output (mag met System.out.println)
run: Zeven rijen zijn weergegeven De eerste kolom bevat het volgorde nummer.

0 1 1 In de tweede kolom staat de partij (3 partijen).

1 2 4 In de derde kolom staat de kandidaat uit die partij.

2 3 2

3 2 3

4 3 3

5 3 5

6 2 4

voegStemmenToe: in deze methode wordt de stem van de kandidaat in de bewuste partij met één verhoogd.
De kieslijst heeft een methode om de lijst van partijen en kandidaten terug te geven.

In de testclass wordt deze lijst naar de output geschreven.

Resulataten van de stemming:

Pvda
Jan 2
Piet 1
Klaas 1
Marie 2
Gerry 1

totaal aantal stemmen = 7

CDA
Lies 3
Marieke 6
Joop 7
Hannie 9

totaal aantal stemmen = 25

VVD
Lubbers 2
Kok 2
Hans 2
Paula 3
Sientje 4
Martie 5

totaal aantal stemmen = 18

BUILD SUCCESSFUL (total time: 0 seconds)

===========

WIP tot nu toe:


abstract public class Kandidaat {

protected String naam;
protected String partij;

public Kandidaat(String naam, String adres) { // adres = partij
this.naam = naam;
this.partij = partij;
}

public void setNaam(String naam) {
this.naam = naam;
}

public String getNaam() {
return this.naam;
}

public void setPartij(String partij) {
this.partij = partij;
}

public String getPartij() {
return this.partij;
}
}

===================

import java.util.ArrayList;

public class Lijst {

private static final int aantalKandidaten = 15;

public static ArrayList<Kandidaat> kandidaten = new ArrayList<Kandidaat>();

public static int getAantalKandidaten() {
return kandidaten.size();
}

public Lijst() {
kandidaten.add(new Kandidaat ("Jan", "Pvda"));
kandidaten.add(new Kandidaat ("Piet", "Pvda"));
kandidaten.add(new Kandidaat ("Klaas", "Pvda"));
kandidaten.add(new Kandidaat ("Marie", "Pvda"));
kandidaten.add(new Kandidaat ("Gerry", "Pvda"));
kandidaten.add(new Kandidaat ("Lies", "CDA"));
kandidaten.add(new Kandidaat ("Marieke", "CDA"));
kandidaten.add(new Kandidaat ("Joop", "CDA"));
kandidaten.add(new Kandidaat ("Hannie", "CDA"));
kandidaten.add(new Kandidaat ("Lubbers", "VVD"));
kandidaten.add(new Kandidaat ("Kok", "VVD"));
kandidaten.add(new Kandidaat ("Hans", "VVD"));
kandidaten.add(new Kandidaat ("Paula", "VVD"));
kandidaten.add(new Kandidaat ("Sientje", "VVD"));
kandidaten.add(new Kandidaat ("Martie", "VVD"));
}

public static void main(String[] args) {
new Lijst();
}

}
 
Laatst bewerkt:
de volgende keer gelieve eens te kijken naar het icoontje van code plaatsen zo kan je code beter zien

verder kan je ook eens naar collecties kijken zie
http://balusc.blogspot.com/2007/01/generics.html
opmerking zie onderaan
Code:
package helpmij.stemmen;
import java.util.ArrayList;
public class Start {
    public static ArrayList<Lijst> lijsten;
    public Start() {        
        lijsten =new ArrayList<Lijst>();
    }
    public static void main(String[] args) {
stelLijstOp();
    }
    private void stelLijstOp(){
        Lijst pvda = new Lijst("Pvda");
        pvda.add(new Kandidaat ("Jan", "Pvda"));
        pvda.add(new Kandidaat ("Piet", "Pvda"));
        pvda.add(new Kandidaat ("Klaas", "Pvda"));
        pvda.add(new Kandidaat ("Marie", "Pvda"));
        pvda.add(new Kandidaat ("Gerry", "Pvda"));
        lijsten.add(pvda);
        Lijst cda = new Lijst("Pvda");
        cda.add(new Kandidaat ("Lies", "CDA"));
        cda.add(new Kandidaat ("Marieke", "CDA"));
        kandidaten.add(new Kandidaat ("Joop", "CDA"));
        kandidaten.add(new Kandidaat ("Hannie", "CDA"));
        kandidaten.add(new Kandidaat ("Lubbers", "VVD"));
        kandidaten.add(new Kandidaat ("Kok", "VVD"));
        kandidaten.add(new Kandidaat ("Hans", "VVD"));
        kandidaten.add(new Kandidaat ("Paula", "VVD"));
        kandidaten.add(new Kandidaat ("Sientje", "VVD"));
        kandidaten.add(new Kandidaat ("Martie", "VVD"));
    }
}

-----

package helpmij.stemmen;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
public class Lijst{
    private static final int aantalKandidaten = 15;
    public static ArrayList<Kandidaat> kandidaten;
    private final String partijnaam;
    private int stemmen;
    public Lijst(String partijnaam) {
        this.partijnaam = partijnaam;
        kandidaten =new ArrayList<Kandidaat>(aantalKandidaten);
    }
    /*public static int getAantalKandidaten() {
        return kandidaten.size();
    }*/
    public boolean add(int positie,Kandidaat kandidaat ){
        //toevoegen
        return false;
    }
    public void stem(){
    
    }
    public void stem(List voorkeurkandidaten){  
    }
    @Override
    public String toString() {
        return partijnaam+": kandidaten " +kandidaten.size();
    }
}

-----

package helpmij.stemmen;
abstract public class Kandidaat{
    protected String naam;
    private int voorkeurstemen;
    public Kandidaat(String naam) {
        this.naam = naam;
    }
    public void setNaam(String naam) {
        this.naam = naam;
    }
    public String getNaam() {
        return this.naam;
    }
}
in je constructor van kandidaat stond partij maar die lijkt meer voor een lijst te zijn . ps in je constructor stond nog adres mogelijk copyfout

nu zal je de lijsten arraylist best veranderen zodat je ook een index kunt geven zodat je een lijstnr kan hebben en zo de positie op je stemformulier kan bepalen.

nu kan je dan ook voor de lijst een index geven zodat je kan bepalen waar de personen staan.

en als je dan nog tijd overhebt kan je zo ook in de grafische interface gaan schuiven met de items

ik zou voorstellen met volgende te werken dan kan je nog alle kanten uit
public ObservableList lijst = FXCollections.observableArrayList();
 
Hallo,

Tot nu toe staat het zo op:


=================

Code:
public class Kandidaat {

protected String naam;
protected String partij;

public Kandidaat(String naam, String partij) { 
this.naam = naam;
this.partij = partij;
}

public void setNaam(String naam) {
this.naam = naam;
}

public String getNaam() {
return this.naam;
}

public void setPartij(String partij) {
this.partij = partij;
}

public String getPartij() {
return this.partij;
}
    
}
=================

Code:
package inzend2;
import java.util.ArrayList;

public class Start {
    public static ArrayList<Lijst> lijsten;
    public Start() {        
        lijsten =new ArrayList<Lijst>();
    }
    private void stelLijstOp(){
        Lijst pvda = new Lijst("Pvda");
        pvda.add(new Kandidaat ("Jan", "Pvda"));
        pvda.add(new Kandidaat ("Piet", "Pvda"));
        pvda.add(new Kandidaat ("Klaas", "Pvda"));
        pvda.add(new Kandidaat ("Marie", "Pvda"));
        pvda.add(new Kandidaat ("Gerry", "Pvda"));
        lijsten.add(pvda);
        Lijst cda = new Lijst("CDA");
        cda.add(new Kandidaat ("Lies", "CDA"));
        cda.add(new Kandidaat ("Marieke", "CDA"));
        cda.add(new Kandidaat ("Joop", "CDA"));
        cda.add(new Kandidaat ("Hannie", "CDA"));
        lijsten.add(cda);
        Lijst vvd = new Lijst("VVD");
        vvd.add(new Kandidaat ("Lubbers", "VVD"));
        vvd.add(new Kandidaat ("Kok", "VVD"));
        vvd.add(new Kandidaat ("Hans", "VVD"));
        vvd.add(new Kandidaat ("Paula", "VVD"));
        vvd.add(new Kandidaat ("Sientje", "VVD"));
        vvd.add(new Kandidaat ("Martie", "VVD"));
        lijsten.add(vvd);
    }
    public void main(String[] args) {
        stelLijstOp();
    }
}

===================

Code:
package inzend2;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;

public class Lijst {
    private static final int aantalKandidaten = 15;
    public static ArrayList<Kandidaat> kandidaten;
    private final String partijnaam;
    private int stemmen;
    public Lijst(String partijnaam) {
        this.partijnaam = partijnaam;
        kandidaten =new ArrayList<Kandidaat>(aantalKandidaten);
    }
    /*public static int getAantalKandidaten() {
        return kandidaten.size();
    }*/
    public boolean add(int positie,Kandidaat kandidaat ){
        //toevoegen
        return false;
    }
    public void stem(){
    
    }
    public void stem(List voorkeurkandidaten){  
    }
    @Override
    public String toString() {
        return partijnaam+": kandidaten " +kandidaten.size();
    }

    void add(Kandidaat kandidaat) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}

=====================


Wat is dan de beste manier om dat 'index' te injecteren die de stemmingen willekeurig zou genereren en printen in een tabelletje?
 
Laatst bewerkt:
@julianmurillo
Neem deze tips eens eerst ter harte...om het beter leesbaar te maken...
Extra tip: Er zit een kopje "wijzigen" bij de vorige posting...

de volgende keer gelieve eens te kijken naar het icoontje van code plaatsen zo kan je code beter zien
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan