12-09-2003, 01:51 AM
How would i get this program to sort.....Sort if u dont enter a new name and sort if u do enter a name....Thanx
Code:
DECLARE SUB Information (Nme$, Address$, Id, gender%, Payrate)
DECLARE SUB Sort ()
DECLARE SUB File ()
DECLARE SUB AddPerson (last$, First$, Address$, gender%, Payrate)
DIM SHARED SortItems
DIM SHARED gender.type$(1 TO 2)
DIM SHARED Nme$(1 TO 12)
DIM SHARED Address$(1 TO 12)
DIM SHARED Id(1 TO 12) AS LONG
DIM SHARED gender%(1 TO 12)
DIM SHARED Payrate(1 TO 12)
TYPE ClassRecord
Nme AS STRING * 15
Address AS STRING * 42
Id AS INTEGER
gender AS STRING * 2
Payrate AS SINGLE
END TYPE
DIM Info(1 TO 12) AS ClassRecord
'---------------------------------Menu---------------------------------------'
CLS
INPUT "Do you want to add another person"; person$
IF person$ = "Y" OR person$ = "y" THEN
PRINT "Please do not use commas!!"
PRINT
INPUT "Enter last name, first name:", last$
INPUT "Enter your address:", Add$
INPUT "Enter your id number:", idnum
INPUT "Enter your gender (1 for M, 2 for F:) ", gend%
INPUT "Enter your payrate:", rate
ELSE
CLS
PRINT "Choose how you want to sort the items!!"
PRINT "--------------------------------------"
PRINT
PRINT "By name Press 1"
PRINT "By address Press 2"
PRINT "By id Press 3"
PRINT "By gender Press 4"
PRINT "By payrate Press 5"
INPUT "Which do you want to sort by"; SortItems
END IF
'------------------------Call Subs And Define Gender-------------------------'
gender.type$(1) = "Male"
gender.type$(2) = "Female"
CALL Information(Nme$, Address$, Id, gender%, Payrate)
CALL Sort
CALL File
'CALL AddPerson(last$, First$, Address$, gender%, Payrate)
CLS
'----------------------------------------------------------------------------'
'---------------------------------Print Info---------------------------------'
IF person$ = "N" OR person$ = "n" THEN
FOR i = 1 TO 11
PRINT "Name: "; Nme$(i);
SLEEP 1
PRINT " Address: "; Address$(i)
PRINT "ID: "; Id(i)
PRINT "Gender: "; gender.type$(gender%(i))
PRINT "Hourly Salary: $"; Payrate(i)
PRINT
NEXT i
ELSE
FOR i = 1 TO 11
PRINT "Name: "; Nme$(i);
SLEEP 1
PRINT " Address: "; Address$(i)
PRINT "ID: "; Id(i)
PRINT "Gender: "; gender.type$(gender%(i))
PRINT "Hourly Salary: $"; Payrate(i)
PRINT
NEXT i
PRINT "Name: "; last$;
PRINT " Address: "; Add$
PRINT "ID: "; idnum
PRINT "Gender: "; gender.type$(gend%)
PRINT "Hourly Salary: $"; rate
END IF
'----------------------------------------------------------------------------'
SUB AddPerson (last$, First$, Address$, gender%, Payrate)
IF person$ = "Y" THEN
LET Nme$(12) = last$ + First$
LET Address$(12) = Address$
LET Id(12) = Id
LET gender%(12) = gender%
LET Payrate(12) = Payrate
OPEN "Info.DAT" FOR APPEND AS #1
WRITE #1, Nme$(i), Address$(i), Id(i), gender%(i), Payrate(i)
CLOSE #1
ELSE
END IF
END SUB
SUB File
OPEN "Info.DAT" FOR INPUT AS #1
FOR i = 1 TO 12
INPUT #1, Nme$(i), Address$(i), Id(i), gender%(i), Payrate(i)
PRINT Nme$(i), Address$(i), Id(i), gender%(i), Payrate(i)
NEXT i
CLOSE #1
END SUB
SUB Information (Nme$, Address$, Id, gender%, Payrate)
Nme$(1) = "Preston, Drew"
Nme$(2) = "Peterman, Alex"
Nme$(3) = "Booth, Shane"
Nme$(4) = "Young, Chris"
Nme$(5) = "Carreer, Jim"
Nme$(6) = "Cardwell, James"
Nme$(7) = "Monroe, Judy"
Nme$(8) = "Belcher, Jacob"
Nme$(9) = "Eisenback, Josh"
Nme$(10) = "Allen, Rachel"
Nme$(11) = "Yancey, Crystal"
Nme$(12) = last$
Address$(1) = "9115 Benson Road, Bagdad, KY 40003"
Address$(2) = "0204 Adair Avenue, Shelbyville, KY 40065"
Address$(3) = "0805 Lakeview Drive, Shelbyville, KY 40065"
Address$(4) = "0555 Alter Avenue, Hollywood, CA 40219"
Address$(5) = "0710 Hallow Lane, Newport, KY 49281"
Address$(6) = "0177 Ivy Lane, Evansville, IN 33363"
Address$(7) = "0106 Ada Avenue, Shelbyville, KY 40065"
Address$(8) = "3228 Bluegrass Drive, Shelbyville, KY 40065"
Address$(9) = "0901 Heavens Way, Shelbyville, KY 40065"
Address$(10) = "0141 Fifth Street, Apolo Beach, FL 90210"
Address$(11) = "0740 Zero Lane, Shelbyville, KY 40065"
Address$(12) = Add$
Id(1) = 813176
Id(2) = 437751
Id(3) = 314207
Id(4) = 132694
Id(5) = 421738
Id(6) = 324963
Id(7) = 927691
Id(8) = 393722
Id(9) = 842101
Id(10) = 870192
Id(11) = 746669
Id(12) = idnum
gender%(1) = 1
gender%(2) = 1
gender%(3) = 1
gender%(4) = 1
gender%(5) = 1
gender%(6) = 1
gender%(7) = 1
gender%(8) = 1
gender%(9) = 1
gender%(10) = 2
gender%(11) = 2
gender%(12) = gend%
Payrate(1) = 6.3
Payrate(2) = 8.13
Payrate(3) = 8
Payrate(4) = 9.5
Payrate(5) = 7.35
Payrate(6) = 8.2
Payrate(7) = 6.95
Payrate(8) = 7.46
Payrate(9) = 6.25
Payrate(10) = 8.51
Payrate(11) = 6
Payrate(12) = rate
'-----------------------------File Opening-----------------------------------'
OPEN "Info.DAT" FOR OUTPUT AS #1
FOR i = 1 TO 12
WRITE #1, Nme$(i), Address$(i), Id(i), gender%(i), Payrate(i)
NEXT i
CLOSE #1
END SUB
SUB Sort
SELECT CASE SortItems
CASE 1
FOR i = 1 TO 12
FOR j = 1 TO i
IF Nme$(j) > Nme$(i) THEN
SWAP Nme$(j), Nme$(i)
SWAP Address$(j), Address$(i)
SWAP Id(j), Id(i)
SWAP gender%(j), gender%(i)
SWAP Payrate(j), Payrate(i)
END IF
NEXT j, i
CASE 2
FOR i = 1 TO 12
FOR j = 1 TO i
IF Address$(j) > Address$(i) THEN
SWAP Nme$(j), Nme$(i)
SWAP Address$(j), Address$(i)
SWAP Id(j), Id(i)
SWAP gender%(j), gender%(i)
SWAP Payrate(j), Payrate(i)
END IF
NEXT j, i
CASE 3
FOR i = 1 TO 12
FOR j = 1 TO i
IF Id(j) > Id(i) THEN
SWAP Nme$(j), Nme$(i)
SWAP Address$(j), Address$(i)
SWAP Id(j), Id(i)
SWAP gender%(j), gender%(i)
SWAP Payrate(j), Payrate(i)
END IF
NEXT j, i
CASE 4
FOR i = 1 TO 12
FOR j = 1 TO i
IF gender%(j) > gender%(i) THEN
SWAP Nme$(j), Nme$(i)
SWAP Address$(j), Address$(i)
SWAP Id(j), Id(i)
SWAP gender%(j), gender%(i)
SWAP Payrate(j), Payrate(i)
END IF
NEXT j, i
CASE 5
FOR i = 1 TO 12
FOR j = 1 TO i
IF Payrate(j) > Payrate(i) THEN
SWAP Nme$(j), Nme$(i)
SWAP Address$(j), Address$(i)
SWAP Id(j), Id(i)
SWAP gender%(j), gender%(i)
SWAP Payrate(j), Payrate(i)
END IF
NEXT j, i
END SELECT
END SUB