
-----------------------------------
IsStickel
Mon Apr 30, 2012 2:24 pm

Turing Menu
-----------------------------------
Hi, I am trying to make a code using arrays that will allow a user to choose multiple items from a menu and then get a receipt displaying what they ordered, the quantity of each item they ordered, the price of each item they ordered, 13% tax, the subtotal before tax, then the total, and a 10% commission if the subtotal is over $10. I really need help and FAST! I have most of the program done but it crashes when you get to the receipt. Any ideas?


%declare variables
var fontID : int
var winID1 : int
var winID2 : int
var winID3 : int
var picID : int
var picID2 : int
var picID3 : int
var picID4 : int
var picID5 : int
var picID6 : int
var picID7 : int
var picID8 : int
var picID9 : int
var picID10 : int
var picID11 : int
var picID12 : int
var picID13 : int
var picID14 : int
var picID15 : int
var picID16 : int
var picID17 : int
var picID18 : int
var leave := false
var Item : array 1 .. 10 of string (30)
var Quantity : array 1 .. 10 of int
var Price : array 1 .. 10 of real
var Price_New : array 1 .. 10 of real
var Item_Total : array 1 .. 10 of real
var Price_String : array 1 .. 10 of string (20)
var Quantity_String : array 1 .. 10 of string (20)
var ItemTotal_String : array 1 .. 10 of string (20)
var Selection : string
var Sub_Total : real := 0
var Total : real
var hst : real
var Gratuity : real
var x : int := 0

% open window 1
winID1 := Window.Open ("position:top;center,graphics:641;380")

% delcare picture files
picID := Pic.FileNew ("Intro.jpg")
picID2 := Pic.FileNew ("Intro2.jpg")
picID3 := Pic.FileNew ("Menu Item 1.jpg")
picID4 := Pic.FileNew ("Menu Item 2.jpg")
picID5 := Pic.FileNew ("Menu Item 3.jpg")
picID6 := Pic.FileNew ("Menu Item 4.jpg")
picID7 := Pic.FileNew ("Menu Item 5.jpg")
picID8 := Pic.FileNew ("Menu Item 6.jpg")
picID9 := Pic.FileNew ("Bacon.jpg")
picID10 := Pic.FileNew ("Homefries.jpg")
picID11 := Pic.FileNew ("Benedict Eggs.jpg")
picID12 := Pic.FileNew ("Orange Juice.jpg")
picID13 := Pic.FileNew ("Lemonade.jpg")
picID14 := Pic.FileNew ("Chocolate Milk.gif")
picID15 := Pic.FileNew ("Milk.jpg")
picID16 := Pic.FileNew ("Hot Chocolate.bmp")
picID17 := Pic.FileNew ("Coffee.jpg")
picID18 := Pic.FileNew ("Background2.gif")

setscreen ("graphics")

% splashscreen using pictures
%Pic.DrawSpecial (picID, -2, -67, picCopy, picFadeIn, 1000)
%delay (1000)
%Pic.Draw (picID2, -2, -67, picCopy)
%delay (1000)
%Pic.Draw (picID, -2, -67, picCopy)
%delay (1000)
%Pic.Draw (picID2, -2, -67, picCopy)
%delay (1000)
%Pic.Draw (picID, -2, -67, picCopy)
%delay (1000)
%Pic.Draw (picID2, -2, -67, picCopy)
%delay (1000)

% close window 1
Window.Close (winID1)

% open window 2
winID2 := Window.Open ("position:top;center,graphics:641;680")

loop
    x := x + 1
    loop
        cls
        Pic.Draw (picID18, -20, 100, picUnderMerge)

        fontID := Font.New ("Broadway:20")
        Font.Draw ("Meals", 270, 630, fontID, black)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("1. Farmer's Breakfast - ", 23, 600, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("  Price: $8.99", 160, 600, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Two eggs, three bacon strips and a pork sausage, served with toast and jam.  ", 25, 580, fontID, darkgrey)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("2. Sam-I-Am Breakfast -", 23, 555, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("     Price: $5.99", 166, 555, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Two eggs and three slices of ham, served with toast and jam.  ", 25, 535, fontID, darkgrey)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("3. Lumberjack Breakfast -", 23, 510, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("       Price: $10.99", 167, 510, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Three pancakes, sausage, bacon, and hash brown. Topped with maple syrup and", 25, 490, fontID, darkgrey)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("French Toast on the side. ", 25, 473, fontID, darkgrey)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("4. Egg-tastic Breakfast -", 23, 450, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("    Price: $8.99", 167, 450, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Three eggs, a hearty serving of bacon, and hash brown on the side.", 25, 430, fontID, darkgrey)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("5. Early Bird Breakfast -", 23, 405, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("   Price: $9.99", 167, 405, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Two eggs, crispy bacon strips, sausage, and a hash brown, served with toast and", 25, 385, fontID, darkgrey)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("jam.", 25, 370, fontID, darkgrey)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("6. French Toast Breakfast -", 23, 346, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("    Price: $6.99", 185, 346, fontID, red)
        fontID := Font.New ("Georgina:10")
        Font.Draw ("Three slices of French Toast, served with maple syrup and egg.", 25, 326, fontID, darkgrey)



        fontID := Font.New ("Broadway:20")
        Font.Draw ("     Sides                                        Drinks", 80, 250, fontID, black)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("7. Bacon or sausage (3 pcs.) -                                                                        10. Orange Juice - ", 23, 220, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("       Price: $2.49                                                                                     Price: $1.49", 185, 220, fontID, red)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("8. Homefries -                                                                                                      11. Lemonade - ", 23, 200, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("     Price: $2.49                                                                                                              Price: $1.49", 100, 200, fontID, red)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("9. Two Benedict Eggs -                                                                                   12. Chocolate Milk - ", 23, 180, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("                        Price: $3.49                                                                                                     Price: $1.69", 100, 180, fontID, red)


        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("13. Milk -", 420, 160, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("     Price: $1.69", 470, 160, fontID, red)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("14. Hot Chocolate -", 420, 140, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("      Price: $1.69", 530, 140, fontID, red)

        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("15. Coffee -", 420, 120, fontID, black)
        fontID := Font.New ("Adobe Caslon Pro Bold:11")
        Font.Draw ("   Price: $1.29", 490, 120, fontID, red)

        fontID := Font.New ("Bodoni MT Black:15")
        Font.Draw ("*Enter 16 to get your bill*", 23, 130, fontID, black)
        put ""

        locatexy (0, 100)


        put ""
        put "Please enter the selection for what you'd like to order"
        put "Order Number: " ..
        get Selection
        put ""

        x := x + 1

        case Selection of

            label "1" :
                Item (x) := "Farmer's Breakfast"
                Price (x) := 8.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID3, 0, 0, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "2" :
                Item (x) := "Sam-I-Am Breakfast"
                Price (x) := 5.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID7, 55, -10, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "3" :
                Item (x) := "Lumberjack Breakfast"
                Price (x) := 10.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID5, 10, 0, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "4" :
                Item (x) := "Egg-tastic Breakfast"
                Price (x) := 8.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID3, 0, -70, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "5" :
                Item (x) := "Early Bird Breakfast"
                Price (x) := 9.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID7, 55, -50, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "6" :
                Item (x) := "French Toast Breakfast"
                Price (x) := 6.99
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID8, 70, -60, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "7" :
                Item (x) := "Bacon or sausage (3 pcs.)"
                Price (x) := 2.49
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID9, 70, -60, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "8" :
                Item (x) := "Homefries"
                Price (x) := 2.49
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID10, 70, -40, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "9" :
                Item (x) := "Two Benedict Eggs"
                Price (x) := 3.49
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID11, 90, -70, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "10" :
                Item (x) := "Orange Juice"
                Price (x) := 1.49
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID12, 95, -15, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "11" :
                Item (x) := "Lemonade"
                Price (x) := 1.49
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID13, 160, -40, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "12" :
                Item (x) := "Chocolate Milk"
                Price (x) := 1.69
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID14, 130, 30, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "13" :
                Item (x) := "Milk"
                Price (x) := 1.69
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID15, 140, 0, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "14" :
                Item (x) := "Hot Chocolate"
                Price (x) := 1.69
                Price_New (x) := Price (x)


                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID16, 110, -60, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "15" :
                Item (x) := "Coffee"
                Price (x) := 1.29
                Price_New (x) := Price (x)

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                Pic.DrawSpecial (picID17, 70, -60, picCopy, picFadeIn, 3000)
                delay (1500)
                Window.Close (winID3)
                exit
            label "16" :
                cls
                leave := true
                x := x - 1
                exit
            label :

                winID3 := Window.Open ("position:bottom;center,graphics:641;260")
                put ""
                put ""
                put ""
                put ""
                put ""
                put "                       Please enter a valid order number."
                delay (1000)
                exit
        end case
    end loop
    exit when Selection = "16"

    loop
        put "How many of order ", Selection, " would you like to order?"
        put "Quantity: " ..
        get Quantity (x)
        exit
    end loop
end loop
cls

Item_Total (x) := 0
Sub_Total := 0

Item_Total (x) := Price (x) * Quantity (x)
Sub_Total := Sub_Total + Item_Total (x)

put "Item"
put "Price"
put "Quantity"
put "Total"

hst := Sub_Total * 0.13
Gratuity := (Sub_Total) * 0.15
Total := Sub_Total + hst + Gratuity


for z : 1 .. x
    Price_String (y) := realstr (Price (y), 10)
    Quantity_String (y) := realstr (Quantity (y), 10)
    ItemTotal_String (y) := realstr (Item_Total (y), 10)
    put Item (y)
    put Price_String (y)
    put Quantity_String (y)
    put ItemTotal_String (y)
end for

put "Subtotal", Sub_Total
put "Hst", hst
if Sub_Total >= 10 then
    put "Gratuity", Gratuity
end if
put "Total", Total
put "Enjoy your meal!"

-----------------------------------
Dreadnought
Mon Apr 30, 2012 3:22 pm

RE:Turing Menu
-----------------------------------
Where does it crash, and what message does it give you when it crashes?

-----------------------------------
IsStickel
Mon Apr 30, 2012 5:18 pm

Re: RE:Turing Menu
-----------------------------------
Where does it crash, and what message does it give you when it crashes?

It crashes right here:

Price_String (y) := realstr (Price (y), 10) 
Quantity_String (y) := realstr (Quantity (y), 10) 
ItemTotal_String (y) := realstr (Item_Total (y), 10) 

and it says variable has no value

-----------------------------------
Tony
Mon Apr 30, 2012 5:21 pm

RE:Turing Menu
-----------------------------------
when that line gets executed, what is the value of variable y ?

-----------------------------------
IsStickel
Mon Apr 30, 2012 5:30 pm

Re: RE:Turing Menu
-----------------------------------
when that line gets executed, what is the value of variable y ?

I'm not exactly sure. I'm a beginner with turing and have had a few people help me out on this, but no one seems to know the error or how to make it run properly.

-----------------------------------
Tony
Mon Apr 30, 2012 5:55 pm

RE:Turing Menu
-----------------------------------
hint: you can simply ask for the value to be displayed
[code]
put "value of y is: ", y
Price_String (y) := realstr (Price (y), 10) 
Quantity_String (y) := realstr (Quantity (y), 10) 
ItemTotal_String (y) := realstr (Item_Total (y), 10) 
[/code]

the error message should be pretty clear -- if there is no value, the computer wouldn't know what to display or what element of the Price array to use.

What do you expect the value to be? The fix would be the changes to the code such that you can determine that the value you want is the one that gets used.

-----------------------------------
IsStickel
Mon Apr 30, 2012 6:14 pm

Re: RE:Turing Menu
-----------------------------------
hint: you can simply ask for the value to be displayed


I'll try, thanks..
