Frisdrankautomaat

Status
Niet open voor verdere reacties.

Zarish

Gebruiker
Lid geworden
25 feb 2013
Berichten
8
Hoi allemaal,

Ik ben een havo 5 leerling uit Gelderland en ik moet een opdracht maken voor school. Het gaat namelijk om een Frisdrankautomaat. Ik heb nu al een code, maar die geld maar voor 1 drankje. (bv alleen cola)
Ik moet 3 verschillende soorten drankjes doen. Kan iemand mij op weg helpen hoe ik die onderscheid moet maken?

Code:
Dim blik_voorraad As Integer
Dim blik_gekocht As Integer
Dim prijs_start As Double
Dim prijs_fin As Double
Dim invoer_hoeveelheid As Double
Dim invoer_weergave As String

Private Sub AcceptKnop_Click()
    check_bedrag
End Sub
'Deze subroutine maakt de textboxenleeg en zet de waarde van de invoer op 0 en laat de blikvoorraad zien.
Private Sub Clear()
    invoer.Caption = ""
    invoer_hoeveelheid = 0
    label_voorraad.Caption = blik_voorraad
    invoer_weergave = ""
End Sub

Private Sub AfzegKnop_Click()
    Clear
End Sub
Private Sub knop_nummer_0_Click()
    invoer_weergave = "0"
    verander_invoer
End Sub

Private Sub knop_nummer_1_Click()
    invoer_weergave = "1"
    verander_invoer
End Sub
Private Sub knop_nummer_2_Click()
    invoer_weergave = "2"
    verander_invoer
End Sub
Private Sub knop_nummer_3_Click()
    invoer_weergave = "3"
    verander_invoer
End Sub
Private Sub knop_nummer_4_Click()
    invoer_weergave = "4"
    verander_invoer
End Sub
Private Sub knop_nummer_5_Click()
    invoer_weergave = "5"
    verander_invoer
End Sub
Private Sub knop_nummer_6_Click()
    invoer_weergave = "6"
    verander_invoer
End Sub
Private Sub knop_nummer_7_Click()
    invoer_weergave = "7"
    verander_invoer
End Sub
Private Sub knop_nummer_8_Click()
    invoer_weergave = "8"
    verander_invoer
End Sub
Private Sub knop_nummer_9_Click()
    invoer_weergave = "9"
    verander_invoer
End Sub

Private Sub UserForm_activate()
    blik_voorraad = 200
    label_totaalprijs = 0
    label_voorraad.Caption = blik_voorraad
End Sub
'Deze subroutine maakt van het invoer_hoeveelheid vakje een getal dat gebruikt kan worden om te rekenen.
Private Sub verander_invoer()
    invoer.Caption = invoer.Caption + invoer_weergave
    invoer_weergave = ""
    invoer_hoeveelheid = Val(invoer.Caption)
End Sub
Private Sub check_bedrag()
    If (invoer_hoeveelheid = 0) Then
        Clear
        Exit Sub
    End If
    If (invoer_hoeveelheid > blik_voorraad) Then
        'Als de ingevoerde hoeveelheid groter is dan het aantal blikjes in voorraad dan geeft het programma een foutmelding.
        M = MsgBox("Kan niet" + Str(invoer_hoeveelheid) + " blikjes kopen want er zijn er maar" + Str(blik_voorraad) + " in de voorraad. Wilt u opnieuw beginnen en de voorraad aanvullen tot 200?", vbYesNo)
        'Als er ja wordt geantwoord dan zal het programma de blikvoorraad weer aanvullen tot 200 en de totaalprijs resetten.
        If (M = vbYes) Then
            label_totaalprijs = 0
            blik_voorraad = 200
        Else
            
        End If
    Else
        'Nieuwe blikvoorraad berekenen.
        blik_voorraad = blik_voorraad - invoer_hoeveelheid
        label_voorraad.Caption = blik_voorraad
        'De prijs uitrekenen.
        prijs_start = 0.95 * invoer_hoeveelheid
        'Controleren of de ingevoerde hoeveelheid groter of gelijk is aan 3.
        If (invoer_hoeveelheid >= 3) Then
            'Als de ingevoerde hoeveelheid groter of gelijk is aan 3, dan korting toepassen.
            prijs_fin = prijs_start * 0.9
            label_totaalprijs.Caption = Str(Round(prijs_fin, 2))
        Else
            label_totaalprijs.Caption = Str(Round(prijs_start, 2))
        End If
    End If
    Clear
End Sub
 
dus ik moet ipv van blik_voorraad
dim cola_voorraad as integer
dim fanta_voorraad as integer etc?

dus ook bij de private sub userform activate, drie keer herhalen?
 
je kiest een andere route. Kan ook, dan moet je dus inderdaad de code herhalen.
 
Ik heb het nu zo..
Ik wil het eigenlijk veranderen, want nu klik op bv op de cola knop 3x en dan op fanta 3x en op sprite 3x en dan op koop.

Zou ik gebruik kunnen maken van checkboxen, dat ik ze alle drie aanvink en dan bv in een invoerveld vermeld hoeveel ik er van elk wil.. ??




Code:
Dim tellercola As Integer
Dim tellerfanta As Integer
Dim tellersprite As Integer
Dim aantal As Integer
Dim prijs As Double
Dim aantalblikjes As Integer
Dim aantalcola As Integer
Dim aantalfanta As Integer
Dim aantalsprite As Integer
Private Sub ColaKnop_Click()

tellercola = tellercola + 1

End Sub
Private Sub FantaKnop_Click()

tellerfanta = tellerfanta + 1

End Sub
Private Sub Koopknop_Click()

'kijken of er wel iets ingevoerd is

aantal = tellercola + tellerfanta + tellersprite
If aantal = 0 Then
    MsgBox ("Maak een keuze")

tellabelcola.Caption = ""
tellabelfanta.Caption = ""
tellabelsprite.Caption = ""

Else
 'prijs berekenen
  prijs = 0
  prijs = aantal * 0.95

'korting berekenen
If aantal > 2 Then
    prijs = prijs * 0.9

End If

   
End If
'Kijken naar de voorraad en of deze genoeg is voor de bestelling
If tellercola > aantalcola Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If
   
    
    
If tellerfanta > aantalfanta Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If

If tellersprite > aantalsprite Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If
   

Prijsuitvoerlbl.Caption = FormatCurrency(prijs)

tellabelcola.Caption = Str(tellercola)
tellabelfanta.Caption = Str(tellerfanta)
tellabelsprite.Caption = Str(tellersprite)

aantalcola = aantalcola - tellercola
aantalfanta = aantalfanta - tellerfanta
aantalsprite = aantalsprite - tellersprite

uitvoerlblaantalcola.Caption = Str(aantalcola)
uitvoerlblaantalfanta.Caption = Str(aantalfanta)
uitvoerlblaantalsprite.Caption = Str(aantalsprite)

tellercola = 0
tellerfanta = 0
tellersprite = 0

aantalblikjes = aantalblikjes - aantal
uitvoerlblaantalblikjes.Caption = Str(aantalblikjes)

End Sub

Private Sub OpnieuwKnop_Click()
'vakjes worden leeggemaakt als er een nieuwe klant komt
Prijsuitvoerlbl.Caption = ""
tellabelcola.Caption = ""
tellabelfanta.Caption = ""
tellabelsprite.Caption = ""
uitvoerlblaantalblikjes.Caption = ""
uitvoerlblaantalcola.Caption = ""
uitvoerlblaantalfanta.Caption = ""
uitvoerlblaantalsprite.Caption = ""

End Sub

Private Sub SpriteKnop_Click()

tellersprite = tellersprite + 1

End Sub

Private Sub UserForm_Activate()

tellercola = 0
tellerfanta = 0
tellersprite = 0

aantalblikjes = 300
aantalcola = 100
aantalfanta = 100
aantalsprite = 100


End Sub
 
Laatst bewerkt:
Natuurlijk kan dat. Dat is het leuke van programmeren. Jij bepaalt wat de software doet.
 
Ik heb het nu zo. Hij doet het helemaal niet, maar ik heb ook geen flauw idee wat ik hieraan moet aanpassen. Weet jij hoe ik verder moet? Ik heb gekozen om alleen met invoervelden te werken, niet met checkboxen, dat werd te moeilijk ;')
Code:
Dim tellercola As Integer
Dim tellerfanta As Integer
Dim tellericetea As Integer
Dim aantal As Integer
Dim prijs As Double
Dim aantalblikjes As Integer
Dim aantalcola As Integer
Dim aantalfanta As Integer
Dim aantalicetea As Integer

Private Sub Koopknop_Click()

FantaVeld.Text = Val ("tellerfanta")
ColaVeld.Text = Val ("tellercola")
IceTeaVeld.Text = Val ("tellericetea")

'kijken of er wel iets ingevoerd is

aantal = colaVeld + fantaVeld+ iceteaVeld
If aantal = 0 Then
    MsgBox ("Maak een keuze")

colaVeld.Caption = ""
iceteaveld.Caption = ""
fantaVeld.Caption = ""

Else
 'prijs berekenen
  prijs = 0
  prijs = aantal * 0.95

'korting berekenen
If aantal > 2 Then
    prijs = prijs * 0.9

End If

   
End If
'Kijken naar de voorraad en of deze genoeg is voor de bestelling
If ColaVeld > aantalcola Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If
   
    
    
If ColaVeld > aantalfanta Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If

If IceTeaVeld > aantalicetea Then
    M = MsgBox("Wilt u het programma opnieuw beginnen?", vbYesNo, "programma opnieuw beginnen")
        If M = vbYes Then
            aantalblikjes = 300
            aantalcola = 100
            aantalfanta = 100
            aantalsprite = 100
        Else
            Exit Sub
End If
End If
   

Prijsuitvoerlbl.Caption = FormatCurrency(prijs)

ColaVeld.Caption = Str(tellercola)
FantaVeld.Caption = Str(tellerfanta)
IceTeaVeld.Caption = Str(tellericetea)

aantalcola = aantalcola - tellercola
aantalfanta = aantalfanta - tellerfanta
aantalsprite = aantalicetea - tellericetea

uitvoerlblaantalcola.Caption = Str(aantalcola)
uitvoerlblaantalfanta.Caption = Str(aantalfanta)
uitvoerlblaantalsprite.Caption = Str(aantalsprite)

tellercola = 0
tellerfanta = 0
tellersprite = 0

aantalblikjes = aantalblikjes - aantal
uitvoerlblaantalblikjes.Caption = Str(aantalblikjes)

End Sub

Private Sub OpnieuwKnop_Click()
'vakjes worden leeggemaakt als er een nieuwe klant komt
UitkomstLbl.Caption = ""
ColaVeld.Caption = ""
FantaVeld.Caption = ""
IceTeaVeld.Caption = ""


End Sub


End Sub

Private Sub UserForm_Activate()

tellercola = 0
tellerfanta = 0
tellersprite = 0

aantalblikjes = 300
aantalcola = 100
aantalfanta = 100
aantalsprite = 100


End Sub
 
Plaats je bestand eens op het forum zodat we iets hebben om mee te werken.
 
arghh, krijg het bestand niet geplaats, omdat ik geen visual basic bestand kan vinden. Als ik het bestand als word document opsla, krijg je niet de code en userform mee..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan