Hallo allemaal,
Op school moet ik een PO maken met BlueJ.
Alleen kom ik er niet mee verder.. Dus ik vroeg me af of jullie me misschien kunnen helpen.
Voor die PO moet ik een snoepautomaat maken in BlueJ.
Met twee klassen: een klasse Snoepautomaat, en een klasse Snoep.
De snoepautomaat kan een lijst geven van alle soorten snoep waaruit je kan kiezen.
In die lijst staan de code van het snoep, de naam, de prijs en de voorraad.
Daarbij moet ik een methode koop maken en die geeft de prijs van het product dat je wilt kopen.
Alleen dan komt voor mij het lastigste (en dat is meteen ook het laatste wat ik nog moet doen):
Ik moet nu een methode betaal maken, dat aan al deze eisen moet voldoen:
- de automaat controleert het bedrag dat wordt ingevoerd: negatieve bedragen wordren geweigerd en leiden tot een melding op het scherm;
- de automaat controleert of de klant voldoende geld heeft ingeworpen. Na de inworp geeft de automaat een melding van het resterende bedrag dat nog betaald moet worden.
- het gevraagde snoep wordt alleen weergegeven (dmv een melding op het scherm), als er genoeg geld betaald is;
- een klant krijgt het geld dat hij teveel heeft betaald, terug.
- de automaat houdt bij hoeveel snoep er verkocht is zodat je aan het eind van de dag per soort kunt laten zien hoeveel er is verkocht en wat het totaalbedrag is, dat is betaald.
Ik heb al heel veel geprobeerd alleen kom ik er maar niet uit hoe het moet, ook omdat we op school erg weinig uitleg hebben gehad.
Zou iemand me kunnen helpen?
Hier zijn de codes van de 2 klassen:
Klasse Snoepautomaat:
Code: Selecteer alles
import java.util.*;
public class Snoepautomaat {
private ArrayList<Snoep> lijst;
//hier definieer je de overige attributen
// Constructor
public Snoepautomaat() {
lijst = new ArrayList<Snoep>();
lijst.add( new Snoep( 11, "Mars", 1.50, 10 ) );
lijst.add( new Snoep( 12, "Twix", 1.50, 10 ) );
lijst.add( new Snoep( 13, "Snickers", 1.50, 10 ) );
lijst.add( new Snoep( 14, "Zoute Drop", 1.40, 10 ) );
lijst.add( new Snoep( 15, "Zoete Drop", 1.40, 10 ) );
}
public void voegtoe ( Snoep snoep ) {
lijst.add( snoep );
}
public void print() {
System.out.println( "Snoeplijst: (betekenis kolommen: code, naam, prijs en voorraad" );
for( Snoep snoep : lijst ) {
System.out.println( snoep );
}
}
public Snoep koop( int code ) {
Snoep gezochteSnoep = null;
for( Snoep snoep : lijst ) {
if( snoep.getCode() == code )
gezochteSnoep = snoep;
}
return gezochteSnoep;
}
public void betaal(double bedrag) {
// hier ontvangt de automaat het geld van de klant
}
}
Code: Selecteer alles
public class Snoep
{
private int code;
private String naam;
private double prijs;
private int voorraad;
public Snoep( int code, String naam, double prijs, int voorraad ) {
this.code = code;
this.naam = naam;
this.prijs = prijs;
this.voorraad = voorraad;
}
public int getCode() {
return code;
}
public double getPrijs() {
return prijs;
}
public String getNaam() {
return naam;
}
public int getVoorraad() {
return voorraad;
}
public String toString() {
return String.format( "%4d", code ) + ": " +
String.format( "%-40s", naam ) +
"€ " +
String.format( "%6.2f", prijs ) +
String.format( "%4d", voorraad );
}
}
Heeft er iemand een oplossing voor mijn probleem??
Alvast bedankt!