#Step 1: Define the Student Class
class Student:
def __init__(self, student_id, name, age, grade):
self.student_id = student_id
[Link] = name
[Link] = age
[Link] = grade
def __str__(self):
return f"{self.student_id},{[Link]},{[Link]},{[Link]}"
@staticmethod
def from_string(record):
student_id, name, age, grade = [Link]().split(',')
return Student(student_id, name, age, grade)
Step 2: Define File Handling Functions
We will create functions to add, view, search, update, and delete records in a file called
[Link].
import os
FILE_NAME = "[Link]"
# Add student record
def add_student(student):
with open(FILE_NAME, "a") as file:
[Link](str(student) + "\n")
print("Student added successfully!")
# View all student records
def view_students():
if not [Link](FILE_NAME):
print("No records found!")
return
with open(FILE_NAME, "r") as file:
records = [Link]()
if not records:
print("No records found!")
else:
print("Student Records:")
for record in records:
student = Student.from_string(record)
print(f"ID: {student.student_id}, Name: {[Link]}, Age: {[Link]}, Grade:
{[Link]}")
# Search student by ID
def search_student(student_id):
if not [Link](FILE_NAME):
print("No records found!")
return
with open(FILE_NAME, "r") as file:
for record in file:
student = Student.from_string(record)
if student.student_id == student_id:
print(f"Found: ID: {student.student_id}, Name: {[Link]}, Age: {[Link]},
Grade: {[Link]}")
return
print("Student not found!")
# Update student record
def update_student(student_id, name=None, age=None, grade=None):
if not [Link](FILE_NAME):
print("No records found!")
return
updated = False
with open(FILE_NAME, "r") as file:
records = [Link]()
with open(FILE_NAME, "w") as file:
for record in records:
student = Student.from_string(record)
if student.student_id == student_id:
if name:
[Link] = name
if age:
[Link] = age
if grade:
[Link] = grade
updated = True
[Link](str(student) + "\n")
if updated:
print("Student record updated successfully!")
else:
print("Student not found!")
# Delete student record
def delete_student(student_id):
if not [Link](FILE_NAME):
print("No records found!")
return
deleted = False
with open(FILE_NAME, "r") as file:
records = [Link]()
with open(FILE_NAME, "w") as file:
for record in records:
student = Student.from_string(record)
if student.student_id != student_id:
[Link](str(student) + "\n")
else:
deleted = True
if deleted:
print("Student record deleted successfully!")
else:
print("Student not found!")
#Step 3: Create Menu-Driven Interface
def main_menu():
while True:
print("\n===== Student Record Management System =====")
print("1. Add Student")
print("2. View All Students")
print("3. Search Student by ID")
print("4. Update Student")
print("5. Delete Student")
print("6. Exit")
choice = input("Enter your choice: ")
if choice == '1':
student_id = input("Enter Student ID: ")
name = input("Enter Name: ")
age = input("Enter Age: ")
grade = input("Enter Grade: ")
student = Student(student_id, name, age, grade)
add_student(student)
elif choice == '2':
view_students()
elif choice == '3':
student_id = input("Enter Student ID to search: ")
search_student(student_id)
elif choice == '4':
student_id = input("Enter Student ID to update: ")
name = input("Enter new Name (press enter to skip): ")
age = input("Enter new Age (press enter to skip): ")
grade = input("Enter new Grade (press enter to skip): ")
update_student(student_id, name if name else None, age if age else None, grade if
grade else None)
elif choice == '5':
student_id = input("Enter Student ID to delete: ")
delete_student(student_id)
elif choice == '6':
print("Exiting... Thank you!")
break
else:
print("Invalid choice! Please try again.")
# Run the program
main_menu()