Write a C++ program that reads a data file consisting of each student&'s ID and name, followed by the student&'s final exam mark of DSA. The program should first prompt the user to input the file name. The contents of the data file are then read into a created linked list. Each entry to the list should have the student&'s ID, name, exam mark, and a pointer
to the next student.
After all the students&' data have been entered, the program should allow the users to
perform the following operations:
(a) Print the ID, name and mark for each student, i.e., print the whole list
(b) Print the highest mark and the names of all students who received that mark
(c) Print the lowest mark and the names of all students who received that mark
(d) Print the average mark
(e) Exit the program
In performing the above (a) ~ (d) operations, the program scans the linked list only once.
2. Program Analysis
The program inputs students&' information from a text file. The program asks the user to
enter the name of the input file. If the file exists, the program reads student data;
otherwise it displays an appropriate message and exits. The sample data are
1000 Bill 70.0
1001 John 72.0
1003 Lisa 54.5
1004 Kathy 78.0
1005 Jason 68.0
1006 David 88.5
1007 Jack 60.8
1008 Tom 54.5
1009 Ben 88.5
1010 Mark 81.0
The program lists all DSA students (as given in the sample text file) with their IDs,
names and exam marks; prints out the highest and lowest mark and the associated
students (e.g., for the above data, the highest mark is 88.5 and the students with that mark
are David and Ben, while the lowest mark is 54.5 and the students with the mark is Lisa
The program reads a text file containing the unit student data and constructs a singly
linked list of student records. Then it repeatedly displays a menu with the commands
listed below and requests the user to select one of the commands.
‘P&': print the list of all students on the screen,
‘H&': print the highest mark and associated student(s),
‘L&': print the lowest mark and associated student(s),
‘A&': print the average mark,
'Q': exit the program
1) Complete and fully-functional working program in 1 file.
2) just the source code file needed no executables.
3) well commented and indented.
Unix and windows 2000