The task
The objective of this task is to create a simple Student Record Management System using modular programming which features a search function, parallel arrays, and file handling in Python.
You are required to create a Python program that allows a school to manage student records. The program should provide the following functionalities:
- Create a function to input and store student data such as name, roll number, age, and grade in parallel arrays.
- Create a function to display all student records in a user-friendly format.
- Create a function to search for a student by their roll number using a search algorithm. Display the student's information if found, or notify the user if the student is not in the database.
- Implement functions to save student data to a text file and load data from the same file. Use a file format that is easy to read and parse, such as CSV.
Requirements
- Create a test plan which shows how and what will be tested
- Use modular programming by breaking the program into functions for each of the above tasks.
- Use parallel arrays to store student data (e.g., one array for names, one for roll numbers, etc.).
- Implement a search feature to find a student by roll number.
- Create a user-friendly menu system that allows the user to perform the above actions.
- Ensure proper error handling and validation for user inputs.
- Provide comments and documentation for your code.
- The program should cope with modifications made to the CSV file outwith the program. E.g. if the user were to edit the CSV to include another pupil, it should still be readable by the program and if not it should display errors.
Bonus
Allow the user to update and delete student records.
Implement error handling for file operations (e.g., handling file not found or file format issues).
Success
To succeed with this task, you'll need to have a working menu. Below is an example of this:
To complete this program successfully, you must:
- Implement a test plan, outlining what is to be tested
- Use correct implementation of modular programming concepts.
- Successfully implement parallel arrays and a search feature.
- User-friendly menu system and error handling.
- Proper file handling and data saving/loading functionality.