PROGRAM 13
' FILENAME: PROG13.BAS
' THIS PROGRAM INPUTS TYPE OF CARPET, LENGTH OF CARPET, AND WIDTH OF
' CARPET, CALCULATES THE AMOUNT OF CARPET NEEDED AND THE COST OF THE
' CARPET, AND PRINTS THE AMOUNT AND COST TO THE SCREEN. IT ALSO ALLOWS
' THE USER TO PRINT A QUOTE SHEET.
CLS
DO
CLS
GOSUB PRINTMENU
GOSUB INPUTCHOICE
GOSUB PROCESSDATA
GOSUB PRINTQUOTESHEET
LOOP WHILE UCASE$(ANS1$) = "YES"
END
PRINTMENU:
LOCATE 1, 15
PRINT "HONEST ABE'S CARPETORIUM"
LOCATE 3, 14
PRINT "CARPET TYPES", , "COST/YARD"
LOCATE 5, 14
PRINT "1. QUALITY -", , "$12.00"
LOCATE 7, 14
PRINT "2. PREMIUM -", , "$18.00"
LOCATE 9, 14
PRINT "3. SUPERIOR -", , "$22.00"
LOCATE 11, 4
PRINT "CARPET TYPE DESIRED:"
LOCATE 13, 9
PRINT "LENGTH DESIRED:", , " WIDTH DESIRED:"
LOCATE 15, 11
PRINT "YARDS NEEDED:", , " PRICE:"
LOCATE 17, 3
PRINT "QUOTE SHEET (Y OR N):"
RETURN
INPUTCHOICE:
LOCATE 11, 25
INPUT "", TYPE$
DO
IF TYPE$ < "1" OR TYPE$ > "3" OR LEN(TYPE$) > 1 THEN
LOCATE 11, 35
PRINT "(ERROR, TYPE IN 1, 2, OR 3.)"
LOCATE 11, 25
INPUT "", TYPE$
END IF
LOOP WHILE TYPE$ < "1" OR TYPE$ > "3" OR LEN(TYPE$) > 1
LOCATE 11, 26
PRINT " "
LOCATE 13, 25
INPUT "", WDTH
LOCATE 13, 65
INPUT "", LENGTH
RETURN
PROCESSDATA:
LET YARDSNEEDED = ((LENGTH * WDTH) / 9) + 1
LET YARDSNEEDED = INT(YARDSNEEDED * 100 + .5) / 100
IF TYPE$ = "1" THEN LET PRICE = YARDSNEEDED * 12
IF TYPE$ = "2" THEN LET PRICE = YARDSNEEDED * 18
IF TYPE$ = "3" THEN LET PRICE = YARDSNEEDED * 22
LET PRICE = INT(PRICE * 100 + .5) / 100
LOCATE 15, 24
PRINT YARDSNEEDED
LOCATE 15, 64
PRINT PRICE
RETURN
PRINTQUOTESHEET:
LOCATE 17, 25
INPUT "", QUOTESHEET$
DO
IF UCASE$(QUOTESHEET$) <> "Y" AND UCASE$(QUOTESHEET$) <> "N" THEN
LOCATE 17, 35
PRINT "ERROR, TYPE IN 'Y' OR 'N'."
LOCATE 17, 25
INPUT "", QUOTESHEET$
END IF
LOOP WHILE UCASE$(QUOTESHEET$) <> "Y" AND UCASE$(QUOTESHEET$) <> "N"
LOCATE 17, 26
PRINT " "
IF TYPE$ = "1" THEN CARPET$ = "QUALITY"
IF TYPE$ = "2" THEN CARPET$ = "PREMIUM"
IF TYPE$ = "3" THEN CARPET$ = "SUPERIOR"
IF UCASE$(QUOTESHEET$) = "Y" THEN
CLS
LOCATE 1, 7
PRINT "QUOTE SHEET"
LOCATE 3, 1
PRINT "TYPE:", CARPET$
LOCATE 5, 1
PRINT USING "YARDS: ###.##"; YARDSNEEDED
LOCATE 7, 1
PRINT USING "PRICE: $$####.##"; PRICE
PRINT
LPRINT " QUOTE SHEET"
LPRINT
LPRINT "TYPE:", CARPET$
LPRINT
LPRINT USING "YARDS: ###.##"; YARDSNEEDED
LPRINT
LPRINT USING "PRICE: $$####.##"; PRICE
LPRINT CHR$(12)
LET CT = 0
DO
CT = CT + 1
LOOP UNTIL CT = 5000
CLS
INPUT "WOULD YOU LIKE TO ENTER ANOTHER CUSTOMER'S ORDER? ", ANS1$
END IF
IF UCASE$(QUOTESHEET$) = "N" THEN
CLS
INPUT "WOULD YOU LIKE TO ENTER ANOTHER CUSTOMER'S ORDER? ", ANS1$
END IF
DO
IF UCASE$(ANS1$) <> "YES" AND UCASE$(ANS1$) <> "NO" THEN
PRINT
INPUT "PLEASE TYPE IN EITHER 'YES' TO CONTINUE OR 'NO' TO STOP ", ANS1$
END IF
LOOP WHILE UCASE$(ANS1$) <> "YES" AND UCASE$(ANS1$) <> "NO"
IF UCASE$(ANS1$) = "NO" THEN CLS
RETURN
' OUTFILE: PROG13.OUT
HONEST ABE'S CARPETORIUM
CARPET TYPES COST/YARD
1. QUALITY - $12.00
2. PREMIUM - $18.00
3. SUPERIOR - $22.00
CARPET TYPE DESIRED: 1
LENGTH DESIRED: 100 WIDTH DESIRED: 100
YARDS NEEDED: 1112.11 PRICE: 13345.32
QUOTE SHEET(Y OR N): N
WOULD YOU LIKE TO ENTER ANOTHER CUSTOMER'S ORDER? NO
BACK TO CIS133 PAGE.