home *** CD-ROM | disk | FTP | other *** search
- { DOUG STANDING / MAX VON BIRDFACE 1/22/87 / 6/90 }
-
- { This program is a computerized employee evaluation routine. }
- { Input is easy and quite a bit of the printing and organizing }
- { of the form is done automatically and in a personalized way. }
- { Note: Procedure LBCOAT and call to it at end of main program. }
- { This is an Assignment/Execute procedure passing control back }
- { to LABCOAT.COM. This is only to be used when that file }
- { exists on the same disk with EVALUATE compiled to COM file - }
- { else just remove it, and this program runs free-standing. }
-
-
- PROGRAM EVALUATE; { v3.6 copyright 6/90 }
-
- TYPE
- STRINGTYPE = STRING[80];
-
- VAR
- CH : CHAR;
- I : INTEGER;
- ADAPTABILITY, ATTENDANCE, ATTITUDE : REAL;
- JUDGEMENT, INITIATIVE, KNOWLEDGE : REAL;
- HELPFULNESS, PTAWARENESS, ACCURACY : REAL;
- TELEPHONE, GROOMING, SCORE, SCORE1 : REAL;
- DATE, DATE2, DATE3, DEPARTMENT, NAME,PLACE : STRINGTYPE;
-
- PROCEDURE LBCOAT; { go back to LABCOAT program }
-
- VAR
- LABCOAT:FILE;
-
- BEGIN
- ASSIGN(LABCOAT,'LABCOAT.COM');
- EXECUTE(LABCOAT);
- END;
-
- PROCEDURE CLEARLINES; { clears lines 23 & 24 }
-
- BEGIN
- GOTOXY(1,23);
- TEXTBACKGROUND(1);
- CLREOL;
- GOTOXY(1,24);
- TEXTBACKGROUND(1);
- CLREOL;
- TEXTBACKGROUND(1);
- END;
-
- PROCEDURE MAKEaLINE; { for screen borders }
-
- BEGIN
- FOR I := 1 TO 80 DO
- WRITE(CHR(205));
- END;
-
- PROCEDURE SIGNON; { initial screen }
-
- BEGIN
- TEXTBACKGROUND(1);
- GRAPHBACKGROUND(1);
- CLRSCR;
- GOTOXY(1,7);
- TEXTCOLOR(0);
- MAKEaLINE;
- GOTOXY(1,8);
- TEXTCOLOR(4);
- MAKEaLINE;
- GOTOXY(1,9);
- TEXTCOLOR(15);
- MAKEaLINE;
- GOTOXY(1,10);
- TEXTCOLOR(2);
- MAKEaLINE;
- GOTOXY(1,11);
- TEXTCOLOR(0);
- MAKEaLINE;
- GOTOXY(13,13);
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- TEXTCOLOR(4);
- WRITELN('***** MEDICAL WORKER EVALUATION FORM Version 3.6 *****');
- WRITELN(' by ');
- WRITELN(' Doug Standing and M. Von Birdface ');
- GOTOXY(1,17);
- TEXTCOLOR(0);
- MAKEaLINE;
- GOTOXY(1,18);
- TEXTCOLOR(2);
- MAKEaLINE;
- GOTOXY(1,19);
- TEXTCOLOR(15);
- MAKEaLINE;
- GOTOXY(1,20);
- TEXTCOLOR(4);
- MAKEaLINE;
- GOTOXY(1,21);
- TEXTCOLOR(0);
- MAKEaLINE;
- DELAY(6000);
- HIGHVIDEO;
- CLRSCR;
- END;
-
- PROCEDURE SHOW;
-
- BEGIN
- TEXTBACKGROUND(1);
- TEXTCOLOR(0);
- WRITELN('You will be evaluating ',NAME,' for 11 key characteristics.');
- WRITE('Each characteristic is to be assigned');
- WRITELN(' a value from ''1 to 5''.');
- WRITELN;
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITELN(' `1'' means ',NAME,' performs Poorly.');
- WRITELN(' `2'' means ',NAME,' just Barely Gets By.');
- WRITELN(' `3'' means ',NAME,' does Acceptable Work.');
- WRITELN(' `4'' means ',NAME,' delivers Good Performance.');
- WRITELN(' `5'' means ',NAME,' does Exceptional Work.');
- WRITELN;
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- TEXTCOLOR(4);
- WRITE('You must rate each of the 11 ');
- WRITELN(' characeristics in the range of `1'' to `5''.');
- TEXTCOLOR(0);
- WRITELN('After you have rated the 11th catagory,');
- WRITELN('all details of the evaluation can be printed.');
- WRITELN;
- WRITELN;
- END;
-
- PROCEDURE ID;
-
- BEGIN
- MEM[$40:$17]:=MEM[$40:$17] OR $40; { toggle on CAPS LOCK }
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter name of place where employed: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(PLACE);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter the name of the person you''re rating: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(NAME);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter ',NAME,'''s job title at the Clinic: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(DEPARTMENT);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter the date of this evaluation (MM/DD/YY): ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(DATE);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter the last evaluation date (MM/DD/YY): ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(DATE2);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE('Enter the starting date of ',NAME,'''s employment here: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(DATE3);
- LOWVIDEO;
- TEXTBACKGROUND(1);
- SCORE1:=0;
- WRITE
- ('Enter ',NAME,'''s last evaluation score, if known ');
- TEXTCOLOR(15);
- WRITE('(0 if unknown): ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(SCORE1);
- WRITELN;
- WRITELN;
- END;
-
- PROCEDURE MAKEaBORDER (VAR OUTFILE:TEXT);
-
- BEGIN
- TEXTBACKGROUND(1);
- TEXTCOLOR(0);
- FOR I := 1 TO 80 DO
- WRITE(LST,CHR(61)); { best with Epson - IBM char set nice with 205}
- WRITELN(LST);
- END;
-
- PROCEDURE SIGNitSUCKER;
-
- BEGIN
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST);
- WRITELN(LST,'Signature of evaluator:_________________________________');
- WRITELN(LST);
- WRITELN(LST,'Signature of employee:__________________________________');
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITE(LST, CHR(12));
- WRITELN(LST);
- WRITELN(LST,' FOR ',NAME,'''s EVALUATION OF ',DATE);
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' MAJOR STRENGTH AREAS FOR ',NAME);
- WRITELN(LST);
- IF (ACCURACY) > 4 THEN WRITELN(LST,' ACCURACY');
- IF (KNOWLEDGE) > 4 THEN WRITELN(LST,' JOB KNOWLEDGE');
- IF (TELEPHONE) > 4 THEN WRITELN(LST,' TELEPHONE SKILLS');
- IF (JUDGEMENT) > 4 THEN WRITELN(LST,' GOOD JUDGEMENT SKILLS');
- IF (INITIATIVE) > 4 THEN WRITELN(LST,' INITIATIVE');
- IF (ADAPTABILITY) > 4 THEN WRITELN
- (LST,' PLANNING/ORGANIZATIONAL SKILLS');
- IF (ATTITUDE) > 4 THEN WRITELN(LST,' WORK ATTITUDE');
- IF (ATTENDANCE) > 4 THEN WRITELN(LST,' ATTENDANCE HABITS');
- IF (GROOMING) > 4 THEN WRITELN
- (LST,' GOOD ATTENDANCE TO APPEARANCE');
- IF (PTAWARENESS) > 4 THEN WRITELN(LST,' PATIENT RELATIONS');
- IF (HELPFULNESS) > 4 THEN WRITELN
- (LST,' HELPFUL, SUPPORTIVE ATTITUDE');
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' WEAKER AREAS FOR ',NAME);
- WRITELN(LST);
- IF (ACCURACY) < 3 THEN WRITELN(LST,' ACCURACY CONCERNS');
- IF (KNOWLEDGE) < 3 THEN WRITELN
- (LST,' JOB KNOWLEDGE OR EXPERIENCE');
- IF (TELEPHONE) < 3 THEN WRITELN(LST,' TELEPHONE SKILLS');
- IF (JUDGEMENT) < 3 THEN WRITELN(LST,' JUDGEMENT SKILLS');
- IF (INITIATIVE) < 3 THEN WRITELN(LST,' INITIATIVE');
- IF (ADAPTABILITY) < 3 THEN WRITELN
- (LST,' PLANNING/ORGANIZING SKILLS');
- IF (ATTITUDE) < 3 THEN WRITELN(LST,' ATTITUDE');
- IF (ATTENDANCE) < 3 THEN WRITELN(LST,' ATTENDANCE / PUNCTUALITY');
- IF (GROOMING) < 3 THEN WRITELN(LST,' APPEARANCE');
- IF (PTAWARENESS) < 3 THEN WRITELN(LST,' PATIENT RELATIONS');
- IF (HELPFULNESS) < 3 THEN WRITELN(LST,' HELPFULNESS');
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' COMMENTS SECTION');
- WRITE(LST, CHR(12))
- END;
-
- PROCEDURE PRINTIT;
-
- VAR
- SUM:REAL;
-
- BEGIN
- WRITE(LST,(CHR(27)),(CHR(69))); { enable Emphasized Pitch }
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' ',PLACE,' EMPLOYEE EVALUATION REPORT');
- WRITELN(LST);
- WRITELN(LST,' Evaluation of: ',NAME);
- WRITELN(LST,' Job Title: ',DEPARTMENT);
- WRITELN(LST,' Evaluated on: ',DATE);
- WRITELN(LST,' Previously Evaluated: ',DATE2);
- WRITELN(LST,' Previous Eval. Score: ',SCORE1:3:1);
- WRITELN(LST,' Started Working Here: ',DATE3);
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' RATING NUMBER DEFINITI0NS');
- WRITELN(LST);
- WRITELN(LST,' 1 = POOR PERFORMANCE ');
- WRITELN(LST,' 2 = BARELY ACCEPTABLE ');
- WRITELN(LST,' 3 = ACCEPTABLE PERFORMANCE ');
- WRITELN(LST,' 4 = GOOD PERFORMANCE ');
- WRITELN(LST,' 5 = EXCEPTIONAL PERFORMANCE ');
- WRITELN(LST);
- MAKEaBORDER(LST);
- WRITELN(LST);
- WRITELN(LST,' CATAGORY RATING COMMENTS');
- WRITELN(LST);
- WRITELN(LST,' Accuracy: ',ACCURACY:3:1,
- ' ________________________________________');
- WRITELN(LST,' Knowledge: ',KNOWLEDGE:3:1,
- ' ________________________________________');
- WRITELN(LST,' Telephone: ',TELEPHONE:3:1,
- ' ________________________________________');
- WRITELN(LST,' Judgement: ',JUDGEMENT:3:1,
- ' ________________________________________');
- WRITELN(LST,' Initiative: ',INITIATIVE:3:1,
- ' ________________________________________');
- WRITELN(LST,' Planning/Org: ',ADAPTABILITY:3:1,
- ' ________________________________________');
- WRITELN(LST,' Attitude: ',ATTITUDE:3:1,
- ' ________________________________________');
- WRITELN(LST,' Attendance: ',ATTENDANCE:3:1,
- ' ________________________________________');
- WRITELN(LST,' Grooming: ',GROOMING:3:1,
- ' ________________________________________');
- WRITELN(LST,' Pt. Awareness: ',PTAWARENESS:3:1,
- ' ________________________________________');
- WRITELN(LST,' Helpfulness: ',HELPFULNESS:3:1,
- ' ________________________________________');
- WRITELN(LST);
- WRITELN(LST,' The highest possible rating is 55.');
- WRITELN(LST,' The lowest possible rating is 11.');
- WRITELN(LST,' The mid-range rating is 33.');
- WRITELN(LST);
- WRITELN(LST,' ',NAME,' is rated at: ',SCORE:3:1);
- WRITELN(LST);
- IF (SCORE <= 13) THEN
- WRITELN(LST,' ',NAME,' is a ''Poor'' performer.')
- ELSE IF (SCORE <= 22) THEN
- WRITELN(LST,' ',NAME,' Just Gets By & Needs Help.')
- ELSE IF (SCORE <= 43) THEN
- WRITELN(LST,' ',NAME,' does an Acceptable Job.')
- ELSE IF (SCORE <= 49) THEN
- WRITELN(LST,' ',NAME,' is a Good Performer.')
- ELSE
- WRITELN(LST,' ',NAME,'''s doing Exceptional Work!');
- IF (SCORE1 >= 11) THEN
- BEGIN
- IF (SCORE) > (SCORE1) THEN
- WRITELN(LST,' ',NAME,'''s score has INCREASED from last evaluation.');
- END;
- IF (SCORE) < (SCORE1) THEN
- WRITELN(LST,' ',NAME,'''s score has DECREASED since last evaluation.');
- SIGNitSUCKER
- END;
-
- PROCEDURE RATEthePERSON;
-
- BEGIN
- REPEAT
- GOTOXY(1,23);
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- WRITELN('A - ACCURACY');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Meets quality standards of the job: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(ACCURACY);
- CLEARLINES;
- UNTIL (ACCURACY <= 5) AND (ACCURACY >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('B - JOB KNOWLEDGE');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Understanding of all phases of the work: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(KNOWLEDGE);
- CLEARLINES;
- UNTIL (KNOWLEDGE <= 5) AND (KNOWLEDGE >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('C - TELEPHONE HANDLING');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Handles all phone calls efficiently & pleasantly: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(TELEPHONE);
- CLEARLINES;
- UNTIL (TELEPHONE <= 5) AND (TELEPHONE >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('D - JUDGEMENT');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE
- (' Can make good independeant decisions with limited information: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(JUDGEMENT);
- CLEARLINES;
- UNTIL (JUDGEMENT <= 5) AND (JUDGEMENT >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('E - INITIATIVE');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Originates constructive actions: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(INITIATIVE);
- CLEARLINES;
- UNTIL (INITIATIVE <= 5) AND (INITIATIVE >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('F - PLANNING & ORGANIZATION');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE
- (' Anticipates problems & plans job effectively: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(ADAPTABILITY);
- CLEARLINES;
- UNTIL (ADAPTABILITY <=5) AND (ADAPTABILITY >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('G - POSITIVE ATTITUDE');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE
- (' Positive and pleasing demeanor with patients & co-workers: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(ATTITUDE);
- CLEARLINES;
- UNTIL (ATTITUDE <= 5) AND (ATTITUDE >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('H - ATTENDANCE & PUNCTUALITY');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Attendance and punctuality on the job: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(ATTENDANCE);
- CLEARLINES;
- UNTIL (ATTENDANCE <= 5) AND (ATTENDANCE >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('I - GROOMING & NEATNESS');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Compliance with rules of dress & appearance: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(GROOMING);
- CLEARLINES;
- UNTIL (GROOMING <= 5) AND (GROOMING >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('J - PATIENT AWARENESS');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE
- (' Believes that patient comfort & convenience are our purpose: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(PTAWARENESS);
- CLEARLINES;
- UNTIL (PTAWARENESS <= 5) AND (PTAWARENESS >=1);
- REPEAT
- GOTOXY(1,23);
- WRITELN('K - HELPFULNESS');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITE(' Demonstrates willingness to learn and to help others: ');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- READLN(HELPFULNESS);
- CLEARLINES;
- UNTIL (HELPFULNESS <= 5) AND (HELPFULNESS >=1);
-
- END;
-
- BEGIN { Main Code Portion }
-
- SIGNON;
- MEM[$40:$17] := MEM[$40:$17] OR $40; { sets Caps Lock on }
- REPEAT
- GRAPHBACKGROUND(1);
- TEXTBACKGROUND(1);
- CLRSCR;
- ID;
- SHOW;
- RATEthePERSON;
- SCORE := ACCURACY + KNOWLEDGE + TELEPHONE + JUDGEMENT +
- INITIATIVE + ADAPTABILITY + ATTITUDE + ATTENDANCE +
- GROOMING + PTAWARENESS + HELPFULNESS;
-
- IF (SCORE < 11) THEN
- BEGIN
- CLRSCR;
- SOUND(100);
- DELAY(500);
- NOSOUND;
- GOTOXY(1,10);
- TEXTBACKGROUND(1);
- TEXTCOLOR(4);
- WRITELN
- ('The score for ',NAME,' is below 11. You must really hate ',NAME,'!!');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- TEXTCOLOR(14);
- WRITELN;
- WRITELN('An error has been made - I''m no fool!'); { arguable }
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- WRITELN;
- WRITELN('Please redo the evaluation on ',NAME);
- DELAY(8000)
- END
- ELSE IF (SCORE > 55) THEN
- BEGIN
- TEXTBACKGROUND(1);
- TEXTCOLOR(4);
- WRITELN('Hey! I know you like ',NAME,' but the score is above 55!!');
- LOWVIDEO;
- TEXTBACKGROUND(1);
- WRITELN(' I think you made an error.');
- HIGHVIDEO;
- TEXTBACKGROUND(1);
- WRITELN('Please redo the evaluation on ',NAME);
- DELAY(8000)
- END
- ELSE
- BEGIN
- TEXTBACKGROUND(1);
- TEXTCOLOR(0);
- WRITELN;
- WRITELN;
- WRITELN(NAME,' has a score of ',SCORE:3:1);
- WRITELN;
- TEXTCOLOR(14);
- WRITE('Do you want a hard copy for full details? (Y/N): ');
- READ(KBD,CH);
- IF CH IN ['Y','y'] THEN
- BEGIN
- TEXTBACKGROUND(1);
- CLRSCR;
- GOTOXY(15,20);
- TEXTCOLOR(20);
- DELAY(500);
- SOUND(1000);
- DELAY(700);
- SOUND(400);
- DELAY(1000);
- NOSOUND;
- DELAY(500);
- WRITELN(' --- BE SURE PRINTER IS TURNED ON ---');
- WRITELN;
- WRITELN;
- TEXTCOLOR(0);
- WRITE(' Press any key when Printer is ready');
- READ(KBD,CH);
- CLRSCR;
- GRAPHBACKGROUND(1);
- TEXTBACKGROUND(1);
- GOTOXY(10,15);
- TEXTCOLOR(14);
- WRITELN(' *** PRINTING NOW BEING DONE ***');
- PRINTIT;
- WRITELN(LST, (CHR(27)), (CHR(70)));
- WRITELN
- END;
- WRITELN;
- WRITELN;
- TEXTCOLOR(0);
- WRITE('Do you want to do another evaluation? (Y/N): ');
- READ(KBD,CH)
- END;
- UNTIL CH IN ['N','n'];
- CLOSE(LST);
- LBCOAT; { if compiling to memory or using EVALUATE as a }
- END. { free standing .COM file, remove this LBCOAT call }
-
-
- { A LOT of credit to Dr. Leon Wortman's Turbo Pascal Programming }
- { with Applications - the core ideas in this code are adapted }
- { from his excellent text, a good buy in my opinion (TAB Books). }
-