-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGradingProgram.java
More file actions
56 lines (53 loc) · 1.81 KB
/
GradingProgram.java
File metadata and controls
56 lines (53 loc) · 1.81 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
55
56
/*
* QUESTION SIX
* Program to calculate the average mark and award a grade.
*/
import java.util.Scanner;
//MY GRADING FunctionalInterface WITH ONE ABSTRACT METHOD grade()
@FunctionalInterface
interface Grading{
abstract String grade(double mark);
}
public class GradingProgram {
public static void main(String args[]) {
//grade() method implementation
Grading grader = (double mark) -> {
if(mark >= 70 && mark <= 100){
return "A";
}else if(mark >= 60){
return "B";
}else if(mark >= 50){
return "C";
}else if(mark >= 40){
return "D";
}else if(mark > 0){
return "FAIL";
}else{
return "INVALID";
}
};
//SUBJECTS OF INTEREST
String subjects[] = {"English", "Maths", "Physics",
"Kiswahili", "Computer", "Geography",
"History", "CRE", "Business", "Agriculture"};
Scanner keypad = new Scanner(System.in);
double total_mark = 0;
for(String item: subjects){
while(true){
try{
System.out.print("\n" + item + ": ");
total_mark += keypad.nextDouble(); break;
}catch(Exception error){
System.out.println(error); break;
}
}
}
System.out.print("\n");
// PRINT DASHES
for(int i=0;i<30;i++){System.out.print("-");}
//PRINT THE TOTAL, AVERAGE and GRADE
System.out.println("\n Total: " + total_mark + "\n Average: " +
(total_mark / subjects.length) +
"\n Grade: " + grader.grade((total_mark / subjects.length)));
}
}