10 REM CHECKING ACCOUNT PROGRAM 40 PRINT CHR$(26):PRINT:PRINT:PRINT TAB(33) "***WELCOME!***":PRINT 50 PRINT TAB(31) "CHECKING ACCOUNT":PRINT 60 PRINT TAB(36) "PROGRAM":PRINT:PRINT 65 PRINT TAB(10) "THIS PROGRAM HAS BEEN WRITTEN TO BE EASY TO USE, HOWEVER, " 70 PRINT TAB(10) "THERE ARE STILL A FEW BUGS IN IT SO PLEASE FOLLOW THESE " 75 PRINT TAB(10) "GUIDELINES:":PRINT:PRINT 100 PRINT TAB(23) "ENTER FILE TO EDIT"; 110 INPUT F$ 120 IF F$="" OR LEN(F$)>8 THEN PRINT TAB(23) "UNACCEPTABLE FILE NAME":GOTO 100 200 REM **** VARIABLES USED **** 210 REM 220 REM N = CHECK NUMBER 230 REM D$ = DATE 240 REM DS$ = DESCRIPTION 250 REM A = AMOUNT 255 REM F$ = FILE NAME 265 REM C$ = (C)CHECK, (D)DEPOSIT 270 REM 280 PRINT CHR$(26):PRINT:PRINT:PRINT TAB(25) "*** MAIN MENU ***" 290 PRINT:PRINT TAB(20) 1,"VIEW FILE" 300 PRINT TAB(20) 2,"ADD NEW DATA" 310 PRINT TAB(20) 3,"CHANGE DATA" 320 PRINT TAB(20) 4,"CHANGE FILE" 330 PRINT TAB(20) 5,"EXIT" 340 PRINT:PRINT TAB(25) "FUNCTION"; 350 INPUT FUNCTION 360 IF (FUNCTION<1) OR (FUNCTION>5) THEN PRINT CHR$(26):PRINT TAB(20) "BAD FUNCTION NUMBER":GOTO 290 370 REM 380 REM **** FUNCTION INDEX **** 390 REM 400 REM 1000 VIEW FILE, 1 FILE IN 'I' MODE 410 REM 2000 ADD NEW DATA, 2 FILES, 1 'I', 2 'O' 420 REM 3000 CHANGE DATA, 2 FILES, 1 'I', 2 'O' 430 REM 4000 CHANGE FILE ? 440 REM 500 ON FUNCTION GOTO 1000,2000,3000,4000,5000 1000 REM --------------------------- VIEW FILE ------------------------------ 1010 ON ERROR GOTO 2910 1020 OPEN "I",#1,F$ 1050 PRINT CHR$(26):PRINT:PRINT:PRINT TAB(25) "----- VIEW FILE -----" 1060 PRINT:PRINT TAB(35) "FILE NAME: ";F$ 1110 PRINT "CHECK #: DATE: DESCRIPTION: AMOUNT: BALANCE:" 1125 IF EOF(1) THEN 1175 1130 INPUT #1,D$,N,DS$,A 1135 IF DS$="DEPOSIT" THEN LET B=B+A ELSE LET B=B-A 1140 PRINT TAB(4);N; TAB(14) D$;TAB(27) DS$; TAB(49) USING "####.##";A; 1150 PRINT TAB(60) USING "$$####.##";B 1160 GOTO 1125 1175 CLOSE 1180 LET B=0 1200 PRINT:PRINT TAB(25) " TO RETURN TO *MENU*"; 1210 INPUT Z 1220 GOTO 200 2000 REM ---------------------------- ADD NEW DATA ---------------------------- 2010 PRINT CHR$(26):PRINT:PRINT:PRINT TAB(25) "---- ADD NEW DATA ----" 2020 PRINT:PRINT TAB(20) "FILE NAME: ";F$ 2030 ON ERROR GOTO 2900 2040 OPEN "I",#1,F$ 2050 OPEN "O",#2,"COPY" 2060 IF EOF(1) THEN 2100 2070 INPUT #1,D$,N,DS$,A 2080 WRITE #2,D$,N,DS$,A 2090 GOTO 2060 2100 CLOSE #1 2110 KILL F$ 2120 INPUT "CHECK NUMBER";N 2130 INPUT "DATE";D$ 2140 INPUT "DESCRIPTION";DS$ 2150 IF LEN(DS$)>20 THEN PRINT:PRINT TAB(25) "LESS THAN 20 CHARECTERS PLEASE":PRINT:GOTO 2140 2160 INPUT "AMOUNT";A 2165 INPUT "ANOTHER (N TO EXIT)";Z$ 2170 WRITE #2,D$,N,DS$,A 2175 IF Z$="N" THEN 2200 2180 PRINT:GOTO 2120 2200 CLOSE 2210 NAME "COPY" AS F$:GOTO 200 2900 IF ERR=53 AND ERL=2040 THEN OPEN "O",#2,"COPY":RESUME 2120 2910 IF ERR=53 AND ERL=1020 THEN PRINT CHR$(26):PRINT TAB(20) "NEW FILE - NO DATA YET":RESUME 290 3000 REM ---------------------- CHANGE DATA ------------------------------- 3100 PRINT CHR$(26):PRINT:PRINT:PRINT 3105 ON ERROR GOTO 3500 3110 OPEN "I",#1,F$ 3120 OPEN "O",#2,"COPY" 3130 PRINT TAB(25) "ENTRY SEARCH BY (N)UMBER OR (D)ATE"; 3135 INPUT W$ 3140 IF W$<>"D" AND W$<>"N" THEN 3130 3150 PRINT:PRINT 3160 IF W$="N" THEN PRINT TAB(30) "ENTER CHECK NUMBER";:INPUT CN 3170 IF W$="D" THEN PRINT TAB(30) "ENTER DATE";:INPUT D1$:GOTO 3400 3200 IF EOF(1) THEN CLOSE (1):PRINT CHR$(26):PRINT TAB(19) "*CHECK # ";CN;" NOT FOUND*":PRINT:GOTO 290 3210 INPUT #1,D$,N,DS$,A 3220 IF CN=N THEN GOTO 6000 3230 WRITE #2,D$,N,DS$,A 3240 GOTO 3200 3400 IF EOF(1) THEN CLOSE (1):PRINT CHR$(26):PRINT TAB(25)"*";D1$;" NOT FOUND*":GOTO 290 3410 INPUT #1,D$,N,DS$,A 3420 IF D1$=D$ THEN GOTO 6000 3430 WRITE #2,D$,N,DS$,A 3440 GOTO 3400 3500 IF ERR=53 AND ERL=3110 THEN PRINT:PRINT TAB(25) "NEW FILE-NO DATA YET":RESUME 290 4000 REM ----------------------- CHANGE FILE -------------------------------- 4020 PRINT CHR$(26):PRINT:PRINT:PRINT TAB(25) "ENTER NEW FILE NAME:"; 4040 INPUT F$ 4060 IF F$="" OR LEN(F$)>8 THEN PRINT TAB(30) "UNACCEPTABLE, TRY AGAIN":GOTO 4040 4080 GOTO 280 5000 REM ------------------------ EXIT -------------------------------------- 5020 PRINT CHR$(26):PRINT:PRINT 5040 PRINT TAB(25) "(B)ASIC OR (S)YSTEM:"; 5060 INPUT E$ 5080 IF E$="B" THEN END 5100 IF E$="S" THEN SYSTEM 5120 PRINT TAB(30) "PLEASE USE B OR S ONLY":GOTO 5040 5900 REM------------------------ CHANGE ------------------------------------- 6000 PRINT TAB(25) "ENTER NEW DATA OR TO CONTINUE" 6010 PRINT:PRINT " CHECK NUMBER IS: ";N;", NEW NUMBER"; 6020 INPUT N1:CHG=N1 6030 IF N1=0 THEN 6050 6040 LET N=N1 6050 PRINT:PRINT " DATE IS: ";D$;", NEW DATE"; 6060 INPUT D1$:CHG$=D1$ 6070 IF D1$="" THEN 6090 6080 LET D$=D1$ 6090 PRINT:PRINT " DESCRIPTION IS: ";DS$;", NEW DESCRIPTION"; 6100 INPUT DS1$:CHG$=DS1$ 6110 IF DS1$="" THEN 6130 6120 LET DS$=DS1$ 6130 PRINT:PRINT " AMOUNT IS: ";A;", NEW AMOUNT"; 6140 INPUT A1:CHG=A1 6150 IF A1=0 THEN 6170 6160 LET A=A1 6170 IF CHG=0 AND CHG$="" THEN 6300 6175 WRITE #2,D$,N,DS$,A 6180 IF EOF(1) THEN 6300 6190 INPUT #1,D$,N,DS$,A 6200 WRITE #2,D$,N,DS$,A 6210 GOTO 6180 6300 CLOSE 1,2 6305 KILL F$ 6310 NAME "COPY" AS F$ 6320 PRINT:PRINT TAB(25) "CHANGE ANOTHER (Y/N)";:INPUT J$ 6330 IF J$="Y" THEN 3000 ELSE GOTO 280