Skip to content

Commit c1188db

Browse files
committed
[Manan] ADD:Student Record Management using a Singly Linked List
1 parent d9c1770 commit c1188db

File tree

1 file changed

+185
-0
lines changed

1 file changed

+185
-0
lines changed

StudentRecordManagement.java

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
// Class to represent a Student
2+
class Student {
3+
int rollNumber;
4+
String name;
5+
int age;
6+
char grade;
7+
Student next; // Pointer to next student
8+
9+
// Constructor to initialize student data
10+
Student(int rollNumber, String name, int age, char grade) {
11+
this.rollNumber = rollNumber;
12+
this.name = name;
13+
this.age = age;
14+
this.grade = grade;
15+
this.next = null;
16+
}
17+
}
18+
19+
// Class to manage the Student Singly Linked List
20+
class StudentLinkedList {
21+
Student head; // Head of the list
22+
23+
// Method to add a student at the beginning
24+
public void addStudentAtBeginning(int rollNumber, String name, int age, char grade) {
25+
Student newStudent = new Student(rollNumber, name, age, grade);
26+
newStudent.next = head;
27+
head = newStudent;
28+
}
29+
30+
// Method to add a student at the end
31+
public void addStudentAtEnd(int rollNumber, String name, int age, char grade) {
32+
Student newStudent = new Student(rollNumber, name, age, grade);
33+
34+
if (head == null) {
35+
head = newStudent;
36+
return;
37+
}
38+
39+
Student temp = head;
40+
while (temp.next != null) {
41+
temp = temp.next;
42+
}
43+
temp.next = newStudent;
44+
}
45+
46+
// Method to add a student at a specific position
47+
public void addStudentAtPosition(int rollNumber, String name, int age, char grade, int position) {
48+
if (position <= 0) {
49+
System.out.println("Invalid position.");
50+
return;
51+
}
52+
53+
Student newStudent = new Student(rollNumber, name, age, grade);
54+
55+
if (position == 1) {
56+
newStudent.next = head;
57+
head = newStudent;
58+
return;
59+
}
60+
61+
Student temp = head;
62+
for (int i = 1; i < position - 1 && temp != null; i++) {
63+
temp = temp.next;
64+
}
65+
66+
if (temp == null) {
67+
System.out.println("Position out of range.");
68+
return;
69+
}
70+
71+
newStudent.next = temp.next;
72+
temp.next = newStudent;
73+
}
74+
75+
// Method to delete a student record by roll number
76+
public void deleteStudent(int rollNumber) {
77+
if (head == null) {
78+
System.out.println("No students in the record.");
79+
return;
80+
}
81+
82+
if (head.rollNumber == rollNumber) {
83+
head = head.next;
84+
return;
85+
}
86+
87+
Student temp = head;
88+
while (temp.next != null && temp.next.rollNumber != rollNumber) {
89+
temp = temp.next;
90+
}
91+
92+
if (temp.next == null) {
93+
System.out.println("Student with Roll Number " + rollNumber + " not found.");
94+
return;
95+
}
96+
97+
temp.next = temp.next.next;
98+
}
99+
100+
// Method to search for a student by Roll Number
101+
public void searchStudent(int rollNumber) {
102+
Student temp = head;
103+
while (temp != null) {
104+
if (temp.rollNumber == rollNumber) {
105+
System.out.println("Student Found: " + temp.rollNumber + " | " + temp.name + " | Age: " + temp.age + " | Grade: " + temp.grade);
106+
return;
107+
}
108+
temp = temp.next;
109+
}
110+
System.out.println("Student with Roll Number " + rollNumber + " not found.");
111+
}
112+
113+
// Method to update a student's grade
114+
public void updateStudentGrade(int rollNumber, char newGrade) {
115+
Student temp = head;
116+
while (temp != null) {
117+
if (temp.rollNumber == rollNumber) {
118+
temp.grade = newGrade;
119+
System.out.println("Updated Grade for Roll Number " + rollNumber + " to " + newGrade);
120+
return;
121+
}
122+
temp = temp.next;
123+
}
124+
System.out.println("Student with Roll Number " + rollNumber + " not found.");
125+
}
126+
127+
// Method to display all student records
128+
public void displayAllStudents() {
129+
if (head == null) {
130+
System.out.println("No students in the record.");
131+
return;
132+
}
133+
134+
System.out.println("Student Records:");
135+
Student temp = head;
136+
while (temp != null) {
137+
System.out.println(temp.rollNumber + " | " + temp.name + " | Age: " + temp.age + " | Grade: " + temp.grade);
138+
temp = temp.next;
139+
}
140+
}
141+
}
142+
143+
// Main class to run the program
144+
public class StudentRecordManagement {
145+
public static void main(String[] args) {
146+
StudentLinkedList studentList = new StudentLinkedList();
147+
148+
// Adding students
149+
studentList.addStudentAtEnd(1, "Amit", 11, 'A');
150+
studentList.addStudentAtEnd(2, "Arjun", 12, 'B');
151+
studentList.addStudentAtBeginning(3, "Chandan", 11, 'C');
152+
studentList.addStudentAtPosition(4, "Manan", 11, 'B', 2);
153+
154+
// Display all students
155+
studentList.displayAllStudents();
156+
157+
// Searching for a student
158+
studentList.searchStudent(102);
159+
160+
// Updating a student's grade
161+
studentList.updateStudentGrade(101, 'B');
162+
163+
// Deleting a student
164+
studentList.deleteStudent(103);
165+
166+
// Displaying students after deletion
167+
studentList.displayAllStudents();
168+
}
169+
}
170+
171+
172+
//SampleOutput
173+
//Student Records:
174+
// 3 | Chandan | Age: 11 | Grade: C
175+
//4 | Manan | Age: 11 | Grade: B
176+
//1 | Amit | Age: 11 | Grade: A
177+
//2 | Arjun | Age: 12 | Grade: B
178+
//Student with Roll Number 102 not found.
179+
//Student with Roll Number 101 not found.
180+
//Student with Roll Number 103 not found.
181+
//Student Records:
182+
// 3 | Chandan | Age: 11 | Grade: C
183+
//4 | Manan | Age: 11 | Grade: B
184+
//1 | Amit | Age: 11 | Grade: A
185+
//2 | Arjun | Age: 12 | Grade: B

0 commit comments

Comments
 (0)