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 :