-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGrading.pas
More file actions
54 lines (46 loc) · 1.6 KB
/
Grading.pas
File metadata and controls
54 lines (46 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
unit Grading;
interface
type
TGradeLetter = (gradeAPlus, gradeA, gradeAMinus,
gradeBPlus, gradeB, gradeBMinus,
gradeCPlus, gradeC, gradeCMinus,
gradeD, gradeF);
TGradeScore = 0..100;
function GetLetterFromScore(score: TGradeScore): TGradeLetter;
function GradeLetterToStr(grade: TGradeLetter): string;
implementation
//
function GetLetterFromScore(score: TGradeScore): TGradeLetter;
begin
case score of
90..100: GetLetterFromScore := gradeA;
85..89: GetLetterFromScore := gradeAMinus;
80..84: GetLetterFromScore := gradeBPlus;
75..79: GetLetterFromScore := gradeB;
70..74: GetLetterFromScore := gradeBMinus;
65..69: GetLetterFromScore := gradeCPlus;
60..64: GetLetterFromScore := gradeC;
55..59: GetLetterFromScore := gradeCMinus;
50..54: GetLetterFromScore := gradeD;
1..49: GetLetterFromScore := gradeF;
0: GetLetterFromScore := gradeF;
end;
end;
//
function GradeLetterToStr(grade: TGradeLetter): string;
begin
case grade of
gradeAPlus: GradeLetterToStr := 'A+';
gradeA: GradeLetterToStr := 'A';
gradeAMinus: GradeLetterToStr := 'A-';
gradeBPlus: GradeLetterToStr := 'B+';
gradeB: GradeLetterToStr := 'B';
gradeBMinus: GradeLetterToStr := 'B-';
gradeCPlus: GradeLetterToStr := 'C+';
gradeC: GradeLetterToStr := 'C';
gradeCMinus: GradeLetterToStr := 'C-';
gradeD: GradeLetterToStr := 'D';
gradeF: GradeLetterToStr := 'F';
end;
end;
end.