CS 162 Fall 2001 Assignment 8 –Using Lists 100 points
Assigned: 11/05/2001
Due: 11/12/2001 at the start of class.
Pre-Lab (Do Before Lab): Bring an empty (or nearly empty) disk. Plan out steps needed for program.
Pairs: You may work in pairs if you want. Note, during the course of the semester, you cannot pair with any one person more than twice. If you work in a pair, turn in ONE copy that is the work of both of you, with both of your names on it. Each member of the pair will receive the same grade for that lab. In such a partnership, students must share as equally as possible the work and learning. Working together with truly shared effort and learning can be a positive experience. However, simply giving/receiving code from someone defeats the learning process. If substantial parts of a program are taken from non-partners, that is plagiarism. The copier and copyee will each receive a zero.
Main Assignment:
A simplified Student class has been provided (student.h and student.cpp under Review on my WWW page – student.cpp has been slightly improved since you got it for assignment 6). Create a client program, as illustrated below. The program should ask for input on multiple students (until user has entered all that they desire), validate each student as they are entered (other than strings such as first name, all data should be validated), and put each student into a vector appropriate to their year in school (freshman, sophomore, etc). After all students have been entered, sort each of the 4 vectors by GPA from high to low, and display each vector in order in turn, as illustrated below. Then, prompt for course completions as illustrated below – getting student ID from the user, finding the student, and getting the number of credits and the number of grade points – and update the student records. If a student should be promoted, remove them from the list they are in and add them to the next higher list. After all updates have been processed, re-sort the lists and re-display them, as illustrated below.
Details:
1) If you change student.h and/or student.cpp, make sure you hand them in
as well. (I don’t think you should have to – I don’t think you should even have
to look at student.cpp)
2) In addition to validation done previously, ensure
that when student info is entered that
the number of credits is consistent with the year in school – Fr should be 0-30
credits, so should be 31-60 credits, jr should be 61-90 credits, and sr should
be 91 or above.
3) New inputs (credits and grade points for the
class being posted) should be validated (credits 1-5, grade points no more than
4 * number of credits)..
4) You must use lists instead of vectors on this
assignment.
5) Send your prompts to clog and your outputs to
cout so I can capture your results in a file (so I can check more than a
screen-full. You can do this too- ask me how).
Hand-in:
1) Listing of the program
2) Disk with your .cpp file and
your working .exe file. NAME YOUR PROGRAM FILE yourlastname8.cpp; Name your
project yourlastname8 so that the executable will be yourlastname8.exe. If you
are working in pairs, use both last names (e.g. redmondsmith8.cpp)
Miscellaneous:
1) If
you have any questions about what should be done, please ask!!
2) MAKE SURE YOUR PROGRAM WORKS! (i.e. more than just
removing compile errors). Test it more than once - I will!
6)
Remember:
Indentation, meaningful variable names, symbolic constants, and meaningful
comments. Weaknesses in any of these could result in points off. Also make sure
you put YOUR NAME(s), section, and e-mail address in comments at the beginning
of the program.
Sample Interaction:
Please enter information for the next student
Please enter first name: Michael
Please enter last name: Stipe
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: PS
Please enter number of credits earned so far 45
invalid answer - must be between 0 and 30 - please
re-enter
Please enter number of credits earned so far 31
invalid answer - must be between 0 and 30 - please
re-enter
Please enter number of credits earned so far 30
Please enter number of grade points earned so far
650
invalid answer - must be between 0 and 600 - please
re-enter
Please enter number of grade points earned so far
500
Sorry that number of grade points is impossible for
the number of credits earned
it should not be more than 120
Please enter number of grade points earned so far
100
Please enter current balance due 312560
invalid answer - must be between 0 and 60000 -
please re-enter
Please enter current balance due 312.56
Student 1740 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Peter
Please enter last name: Buck
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: CS
Please enter number of credits earned so far 23
invalid answer - must be between 31 and 60 - please
re-enter
Please enter number of credits earned so far 65
invalid answer - must be between 31 and 60 - please
re-enter
Please enter number of credits earned so far 58
Please enter number of grade points earned so far
125
Please enter current balance due 0
Student 9488 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Mike
Please enter last name: Mills
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 5
invalid answer - please re-enter
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 0
invalid answer - please re-enter
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 3
Please enter major: Music
Please enter number of credits earned so far 55
invalid answer - must be between 61 and 90 - please
re-enter
Please enter number of credits earned so far 92
invalid answer - must be between 61 and 90 - please
re-enter
Please enter number of credits earned so far 88
Please enter number of grade points earned so far
312
Please enter current balance due 10
Student 2455 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Bill
Please enter last name: Berry
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 4
Please enter major: CS
Please enter number of credits earned so far 87
invalid answer - must be between 91 and 150 - please
re-enter
Please enter number of credits earned so far 155
invalid answer - must be between 91 and 150 - please
re-enter
Please enter number of credits earned so far 124
Please enter number of grade points earned so far
310
Please enter current balance due 125.5
Student 1711 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Adam
Please enter last name: Clayton
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: PS
Please enter number of credits earned so far 28
Please enter number of grade points earned so far 75
Please enter current balance due 0
Student 5276 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Adam
Please enter last name: Ant
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: Art
Please enter number of credits earned so far 45
Please enter number of grade points earned so far
129
Please enter current balance due 123
Student 1423 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Elvis
Please enter last name: Costello
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 3
Please enter major: English
Please enter number of credits earned so far 61
Please enter number of grade points earned so far
205
Please enter current balance due 0
Student 2216 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Joe
Please enter last name: Jackson
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 4
Please enter major: CS
Please enter number of credits earned so far 117
Please enter number of grade points earned so far
385
Please enter current balance due 0
Student 8576 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Marshall
Please enter last name: Crenshaw
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: Music
Please enter number of credits earned so far 12
Please enter number of grade points earned so far 48
Please enter current balance due 10
Student 1892 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Nick
Please enter last name: Lowe
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: Music
Please enter number of credits earned so far 58
Please enter number of grade points earned so far
178
Please enter current balance due 0
Student 7954 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: David
Please enter last name: Byrne
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 3
Please enter major: 88
Please enter number of credits earned so far 88
Please enter number of grade points earned so far
291
Please enter current balance due 23
Student 3123 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Eddie
Please enter last name: Vetter
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 4
Please enter major: RR
Please enter number of credits earned so far 121
Please enter number of grade points earned so far
153
Please enter current balance due 400
Student 3411 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Kurt
Please enter last name: Cobain
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: Bus
Please enter number of credits earned so far 29
Please enter number of grade points earned so far 83
Please enter current balance due 0
Student 3874 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Rick
Please enter last name: Ocasek
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: RR
Please enter number of credits earned so far 39
Please enter number of grade points earned so far
135
Please enter current balance due 30
Student 2779 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Eric
Please enter last name: Clapton
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 3
Please enter major: Music
Please enter number of credits earned so far 89
Please enter number of grade points earned so far
231
Please enter current balance due 0
Student 3198 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Thomas
Please enter last name: Dolby
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 4
Please enter major: Science
Please enter number of credits earned so far 102
Please enter number of grade points earned so far
342
Please enter current balance due 32
Student 6502 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Bruce
Please enter last name: Springsteen
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: Eng
Please enter number of credits earned so far 26
Please enter number of grade points earned so far 85
Please enter current balance due 0
Student 8602 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Annie
Please enter last name: Lennox
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: Art
Please enter number of credits earned so far 59
Please enter number of grade points earned so far
167
Please enter current balance due 0
Student 4865 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Dave
Please enter last name: Stewart
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 3
Please enter major: Music
Please enter number of credits earned so far 83
Please enter number of grade points earned so far
234
Please enter current balance due 0
Student 0900 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Chrissie
Please enter last name: Hynde
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 4
Please enter major: RR
Please enter number of credits earned so far 92
Please enter number of grade points earned so far
291
Please enter current balance due 40
Student 6138 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Mark
Please enter last name: Knopfler
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: Music
Please enter number of credits earned so far 25
Please enter number of grade points earned so far 84
Please enter current balance due 0
Student 9344 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Billy
Please enter last name: Idol
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 2
Please enter major: Music
Please enter number of credits earned so far 49
Please enter number of grade points earned so far
169
Please enter current balance due 0
Student 6066 complete
Are there more students to enter (Y / N): y
Please enter information for the next student
Please enter first name: Bob
Please enter last name: Geldoff
Please enter year in school using numbers (1 - Fr; 2
- So; 3 - Jr; 4 - Sr): 1
Please enter major: Soc
Please enter number of credits earned so far 24
Please enter number of grade points earned so far 81
Please enter current balance due 20
Student 1849 complete
Are there more students to enter (Y / N): n
Freshmen:
1892 : Marshall : Crenshaw : 1 : Music : 12.0 : 48.0
: 4.00 : 10.00 :
1849 : Bob :
Geldoff : 1 : Soc : 24.0
: 81.0 : 3.38 : 20.00 :
9344 : Mark : Knopfler : 1 : Music : 25.0 : 84.0
: 3.36 : 0.00 :
1740 : Michael : Stipe : 1 : PS : 30.0 : 100.0
: 3.33 : 312.56 :
8602 : Bruce : Springsteen : 1 : Eng : 26.0
: 85.0 : 3.27 : 0.00 :
3874 : Kurt : Cobain : 1 : Bus : 29.0 : 83.0
: 2.86 : 0.00 :
5276 : Adam : Clayton : 1 : PS : 28.0 : 75.0
: 2.68 : 0.00 :
Sophomores:
2779 : Rick : Ocasek : 2 : RR : 39.0 : 135.0
: 3.46 : 30.00 :
6066 : Billy : Idol : 2 : Music : 49.0 : 169.0 : 3.45 : 0.00 :
7954 : Nick : Lowe : 2 : Music : 58.0 : 178.0
: 3.07 : 0.00 :
1423 : Adam : Ant : 2 : Art : 45.0 : 129.0
: 2.87 : 123.00 :
4865 : Annie : Lennox : 2 : Art : 59.0 : 167.0
: 2.83 : 0.00 :
9488 : Peter : Buck : 2 : CS : 58.0 : 125.0
: 2.16 : 0.00 :
Juniors:
2455 : Mike : Mills : 3 : Music : 88.0 : 312.0
: 3.55 : 10.00 :
2216 : Elvis : Costello : 3 : English : 61.0 : 205.0
: 3.36 : 0.00 :
3123 : David : Byrne : 3 : 88 : 88.0
: 291.0 : 3.31 : 23.00 :
0900 : Dave : Stewart : 3 : Music : 83.0 : 234.0
: 2.82 : 0.00 :
3198 : Eric : Clapton : 3 : Music : 89.0 : 231.0
: 2.60 : 0.00 :
Seniors:
6502 : Thomas : Dolby : 4 : Science : 102.0 : 342.0
: 3.35 : 32.00 :
8576 : Joe : Jackson : 4 : CS : 117.0 : 385.0
: 3.29 : 0.00 :
6138 : Chrissie : Hynde : 4 : RR : 92.0 : 291.0
: 3.16 : 40.00 :
1711 : Bill : Berry : 4 : CS : 124.0 : 310.0
: 2.50 : 125.50 :
3411 : Eddie : Vetter : 4 : RR : 121.0 : 153.0
: 1.26 : 400.00 :
now it is the end of the semester, handle classes
completed
Enter Student ID for next student 2216
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 12.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 9898
Student ID Not Found
Are there more grades to post (Y / N): y
Enter Student ID for next student 3456
Student ID Not Found
Are there more grades to post (Y / N): y
Enter Student ID for next student 3411
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 20.00
Sorry that number of grade points is impossible for
the number of credits
it should not be more than 16.00
Please enter number of credits for the class to be
posted 16.00
invalid answer - must be between 1.00 and 5.00 -
please re-enter
Please enter number of credits for the class to be
posted 0.00
invalid answer - must be between 1.00 and 5.00 -
please re-enter
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 45.00
invalid answer - must be between 0.00 and 20.00 -
please re-enter
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 1740
Please enter number of credits for the class to be
posted 5.00
Please enter number of grade points earned for the
class to be posted 20.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 2455
Please enter number of credits for the class to be
posted 3.00
Please enter number of grade points earned for the
class to be posted 6.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 3198
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 4865
Please enter number of credits for the class to be
posted 3.00
Please enter number of grade points earned for the
class to be posted 12.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 9488
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 2455
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 4.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 0900
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 3874
Please enter number of credits for the class to be
posted 3.00
Please enter number of grade points earned for the
class to be posted 12.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 6066
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 4.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 1111
Student ID Not Found
Are there more grades to post (Y / N): y
Enter Student ID for next student 8576
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 1849
Please enter number of credits for the class to be
posted 3.00
Please enter number of grade points earned for the
class to be posted 9.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 1711
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 16.00
Are there more grades to post (Y / N): y
Enter Student ID for next student 3874
Please enter number of credits for the class to be
posted 4.00
Please enter number of grade points earned for the
class to be posted 12.00
Are there more grades to post (Y / N): n
Freshmen:
1892 : Marshall : Crenshaw : 1 : Music : 12.0 : 48.0
: 4.00 : 10.00 :
9344 : Mark : Knopfler : 1 : Music : 25.0 : 84.0
: 3.36 : 0.00 :
1849 : Bob : Geldoff : 1 : Soc : 27.0 : 90.0
: 3.33 : 20.00 :
8602 : Bruce : Springsteen : 1 : Eng : 26.0
: 85.0 : 3.27 : 0.00 :
5276 : Adam : Clayton : 1 : PS : 28.0 : 75.0 : 2.68 : 0.00 :
Sophomores:
2779 : Rick : Ocasek : 2 : RR : 39.0 : 135.0
: 3.46 : 30.00 :
1740 : Michael : Stipe : 2 : PS : 35.0 : 120.0
: 3.43 : 312.56 :
6066 : Billy : Idol : 2 : Music : 53.0 : 173.0
: 3.26 : 0.00 :
7954 : Nick : Lowe : 2 : Music : 58.0 : 178.0
: 3.07 : 0.00 :
3874 : Kurt : Cobain : 2 : Bus : 36.0 : 107.0
: 2.97 : 0.00 :
1423 : Adam : Ant : 2 : Art : 45.0 : 129.0
: 2.87 : 123.00 :
Juniors:
2216 : Elvis : Costello : 3 :
English : 65.0 : 217.0 : 3.34 : 0.00 :
3123 : David : Byrne : 3 : 88 : 88.0 : 291.0
: 3.31 : 23.00 :
4865 : Annie : Lennox : 3 : Art : 62.0 : 179.0
: 2.89 : 0.00 :
0900 : Dave : Stewart : 3 : Music : 87.0 : 250.0
: 2.87 : 0.00 :
9488 : Peter : Buck : 3 : CS : 62.0 : 141.0
: 2.27 : 0.00 :
Seniors:
2455 : Mike : Mills : 4 : Music : 95.0 : 322.0
: 3.39 : 10.00 :
6502 : Thomas : Dolby : 4 : Science : 102.0 : 342.0
: 3.35 : 32.00 :
8576 : Joe : Jackson : 4 : CS : 121.0 : 401.0
: 3.31 : 0.00 :
6138 : Chrissie : Hynde : 4 : RR : 92.0 : 291.0
: 3.16 : 40.00 :
3198 : Eric : Clapton : 4 : Music : 93.0 : 247.0 : 2.66 : 0.00 :
1711 : Bill : Berry : 4 : CS : 128.0 : 326.0
: 2.55 : 125.50 :
3411 : Eddie : Vetter : 4 : RR : 125.0 : 169.0
: 1.35 : 400.00 :