1 ! INRAN - RANDOM TEST GENERATOR INPUT PROGRAM 2 ! M.L. COLE 1-10-74 D.E.C. 10 !PRINT DIRECTIONS FOR USER 20 PRINT "*** RANDOM TEST GENERATOR INPUT PROGRAM ***" 30 PRINT:PRINT'WHEN ENTERING A QUESTION, PLEASE TYPE THE RETURN KEY TO' 40 PRINT 'INDICATE THE END OF THE QUESTION. A QUESTION MAY HAVE UP' 50 PRINT 'TO 10 LINES; AN ANSWER IS ONE LINE - USUALLY ONE OR TWO' 60 PRINT 'WORDS. TYPE THE RETURN KEY AS THE FIRST LINE OF THE ' 70 PRINT 'QUESTION TO INDICATE THE END OF QUESTION INPUT.' 80 PRINT 90 ON ERROR GOTO 7000 100 !ADD TO CURRENT QUESTION FILE OR START A NEW ONE? 110 PRINT"DO YOU WISH TO START A FILE OF QUESTIONS OR ADD TO" 120 PRINT"AN EXISTING FILE"; 130 INPUT "(S OR A)";A$ 140 IF A$<>'S' AND A$<>'A' THEN GOTO130 150 INPUT "NAME OF QUESTION FILE (CR=QUES.FIL)";N$ 152 IF N$='' THEN N$='QUES.FIL' 153 IF A$='S' THEN OPEN N$ FOR OUTPUT AS FILE 1% 155 IF A$='A' THEN GOSUB 700 160 DIM Q$(11) !MAX OF 10 LINES PER QUESTION, LAST LINE IS ANS. 200 ! GET INFO ON # QUESTIONS IN QUESTION FILE 220 IF A$='A' THEN GOTO 320 !SKIP STARTING CONDITIONS 300 ! GET QUESTION NUMBER Q% 310 Q%=0%: PRINT #1%, Q% !SET INITIAL A$='S' CONDITIONS 320 Q%=Q%+1% !GET NUMBER OF CURRENT QUES. TO INPUT 325 Q$(I%)='' FOR I%=1% TO 11% !CLEAR QUESTION AND ANS. TABLE 330 PRINT "*** QUESTION #";Q%;" ***" 340 FOR I%=1% TO 10%: INPUT LINE Q$(I%) 350 IF Q$(I%)=CHR$(13)+CHR$(10) THEN GOTO 400 360 IF I%=8% THEN PRINT "(2 LINES LEFT)" 370 NEXT I% 400 ! GET ANSWER 410 IF I%=1% AND Q$(I%)=CHR$(13)+CHR$(10) THEN GOTO 1000 420 PRINT "*** ANSWER #";Q%;" ***" 440 INPUT LINE Q$(I%) 450 PRINT 500 ! OUTPUT QUESTION AND ANSWER TO QUESTION FILE 510 PRINT #1%, I% 520 FOR J%=1% TO I%: PRINT #1%, LEFT(Q$(J%),(LEN(Q$(J%))-2)): NEXT J% 530 GOTO 320 !GO GET NEXT QUESTION IF ANY 700 !IF ADD TO EXISTING FILE, THEN COPY FILE ROUTINE 705 PRINT 'JUST A MINUTE WHILE I READ THROUGH THE QUESTION FILE...' 710 NAME N$ AS 'QUES.TMP' 715 OPEN 'QUES.TMP' FOR INPUT AS FILE 2% 717 OPEN N$ FOR OUTPUT AS FILE 1% 720 INPUT #2%, Q%: PRINT #1%, Q% 730 FOR I%=1% TO Q% 740 INPUT #2%, Q1%: PRINT #1%, Q1% 750 FOR J%=1% TO Q1% 760 INPUT LINE #2%,Q$(J%): PRINT #1%,LEFT(Q$(J%),(LEN(Q$(J%))-2)) 770 NEXT J%: NEXT I% 780 CLOSE 2%: KILL 'QUES.TMP' 800 RETURN 1000! ALL QUESTIONS HAVE BEEN ENTERED. UPDATE CORRECT # OF QUESTIONS. 1005 PRINT #1%, CHR$(26) 1010 CLOSE 1%: OPEN "QUES.TMP" FOR OUTPUT AS FILE 2%: OPEN N$ FOR INPUT AS FILE 1%: INPUT #1%,G% 1015 PRINT #2%, Q%-1% 1020 FOR I%=1% TO Q%-1%: INPUT #1%, Q1% 1023 PRINT #2%, Q1% 1025 FOR J%=1% TO Q1%: INPUT LINE #1%, Q$(J%) 1030 PRINT #2%, LEFT(Q$(J%),(LEN(Q$(J%))-2)) 1035 NEXT J%: NEXT I% 1040 CLOSE 1%,2% 1045 KILL N$: NAME "QUES.TMP" AS N$ 2000 ! GIVE INSTRUCTOR OPTION OF LISTING ALL QUESTIONS 2010 PRINT"WOULD YOU LIKE A LISTING OF ALL THE QUESTIONS" 2020 PRINT "IN THE FILE AT THIS POINT"; 2030 INPUT "(Y OR N)"; A$: IF A$='N' GOTO 3000 2040 IF A$<>'Y' GOTO 2030 2050 ! AT THIS POINT WE LIST THE QUESTIONS 2060 OPEN N$ AS FILE 1% 2070 PRINT"WHERE WOULD YOU LIKE LISTING SENT (LP: OR FILE)"; 2080 INPUT D$ 2090 OPEN D$ FOR OUTPUT AS FILE 2% 2100 INPUT #1%, Q% !GET NUMBER OF QUESTIONS IN FILE 2110 FOR I%=1% TO Q% 2115 PRINT #2% 2120 INPUT #1%, Q1% !GET NUMBER OF LINES IN THE QUESTION 2130 PRINT#2%,'*** QUESTION #';I%;' ***';TAB(90%);'*** ANSWER #';I%;' ***' 2140 FOR J%=1% TO Q1% 2150 INPUT LINE #1%,Q$(J%): NEXT J% 2160 FOR K%=1% TO Q1%-1% 2170 IF K%=1% THEN PRINT#2%,LEFT(Q$(1%),(LEN(Q$(1%))-2)); TAB(90%);LEFT(Q$(Q1%),(LEN(Q$(Q1%))-2)) 2175 IF K%<>1% THEN PRINT #2%,LEFT(Q$(K%),(LEN(Q$(K%))-2)) 2180 NEXT K% 2190 NEXT I% 2195 PRINT #2%, CHR$(26) 2200 CLOSE 1%,2% 2210 PRINT: PRINT'ALL DONE': PRINT 3000 ! CHAIN TO TEST GENERATOR?? 3010 PRINT"DO YOU WISH TO GENERATE TESTS NOW"; 3020 INPUT "(Y OR N)";A$ 3030 IF A$='Y' THEN CHAIN 'OUTRAN' 3040 IF A$<>'N' THEN GOTO 3020 3050 GOTO 32767 7000 ! ERROR HANDLING ROUTINE 7010 IF ERR=11 THEN RESUME 0 7020 PRINT "ERL =";ERL,"ERR =";ERR 32767 END