-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgradeSystem.java
More file actions
173 lines (148 loc) · 4.88 KB
/
gradeSystem.java
File metadata and controls
173 lines (148 loc) · 4.88 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package assign_1;
import java.util.Scanner;
class Student {
private int studentId;
private String name;
Student(int id, String name) {
studentId = id;
this.name = name;
}
public int getStudentId() {
return studentId;
}
public String getName() {
return name;
}
}
class Grade {
private int studentId;
private int courseId;
private char grade;
Grade(int studentId, int courseId, char grade) {
this.studentId = studentId;
this.courseId = courseId;
this.grade = grade;
}
public int getStudentId() {
return studentId;
}
public int getCourseId() {
return courseId;
}
public char getGrade() {
return grade;
}
}
class GradingSystem {
private Student[] students;
private Grade[] grades;
private int[] courseCredits;
private int studentCount;
private int gradeCount;
public GradingSystem(int maxStudents, int maxGrades) {
students = new Student[maxStudents];
grades = new Grade[maxGrades];
courseCredits = new int[]{2, 2, 3, 4, 5};
studentCount = 0;
gradeCount = 0;
}
public void addStudent(Student student) {
students[studentCount] = student;
studentCount++;
}
public void addGrade(Grade grade) {
grades[gradeCount] = grade;
gradeCount++;
}
public int gtop(char grade) {
switch (grade) {
case 'A':
return 4;
case 'B':
return 3;
case 'C':
return 2;
case 'D':
return 1;
case 'F':
return 0;
default:
return 0;
}
}
public double calculateGPA(int studentId) {
int tp = 0;
int tc = 0;
for (int i = 0; i < gradeCount; i++) {
if (grades[i].getStudentId() == studentId) {
int courseId = grades[i].getCourseId();
int credits = courseCredits[courseId];
tc += credits;
tp += gtop(grades[i].getGrade()) * credits;
}
}
return (double) tp / tc;
}
public void printGradeReport(int studentId) {
System.out.println("Grade Report for Student ID: " + studentId);
for (int i = 0; i < gradeCount; i++) {
if (grades[i].getStudentId() == studentId) {
System.out.println("Course ID: " + grades[i].getCourseId() + ", Grade: " + grades[i].getGrade());
}
}
double gpa = calculateGPA(studentId);
System.out.println("GPA: " + gpa);
}
}
public class gradeSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
GradingSystem gradingSystem = new GradingSystem(100, 100);
Student students[] = new Student[100];
Grade grades[] = new Grade[100];
String name;
int id, n, i = 0, g = 0, courseId;
char grade;
while (true) {
System.out.println("1 : Add Student");
System.out.println("2 : Add Grade");
System.out.println("3 : Print Grade Report");
System.out.println("4 : Exit");
System.out.print("Enter your choice : ");
n = scanner.nextInt();
switch (n) {
case 1:
System.out.print("Enter student id: ");
id = scanner.nextInt();
System.out.print("Enter student name: ");
name = scanner.next();
students[i] = new Student(id, name);
gradingSystem.addStudent(students[i]);
i++;
break;
case 2:
System.out.print("Enter student id: ");
id = scanner.nextInt();
System.out.print("Enter course id: ");
courseId = scanner.nextInt();
System.out.print("Enter grade (A/B/C/D/F): ");
grade = scanner.next().charAt(0);
grades[g] = new Grade(id, courseId, grade);
gradingSystem.addGrade(grades[g]);
g++;
break;
case 3:
System.out.print("Enter student id: ");
id = scanner.nextInt();
gradingSystem.printGradeReport(id);
break;
case 4:
System.out.println("Exiting...");
scanner.close();
return;
default:
System.out.println("Invalid option. Please try again.");
}
}
}
}