home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug026.ark / BUDGET.ASC < prev    next >
Text File  |  1984-04-29  |  10KB  |  217 lines

  1. 100 REM TYPED BY CONNIE FOSTER ,CORRECTED BY C.FOSTER ,PROG BY O.E.DIAL
  2. 110 REM ALL REM STATEMENTS CAN BE CHANGED TO ALLOW USE OF TWO TERMINALS
  3. 120 REM SEE ARTICLE IN PERSONAL COMPUTING MAY/JUNE 77
  4. 130 Q=27:V$="###.#":W$="$$#####,":U$="###"
  5. 140 DIMD(18),E$(Q),V(Q),F(Q)
  6. 150 PRINTTAB(19)"RECURSIVE BUDGETING MODEL":PRINT:PRINTTAB(28)"* * *"
  7. 160 DATASALARY/WAGES,OTHER INCOME,FED INC TAX,STATE & LOCAL TAX
  8. 170 DATASOCIAL SECURITY,UNEMPLOYMENT INS,HEALTH INS
  9. 180 DATALIFE INS,CONTRIBUTIONS,OTHER DEDUCTIONS
  10. 190 DATARENT/MORTGAGE,LIFE INS,HEALTH INS,HOUSE INS
  11. 200 DATAAUTO INS,CAR PAYMENTS,LOAN PAYMENTS,TRASH REMOVAL
  12. 210 DATAOTHER FIXED EXP
  13. 220 DATAFOOD/BEVERAGES,CLOTHING,DRY CLEANING,BARBER/BEAUTY
  14. 230 DATAHOME MAINT,HOME HEAT'G FUEL,WATER,ELECTRICITY, TELEPHONE
  15. 240 DATAGAS/OIL,AUTO MAINT,FARES/TOLLS/PARKING,DENTIST
  16. 250 DATAPHYSICIAN,DRUGS/SUNDRIES,SCHOOL EXPENSE,FAMILY ALLOWANCE
  17. 260 DATACLUBS/LODGES,THEATER/SPORTS,RESTAURANTS
  18. 270 DATAOTHER ENT'MENT,MAG'S/BOOKS/PAPERS,SITTERS,CHILD CARE
  19. 280 DATAVACATION SAVING,OTHER SAVINGS,CONTRIBUTIONS,OTHER EXPENSES
  20. 290 PRINT:PRINT"SELECT YOUR BUDGETING PERIOD BY NUMBER. LATER ON IT WILL"
  21. 300 PRINT"BE EXTENDED TO ONE YEAR.":PRINT
  22. 310 PRINTTAB(3)"1-WEEKLY"TAB(15)"2-BIWEEKLY"TAB(30)"3-SEMIMONTHLY";
  23. 320 PRINTTAB(45)"4-MONTHLY":PRINT
  24. 330 INPUTP:IFP>4THENPRINT"TRY AGAIN":GOTO290
  25. 340 IFP=1THENP=52ELSEIFP=2THENP=26ELSEIFP=3THENP=24ELSEIFP=4THENP=12
  26. 350 PRINT:PRINT"ALRIGHT,FIRST LET'S LOOK AT INCOME FOR THE PERIOD.":PRINT
  27. 360 READA$:PRINTA$;" $";:INPUTD(0):READA$:PRINTA$;" $";:INPUTD(1)
  28. 370 TI=D(0)+D(1):PRINT
  29. 380 PRINT:PRINT"OK,NOW LET'S LOOK AT PAYCHECK DEDUCTIONS.":PRINT
  30. 390 FORJ=2TO9:READA$:PRINTA$;:INPUT" $";D(J):TD=TD+D(J):NEXTJ:PRINT 
  31. 400 PRINT"OK,NOW LET'S LOOK AT FIXED EXPENSES.":PRINT
  32. 410 FORJ=10TO18:READA$:PRINTA$;:INPUT" $";D(J):TF=TF+D(J):NEXTJ
  33. 420 DF=TD+TF:SI=TI-DF:S=64
  34. 430 PRINT:PRINT"OK,AT THIS TIME OUR TABLE LOOKS LIKE THIS:":PRINT
  35. 440 REM
  36. 450 GOSUB1900:PRINT:PRINTTAB(19);
  37. 460 PRINT"RECURSIVE BUDGETING MODEL":PRINT:PRINTTAB(27)"* * *":PRINT
  38. 470 GOSUB1900
  39. 480 PRINT:PRINTTAB(20)"SPENDABLE INCOME SUMMARY":PRINT
  40. 490 GOSUB1890:PRINTTAB(3)"ACCOUNT"TAB(42)"PERIOD"TAB(57)"ANNUAL"
  41. 500 GOSUB1890:PRINT"TOTAL INCOME" TAB(40);:PRINTUSINGW$;TI;:PRINTTAB(55)
  42. 510 PRINTUSINGW$;TI*P:PRINT:PRINTTAB(3)"PAYCHECK DEDUCTIONS"TAB(25);
  43. 520 PRINTUSINGW$;TD*(-1):PRINT
  44. 530 PRINTTAB(3)"FIXED EXPENSES"TAB(25);:PRINTUSINGW$;TF*(-1);
  45. 540 PRINTTAB(40);:PRINTUSINGW$;DF*(-1);:PRINTTAB(55);
  46. 550 PRINTUSINGW$;DF*(-1)*P
  47. 560 PRINTTAB(41)"-------"TAB(55)"--------":PRINT"SPENDABLE INCOME";
  48. 570 PRINTTAB(40);:PRINTUSINGW$;SI;:PRINTTAB(55);:PRINTUSINGW$;SI*P
  49. 580 PRINTTAB(41)"======="TAB(55)"========":PRINT:
  50. 590 GOSUB1900:PRINT: PRINT
  51. 600 REM
  52. 610 GOSUB1910:RO=0
  53. 620 PRINT:PRINT "OK,NOW FOR THE FIRST ROUND OF VARIABLE EXPENSE. DON'T"
  54. 630 PRINT"PINCH YOURSELF IN YOUR ESTIMATES (WITHIN REASON). LET THE"
  55. 640 PRINT"COMPUTER HELP YOU REFINE YOUR BUDGET LATER ON.":PRINT
  56. 650 FORJ=0TOQ:READE$(J) :PRINTE$(J);:INPUT" $";V(J):VT=VT+V(J):NEXTJ
  57. 660 RESTORE:PRINT:PRINT
  58. 670 PRINT"YOUR BUDGET FOR THE FIRST ROUND TOTALLED $"VT". THIS"
  59. 680 PRINT"COMPARES TO SPENDABLE INCOME OF $"SI". WE HAVE"
  60. 690 PRINT"PRORATED THE DIFFERENCE, $"SI-VT",OVER ALL VARIABLE EXPENSE"
  61. 700 PRINT"ACCOUNTS.":PRINT
  62. 710 GOSUB1910:FORJ=0TOQ:V(J)=INT(V(J)/VT*SI):NEXTJ:VT=SI:PRINT
  63. 720 PRINT"NOW WE BEGIN THE BUDGET REFINEMENT PHASE. MAKE AS MANY"
  64. 730 PRINT"PASSES AS YOU LIKE. AS YOU REVIEW EACH ACCOUNT,DECIDE"
  65. 740 PRINT"WHETHER TO FREEZE IT OR TO LEAVE IT FOR ANOTHER PASS.":PRINT
  66. 750 PRINT"HINT: DON'T BE IN A HURRY TO FREEZE AN ACCOUNT.":PRINT
  67. 760 PRINT"YOUR TASK IS FINISHED WHEN ALL ACCOUNTS ARE FROZEN.":PRINT
  68. 770 GOSUB1910
  69. 780 FORJ=0TOQ:PRINT:IFV(J)=0THEN980
  70. 790 PRINTE$(J);" $";V(J):INPUT"CHANGE ('Y' OR 'N')";A$
  71. 800 IFA$="N"THEN840ELSEIFA$="Y"THEN820ELSEIFA$<>"Y"THEN790
  72. 810 GOTO790
  73. 820 INPUT"REVISED AMOUNT $";A:IFA<V(J)THEN840
  74. 830 GOSUB1930
  75. 840 INPUT"FREEZE ('Y' OR 'N')";B$:PRINT
  76. 850 IFA$="Y"ANDB$="Y"THEN900
  77. 860 IFA$="Y"ANDB$="N"THEN940
  78. 870 IFA$="N"ANDB$="N"THEN980
  79. 880 VT=VT-V(J):FT=FT+V(J):SWAPF(J),V(J):V(J)=0:PRINT
  80. 890 PRINT"OK,THE ACCOUNT HAS BEEN FROZEN AT $"F(J)".":GOTO980
  81. 900 VT=VT-A:FT=FT+A:SWAPA,F(J):V(J)=0
  82. 910 FORK=OTOQ:V(K)=INT(V(K)*(SI-FT)/VT):NEXTK:VT=SI-FT
  83. 920 PRINT"OK,THE ACCOUNT HAS BEEN FROZEN AT $"F(J)",AND THE DIFFERENCE"
  84. 930 PRINT"PRORATED OVER REMAINING ACCOUNTS.":PRINT:GOTO980
  85. 940 VT=VT-V(J)+A:V(J)=A
  86. 950 FORK=0TOQ:V(K)=INT(V(K)*(SI-FT)/VT):NEXTK:VT=SI-FT
  87. 960 PRINT"OK,THE VALUE HAS BEEN CHANGED TO $"A", AND THE DIFFERENCE"
  88. 970 PRINT"PRORATED OVER REMAINING ACCOUNTS.":PRINT
  89. 980 NEXTJ:PRINT:R=0:FORJ=0TOQ:IFV(J)=0THENR=R+1:NEXTJ
  90. 990 IFR<=QTHEN1010
  91. 1000 FORJ=OTOQ:F(J)=INT(F(J)/FT*SI):VT=0:FT=SI:GOTO1380
  92. 1010 PRINT"NOW LET'S RECAP VARIABLE EXPENSES BEFORE GOING ON TO THE"
  93. 1020 PRINT"NEXT ROUND.":PRINT:RO=RO+1:V1=0:F1=0
  94. 1030 FORJ=0TOQ:V(J)=INT(V(J)/VT*(SI-FT)):NEXTJ:VT=SI-FT
  95. 1040 REM
  96. 1050 PRINTTAB(7)"INTERIM SUMMARY OF VARIABLE EXPENSES";
  97. 1060 PRINT":   NO."RO
  98. 1070 GOSUB1890:PRINTTAB(3)"ACCOUNTS"TAB(28)"NUMBER"TAB(37)"PERCENT";
  99. 1080 PRINTTAB(48)"AMOUNT"TAB(56)"PERCENT"
  100. 1090 GOSUB1890:FORJ=0TOQ:IFV(J)+F(J)=0THEN1110
  101. 1100 IFV(J)THENV1=V1+1ELSEF1=F1+1
  102. 1110 NEXTJ
  103. 1120 PRINT"VARIABLE EXPENSES"TAB(29);:PRINTUSINGU$;V1;:PRINTTAB(39);
  104. 1130 PRINTUSINGV$;V1/(V1+F1)*100;:PRINTTAB(46);:PRINTUSINGW$;VT;
  105. 1140 PRINTTAB(58);:PRINTUSINGV$;VT/TI*100:PRINT
  106. 1150 PRINT"FROZEN EXPENSES"TAB(29);:PRINTUSINGU$;F1;:PRINTTAB(39);
  107. 1160 PRINTUSINGV$;F1/(V1+F1)*100;:PRINTTAB(46);
  108. 1170 PRINTUSINGW$;FT;:PRINTTAB(58);:PRINTUSINGV$;FT/TI*100
  109. 1180 PRINTTAB(28)"-------"TAB(48)"--------"
  110. 1190 PRINTTAB(3)"TOTALS"TAB(29);:PRINTUSINGU$;F1+V1;:PRINTTAB(46);
  111. 1200 PRINTUSINGW$;VT+FT:PRINTTAB(28)"======="TAB(48)"========":PRINT
  112. 1210 GOSUB1900:PRINT:PRINT
  113. 1220 GOSUB1230:GOTO1270
  114. 1230 PRINTTAB(8)"INTERIM STATUS OF VARIABLE EXPENSES  NO."RO
  115. 1240 GOSUB1890:PRINTTAB(3)"ACCOUNT"TAB(30)"VARIABLE"TAB(43)"FROZEN";
  116. 1250 PRINTTAB(54)"PERCENT"
  117. 1260 GOSUB1890:PRINT
  118. 1270 FORJ=0TOQ:IFV(J)+F(J)=0THEN1330ELSEPRINTE$(J);:R2=R2+1
  119. 1280 IFF(J)THEN1300ELSEPRINTTAB(29):PRINTUSINGW$;V(J);:PRINTTAB(55);
  120. 1290 PRINTUSINGV$;V(J)/TI*100:GOTO1320
  121. 1300 PRINTTAB(40);:PRINTUSINGW$;F(J);:PRINTTAB(55);
  122. 1310 PRINTUSINGV$;F(J)/TI*100
  123. 1320 IFINT(R2/5)=R2/5THENPRINT
  124. 1330 NEXTJ:PRINT:R2=0
  125. 1340 GOSUB1900:PRINT
  126. 1350 REM
  127. 1360 PRINT:PRINT "NOW WE MAKE ANOTHER PASS THROUGH VARIABLE EXPENSES.":PRINT
  128. 1370 GOTO770
  129. 1380 PRINT"PLEASE INPUT THE REQUESTED INFORMATION BEFORE WE PROVIDE A"
  130. 1390 PRINT"FINAL DETAIL OF YOUR BUDGET.":PRINT
  131. 1400 PRINTTAB(18)"* USE NO COMMAS NOR COLONS *":PRINT
  132. 1410 INPUT"NAME";A$:INPUT"BUDGET YEAR";A
  133. 1420 B=LEN(A$):B=16-B/2
  134. 1430 REM
  135. 1440 GOSUB1920
  136. 1450 GOSUB1900:PRINT
  137. 1460 PRINTTAB(B)"* THE "A$" FAMILY BUDGET FOR"A"*":PRINT
  138. 1470 GOSUB1900:PRINT
  139. 1480 PRINTTAB(6)"ACCOUNT"TAB(20)""TAB(26)"INCOME"TAB(38)":";
  140. 1490 PRINTTAB(44)"EXPENSE"TAB(56)":PERCENT"
  141. 1500 PRINTTAB(20)":-----------------:-----------------: TOTAL"
  142. 1510 PRINTTAB(20)": PERIOD : ANNUAL : PERIOD : ANNUAL : INCOME"
  143. 1520 PRINT"--------------------:--------:--------:--------:--------:------"
  144. 1530 X$=":$$#####,:$$#####,:        :        : ###.#"
  145. 1540 Y$=":        :        :$$#####,:$$#####,: ###.#"
  146. 1550 GOTO1570
  147. 1560 PRINT":        :        :        :        :":RETURN
  148. 1570 PRINT"INCOME"TAB(20);:PRINTUSINGX$;TI;TI*P;TI/TI*100
  149. 1580 PRINT"------"TAB(20);
  150. 1590 GOSUB1560
  151. 1600 READA$:PRINTA$TAB(20);:PRINTUSINGX$;D(0);D(0)*P;D(0)/TI*100
  152. 1610 READA$:PRINTA$TAB(20);:PRINTUSINGX$;D(1);D(1)*P;D(1)/TI*100
  153. 1620 PRINTTAB(20);
  154. 1630 GOSUB1560
  155. 1640 PRINT"PAYCHECK DEDUCT'S"TAB(20);
  156. 1650 PRINTUSINGY$;TD;TD*P;TD/TI*100
  157. 1660 PRINT"-----------------"TAB(20);
  158. 1670 GOSUB1560
  159. 1680 FORJ=2TO9:READA$:IFD(J)=0THEN1700ELSEPRINTA$TAB(20);
  160. 1690 PRINTUSINGY$;D(J);D(J)*P;D(J)/TI*100
  161. 1700 NEXTJ:PRINTTAB(20);
  162. 1710 GOSUB1560
  163. 1720 PRINT"FIXED EXPENSES"TAB(20);
  164. 1730 PRINTUSINGY$;TF;TF*P;TF/TI*100
  165. 1740 PRINT"--------------"TAB(20);
  166. 1750 GOSUB1560
  167. 1760 FORJ=10TO18:READA$:IFD(J)=0THEN1780ELSEPRINTA$TAB(20);
  168. 1770 PRINTUSINGY$;D(J);D(J)*P;D(J)/TI*100
  169. 1780 NEXTJ:PRINTTAB(20);
  170. 1790 GOSUB1560
  171. 1800 PRINT"VARIABLE EXPENSE"TAB(20);
  172. 1810 PRINTUSINGY$;FT;FT*P;FT/TI*100
  173. 1820 PRINT"----------------"TAB(20);
  174. 1830 GOSUB1560
  175. 1840 FORJ=0TOQ:IFF(J)=0THEN1860ELSEPRINTE$(J)TAB(20);
  176. 1850 PRINTUSINGY$;F(J);F(J)*P;F(J)/TI*100
  177. 1860 NEXTJ:PRINT
  178. 1870 GOSUB1900:PRINT
  179. 1880 GOSUB1900:PRINT:GOTO1980
  180. 1890 FORL=1TOS:PRINT"-";:NEXTL:PRINT:RETURN
  181. 1900 FORL=1TOS:PRINT"=";:NEXTL:PRINT:RETURN
  182. 1910 PRINT"PRESS 'Y' TO CONTINUE":PRINT:INPUTA$:PRINT:RETURN
  183. 1920 FORL=1TO10:PRINT;:NEXTL:RETURN
  184. 1930 IFA<=V(J)THEN1970
  185. 1940 IFA<=VTTHEN1970
  186. 1950 PRINT"* YOU HAVE EXCEEDED YOUR BALANCE OF SPENDABLE INCOME BY $"A-SI;
  187. 1960 PRINT" *":INPUT"REVISED AMOUNT $";A:PRINT
  188. 1970 RETURN
  189. 1980 RESTORE:READA$:READA$:PRINT:PRINT:S=95
  190. 1990 PRINTTAB(21)"* EXPENSE BAR CHART *"
  191. 2000 PRINTTAB(20)"PERCENT OF TATAL INCOME":PRINT
  192. 2010 GOSUB1890:PRINT
  193. 2020 GOSUB2140:PRINT
  194. 2030 FORJ=2TO18:READA$:IFD(J)=0THEN2060
  195. 2040 A=INT(D(J)/TI*300):PRINTA$;
  196. 2050 GOSUB2170
  197. 2060 NEXTJ
  198. 2070 FORJ=0TOQ:IFF(J)=0THEN2100
  199. 2080 A=INT(F(J)/TI*300):PRINTE$(J);
  200. 2090 GOSUB2170
  201. 2100 NEXTJ:PRINT
  202. 2110 GOSUB2140:PRINT:PRINT
  203. 2120 GOSUB1900:PRINT:PRINT:STOP
  204. 2130 REM
  205. 2140 PRINTTAB(20)"  -  -  -  -  5  -  -  -  - 10  -  -  -  - 15  -  -  -  ";
  206. 2150 PRINT"- 20  -  -  -  - 25":RETURN
  207. 2160 RETURN
  208. 2170 IFA<1THENPRINTTAB(20)"]":GOTO2200
  209. 2180 IFA<2THENPRINTTAB(20)"]]":GOTO2200
  210. 2190 PRINTTAB(20);:FORK=1TOA:PRINT"]";:NEXTK:PRINT
  211. 2200 RETURN
  212. 2210 REM
  213. 2220 REM
  214. 2230 STOP
  215. 2240 REM
  216. 2250 REM
  217.