A software application for school
result management system
Creating a school result management system in Java involves structuring a program that can
handle student data, manage subjects, record marks, and calculate results. Below is a step-
by-step guide to help you build a basic console-based result management system.
---
1. Plan the Features
Add students and their details (e.g., Name, Roll Number).
Add subjects.
Enter marks for students.
Calculate total marks, percentage, and grade.
Display student results.
---
2. Structure the Classes
Here’s a basic class structure:
Student: Holds student details and marks.
Subject: Represents individual subjects.
ResultManager: Handles operations like adding students, subjects, and calculating results.
Main: The entry point for the program.
---
3. Implementation
Student.java
import java.util.HashMap;
public class Student {
private int rollNumber;
private String name;
private HashMap<String, Integer> marks; // Subject and Marks
public Student(int rollNumber, String name) {
this.rollNumber = rollNumber;
this.name = name;
this.marks = new HashMap<>();
public int getRollNumber() {
return rollNumber;
public String getName() {
return name;
public void addMarks(String subject, int mark) {
marks.put(subject, mark);
public HashMap<String, Integer> getMarks() {
return marks;
public int calculateTotalMarks() {
return marks.values().stream().mapToInt(Integer::intValue).sum();
public double calculatePercentage() {
if (marks.size() == 0) return 0.0;
return (double) calculateTotalMarks() / marks.size();
}
public String calculateGrade() {
double percentage = calculatePercentage();
if (percentage >= 90) return "A";
else if (percentage >= 75) return "B";
else if (percentage >= 50) return "C";
else return "F";
---
ResultManager.java
import java.util.ArrayList;
public class ResultManager {
private ArrayList<Student> students;
private ArrayList<String> subjects;
public ResultManager() {
students = new ArrayList<>();
subjects = new ArrayList<>();
public void addSubject(String subject) {
if (!subjects.contains(subject)) {
subjects.add(subject);
public void addStudent(Student student) {
students.add(student);
public Student findStudentByRollNumber(int rollNumber) {
for (Student student : students) {
if (student.getRollNumber() == rollNumber) {
return student;
return null;
public void displayResults() {
for (Student student : students) {
System.out.println("Roll Number: " + student.getRollNumber());
System.out.println("Name: " + student.getName());
System.out.println("Marks: " + student.getMarks());
System.out.println("Total Marks: " + student.calculateTotalMarks());
System.out.println("Percentage: " + student.calculatePercentage());
System.out.println("Grade: " + student.calculateGrade());
System.out.println("-----------------------");
public ArrayList<String> getSubjects() {
return subjects;
}
---
Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ResultManager resultManager = new ResultManager();
Scanner scanner = new Scanner(System.in);
// Adding subjects
System.out.println("Enter number of subjects:");
int subjectCount = scanner.nextInt();
scanner.nextLine(); // Consume newline
for (int i = 0; i < subjectCount; i++) {
System.out.println("Enter subject name:");
resultManager.addSubject(scanner.nextLine());
// Adding students
System.out.println("Enter number of students:");
int studentCount = scanner.nextInt();
scanner.nextLine(); // Consume newline
for (int i = 0; i < studentCount; i++) {
System.out.println("Enter student roll number:");
int rollNumber = scanner.nextInt();
scanner.nextLine(); // Consume newline
System.out.println("Enter student name:");
String name = scanner.nextLine();
Student student = new Student(rollNumber, name);
// Adding marks
for (String subject : resultManager.getSubjects()) {
System.out.println("Enter marks for " + subject + ":");
int marks = scanner.nextInt();
student.addMarks(subject, marks);
resultManager.addStudent(student);
// Display results
System.out.println("\nStudent Results:");
resultManager.displayResults();
scanner.close();
---
4. Run and Test
Compile and run the program.
Add a few subjects and students to test all functionalities.
---
5. Extend the System
To improve, you could:
1. Store data in files or a database for persistence.
2. Create a graphical user interface (GUI) using JavaFX or Swing.
3. Add features like editing student details or marks.