This lab should provide you with practice in file handling, stream formatting, and some string manipulation. Classes might come in handy, too.
Write a program that reads a list of enrollments from a file and prints a class roster for the teacher. Make the class roster line up as neatly as you can and still fit on the screen.
You can choose the actual values to use for your data. Make sure to do enough sets of data to well test your program! (Empty data set, normal data set, data with large values, data with short values, etc.)
Also, your program can't know ahead of time how many people are enrolled in the class...
Don't forget to read the file's name from the user and protect your program against any errors that may occur during the opening of the file.
Try to use functions to break up the program into more manageable pieces.
As an example, you might have the data file contain:
# name # student number # address1 # address2 # phone number # major Jason James 100400299 400 Maple Dr Westfalia, HI 66554 555/555-1122 Computer Science Faruk Ahmed 111222333 1200 West Jones Ave Slimsville, PQ 22221 332-4546 Medeaval French Poetry Sean Ramirez 200020020 10000 Snapple Lane Fritter, HO 44331 1-444/411-4414 Underwater Basket Weaving Happy Gilmore 313141455 Simonton, SZ 11246 Yellow Tail Migratory Patterns
(Note how Happy doesn't give out his address or phone number.)
And the program interaction might look something like (the parts in this color are typed by the user):
$ ./enroll.out Welcome to the Roster Generator Program!!! Please enter the name of your names file: bob.dat I'm sorry, I could not open 'bob.dat'. Please enter another name: csc442 File 'csc442' opened successfully! Name | Major | Phone # | Town ----------------+--------------------+---------------+------------------- Jason James | Computer Science | 555/555-1122 | Westfalia, HI 665 Faruk Ahmed | Medeaval French Po | 332-4546 | Slimsville, PQ 22 Sean Ramirez | Underwater Basket | 1-444/411-441 | Fritter, HO 44331 Happy Gilmore | Yellow Tail Migrat | | Simonton, SZ 1124 Total Enrollment: 4 Thank you for using the RGP!! Endeavor to have a gyroscopic day! $
(Note that we don't use all of the available data in our table -- on purpose!)
Don't forget about the occasion when there are no enrolled students in the file at all!
This assignment is (Level 2).