Recent Question/Assignment

Task
In the Resources section of the Interact2 subject website there is a data file called students.txt. This file contains student details: a valid student number, course (BIT) and the specialisation (ex: Network engineering). Each student number is an eight digit number 1156319. (Note: Two records in the file have intentionally been -corrupted- - for testing purposes.)
Design an algorithm and use it to write a Python program that allow the user to reads the contents of the data file into a list. The program should then loop, to allow a user to check various numbers against those stored in the list. The loop should terminate when an -empty- input occurs - i.e. when the user presses the [Enter] key on its own. (Obviously this last entry should NOT be checked against the list!) If the student number input matches an element somewhere in the list, the program should display the number together with the course and the specialisation. If the number input does not match any element in the list, then the program should display the number and a message saying that it IS NOT a valid student number.

Notes:
The algorithm should be written in pseudocode (structured English).
The records read from the data file should be checked and NOT placed into the list if they are something other than an 8 digits. (Display a sensible message if the file is found to have corrupt records in it.)
The numbers entered by the user should be checked to ensure they are valid digits (as distinct from valid student numbers) and not processed further if they are not.
Your programs should use one or more functions where sensible, and be documented fully.
Use exceptions where necessary.
Specify 3 sets of test data that will demonstrate the correct ‘normal’ operation of your program. Show your test data in a table as you have done in earlier assignments.
Run your program using the test data you have selected and save the output produced in a single text file.
Submit:
1. Your algorithm and test data table.
2. The table recording your chosen test data.
3. Source code for your Python implementation.
4. Output test file demonstrating the results of using the test data.
5. Contents of the data file cars.txt read by the program.
It is important that the output listings are not edited in any way.

Rationale
Reinforce topic material related to files and exceptions.
Reinforce topic material related to lists.
Student.txt
11555555 MIT Computer Networking
11565656 MIT Network Security
11575757 MIT Software Design and Development
11585858 MIT Systems Analysis
11555657 MIT Business Analysis
11555556 MI Computer Networking
11595956 BIT Network Engineering
11595957 BIT Software Design and Development
11595958 BIT Systems Administrauon
11595959 BIT Business Analysis
115959 BIT Network Engineering
rates.txt
0 5000 2
5001 10000 3
10001 15000 4
15000 100000 5