Advertisement
HawkeyeHS

Student Management System

Apr 27th, 2025
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.94 KB | Software | 0 0
  1. import java.util.*;
  2.  
  3. public class StudentManagementSystem {
  4.  
  5.     static class Student {
  6.         String name;
  7.         int age;
  8.         List<Integer> grades;
  9.         int attendance;
  10.  
  11.         public Student(String name, int age) {
  12.             this.name = name;
  13.             this.age = age;
  14.             this.grades = new ArrayList<>();
  15.             this.attendance = 0;
  16.         }
  17.  
  18.         public void addGrade(int grade) {
  19.             grades.add(grade);
  20.         }
  21.  
  22.         public void updateAttendance(int daysAttended) {
  23.             this.attendance = daysAttended;
  24.         }
  25.  
  26.         public double calculateAverageGrade() {
  27.             if (grades.isEmpty()) return 0.0;
  28.             int total = 0;
  29.             for (int grade : grades) {
  30.                 total += grade;
  31.             }
  32.             return total / (double) grades.size();
  33.         }
  34.  
  35.         public String getPerformance() {
  36.             double average = calculateAverageGrade();
  37.             if (average >= 90) return "Excellent";
  38.             if (average >= 75) return "Good";
  39.             if (average >= 50) return "Average";
  40.             return "Needs Improvement";
  41.         }
  42.  
  43.         @Override
  44.         public String toString() {
  45.             return "Student{name='" + name + "', age=" + age + ", grades=" + grades + ", attendance=" + attendance + "}";
  46.         }
  47.     }
  48.  
  49.     private Map<Integer, Student> studentMap; // Keyed by student ID
  50.  
  51.     public StudentManagementSystem() {
  52.         studentMap = new HashMap<>();
  53.     }
  54.  
  55.     public void addStudent(int studentId, String name, int age) {
  56.         if (studentMap.containsKey(studentId)) {
  57.             System.out.println("Student ID already exists.");
  58.         } else {
  59.             studentMap.put(studentId, new Student(name, age));
  60.         }
  61.     }
  62.  
  63.     public void addGradeToStudent(int studentId, int grade) {
  64.         Student student = studentMap.get(studentId);
  65.         if (student != null) {
  66.             student.addGrade(grade);
  67.         } else {
  68.             System.out.println("Student not found.");
  69.         }
  70.     }
  71.  
  72.     public void updateStudentAttendance(int studentId, int daysAttended) {
  73.         Student student = studentMap.get(studentId);
  74.         if (student != null) {
  75.             student.updateAttendance(daysAttended);
  76.         } else {
  77.             System.out.println("Student not found.");
  78.         }
  79.     }
  80.  
  81.     public void printStudentDetails(int studentId) {
  82.         Student student = studentMap.get(studentId);
  83.         if (student != null) {
  84.             System.out.println(student);
  85.             System.out.println("Average Grade: " + student.calculateAverageGrade());
  86.             System.out.println("Performance: " + student.getPerformance());
  87.         } else {
  88.             System.out.println("Student not found.");
  89.         }
  90.     }
  91.  
  92.     public void printClassReport() {
  93.         for (Map.Entry<Integer, Student> entry : studentMap.entrySet()) {
  94.             Student student = entry.getValue();
  95.             System.out.println("ID: " + entry.getKey() + " | Name: " + student.name + " | Average Grade: " + student.calculateAverageGrade() + " | Attendance: " + student.attendance + " | Performance: " + student.getPerformance());
  96.         }
  97.     }
  98.  
  99.     public static void main(String[] args) {
  100.         StudentManagementSystem sms = new StudentManagementSystem();
  101.        
  102.         // Adding students
  103.         sms.addStudent(1, "John Doe", 20);
  104.         sms.addStudent(2, "Jane Smith", 21);
  105.        
  106.         // Adding grades
  107.         sms.addGradeToStudent(1, 85);
  108.         sms.addGradeToStudent(1, 90);
  109.         sms.addGradeToStudent(2, 78);
  110.         sms.addGradeToStudent(2, 82);
  111.        
  112.         // Updating attendance
  113.         sms.updateStudentAttendance(1, 20);
  114.         sms.updateStudentAttendance(2, 18);
  115.        
  116.         // Printing student details
  117.         sms.printStudentDetails(1);
  118.         sms.printStudentDetails(2);
  119.        
  120.         // Printing class report
  121.         sms.printClassReport();
  122.     }
  123. }
  124.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement