Viper29
10-26-2004, 03:42 PM
hello all, I have a little problem with a program in qbasic.
I think it's fairly simple, and I feel like the solution is right on the tip of my tongue but I just can't get it.
I know HTML but I suck when it comes to coding like this, so I apologize in advance if this is a simple newb question :/
so here's the code for it, if someone could please point me in the right direction, or just slap me upside the head for being stupid, I'd appreciate it
REM PROGRAM AUTHOR: IAN ESSLING
REM ASSIGNMENT 5, PAGES 234-235
REM
REM VARIABLES USED
REM EMP.NO - EMPLOYEE NUMBER
REM EMP.NAME - EMPLOYEE NAME
REM DEP - DEPARTMENT
REM MARITAL.STAT - MARITAL STATUS
REM PAY.RATE - RATE OF PAY
REM GROSS.PAY - GROSS PAY YTD
REM WITH.TAX - FEDERAL WITHHOLDING TAX YTD
REM SOC.SEC - SOCIAL SECURITY
REM LINECOUNT - LINE COUNTER
REM PAGECOUNT - PAGE COUNTER
REM ENDFLAG - LOOP CONTROL VARIABLE - INDICATES EOF CONDITION
REM PH1, CH1, DTL, ENDMESS - LPRINT LINES
REM
DIM EMP.NO AS INTEGER
DIM EMP.NAME AS STRING
DIM MARITAL.STAT AS STRING
DIM PAY.RATE AS SINGLE
DIM GROSS.PAY AS SINGLE
DIM WITH.TAX AS SINGLE
DIM SOC.SEC AS SINGLE
DIM LINECOUNT AS INTEGER
DIM PAGECOUNT AS INTEGER
DIM ENDFLAG AS STRING
DIM PH1 AS STRING
DIM CH1 AS STRING
DIM CH2 AS STRING
DIM CH3 AS STRING
DIM DTL AS STRING
DIM ENDMESS AS STRING
MAIN:
GOSUB SETUP
DO WHILE ENDFLAG = "NO"
GOSUB PROCESS
LOOP
GOSUB EOJ
END
SETUP:
OPEN "A:EX61PAY.DAT" FOR INPUT AS #1
LET PH1 = " PAYROLL FILE LIST PAGE ###"
LET CH1 = "EMPLOYEE MARITAL RATE OF <-------YEAR-TO-DATE-------->"
LET CH2 = "NO. NAME DEP. STATUS PAY GROSS PAY WITH. TAX SOC. SEC."
LET CH3 = "--- -------- ---- ------- ------- --------- --------- ---------"
LET DTL = "\ \ \ \ \ ##.## ##,###.## ##,###.## #,###.##"
LET ENDMESS = "JOB COMPLETE"
LET PAGECOUNT = 0
GOSUB HDGS
GOSUB READDATA
RETURN
READDATA:
IF EMP.NO = END THEN
LET ENDFLAG = "YES"
ELSE
INPUT #1, EMP.NO, EMP.NAME, DEP, MARITAL.STAT, PAY.RATE, GROSS.PAY, WITH.TAX, SOC.SEC
END IF
RETURN
HDGS:
LET PAGECOUNT = PAGECOUNT + 1
LPRINT CHR$(12)
LPRINT USING PH1; PAGECOUNT
LPRINT
LPRINT CH1
LPRINT CH2
LPRINT CH3
LPRINT
LET LINECOUNT = 6
RETURN
PROCESS:
IF LINECOUNT >= 18 THEN
GOSUB HDGS
END IF
LPRINT USING DTL; EMP.NO; EMP.NAME; DEP; MARITAL.STAT; PAY.RATE; GROSS.PAY; WITH.TAX; SOC.SEc
LPRINT
LET LINECOUNT = LINECOUNT + 2
GOSUB READDATA
RETURN
EOJ:
LPRINT
LPRINT ENDMESS
LPRINT CHR$(12)
CLOSE #1
RETURN
I think it's fairly simple, and I feel like the solution is right on the tip of my tongue but I just can't get it.
I know HTML but I suck when it comes to coding like this, so I apologize in advance if this is a simple newb question :/
so here's the code for it, if someone could please point me in the right direction, or just slap me upside the head for being stupid, I'd appreciate it
REM PROGRAM AUTHOR: IAN ESSLING
REM ASSIGNMENT 5, PAGES 234-235
REM
REM VARIABLES USED
REM EMP.NO - EMPLOYEE NUMBER
REM EMP.NAME - EMPLOYEE NAME
REM DEP - DEPARTMENT
REM MARITAL.STAT - MARITAL STATUS
REM PAY.RATE - RATE OF PAY
REM GROSS.PAY - GROSS PAY YTD
REM WITH.TAX - FEDERAL WITHHOLDING TAX YTD
REM SOC.SEC - SOCIAL SECURITY
REM LINECOUNT - LINE COUNTER
REM PAGECOUNT - PAGE COUNTER
REM ENDFLAG - LOOP CONTROL VARIABLE - INDICATES EOF CONDITION
REM PH1, CH1, DTL, ENDMESS - LPRINT LINES
REM
DIM EMP.NO AS INTEGER
DIM EMP.NAME AS STRING
DIM MARITAL.STAT AS STRING
DIM PAY.RATE AS SINGLE
DIM GROSS.PAY AS SINGLE
DIM WITH.TAX AS SINGLE
DIM SOC.SEC AS SINGLE
DIM LINECOUNT AS INTEGER
DIM PAGECOUNT AS INTEGER
DIM ENDFLAG AS STRING
DIM PH1 AS STRING
DIM CH1 AS STRING
DIM CH2 AS STRING
DIM CH3 AS STRING
DIM DTL AS STRING
DIM ENDMESS AS STRING
MAIN:
GOSUB SETUP
DO WHILE ENDFLAG = "NO"
GOSUB PROCESS
LOOP
GOSUB EOJ
END
SETUP:
OPEN "A:EX61PAY.DAT" FOR INPUT AS #1
LET PH1 = " PAYROLL FILE LIST PAGE ###"
LET CH1 = "EMPLOYEE MARITAL RATE OF <-------YEAR-TO-DATE-------->"
LET CH2 = "NO. NAME DEP. STATUS PAY GROSS PAY WITH. TAX SOC. SEC."
LET CH3 = "--- -------- ---- ------- ------- --------- --------- ---------"
LET DTL = "\ \ \ \ \ ##.## ##,###.## ##,###.## #,###.##"
LET ENDMESS = "JOB COMPLETE"
LET PAGECOUNT = 0
GOSUB HDGS
GOSUB READDATA
RETURN
READDATA:
IF EMP.NO = END THEN
LET ENDFLAG = "YES"
ELSE
INPUT #1, EMP.NO, EMP.NAME, DEP, MARITAL.STAT, PAY.RATE, GROSS.PAY, WITH.TAX, SOC.SEC
END IF
RETURN
HDGS:
LET PAGECOUNT = PAGECOUNT + 1
LPRINT CHR$(12)
LPRINT USING PH1; PAGECOUNT
LPRINT
LPRINT CH1
LPRINT CH2
LPRINT CH3
LPRINT
LET LINECOUNT = 6
RETURN
PROCESS:
IF LINECOUNT >= 18 THEN
GOSUB HDGS
END IF
LPRINT USING DTL; EMP.NO; EMP.NAME; DEP; MARITAL.STAT; PAY.RATE; GROSS.PAY; WITH.TAX; SOC.SEc
LPRINT
LET LINECOUNT = LINECOUNT + 2
GOSUB READDATA
RETURN
EOJ:
LPRINT
LPRINT ENDMESS
LPRINT CHR$(12)
CLOSE #1
RETURN