Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CS2 Project

Objective:

You will add, modify or extend a class such as University Member,  Student or Course. You can have multiple classes in the same program, or create multiple programs.

The number of elements you build from this list (or any you define with my approval) will determine your grade:

1:  C (70)

2:  B (82)

3:  A- (92)

4+:  A (100)

For each object (each count as +1 for each class )

· I/O parsing a new file for new class with new functionality (e.g. including time)

· Inheritance

· Friend function

· Overloading (Any, including: +, << or >>)

· New Dynamic objects

· Templates

· New, object related to current UM & Student with accessors and mutators.

o Example: Course 

· Others you clear with me -

Counts as +2: New application functionality

Counts as +1: your code in github account

Show your code in the github account.

a) See instructions written by Oscar

b) Share your repository with me (you can use my Fordham email).

2) Inside the Blackboard Exam upload:

a) A readme.doc (Word file) file that includes:

· A list of the main functionality of the program

Include a list of features you believe you’ve demonstrated (and points you believe you’ve earned).

Example:

Extended Student to:

+1 Overload >>   // demonstrated by reading from student.txt

+1 Inherit from UM

+1 Copied files to github, under ID xxx and shared with me

b) A zip file with all files required, including any input (data) files and any output files you might include that show your sample output

How to Zip:

1) Be sure all of your files, are in one directory, which might include a subdirectory, example :

finalProj

On Mac

Open the terminal and navigate to the parent folder of your finalProj folder:

zip -r finalProj.zip finalProj

general description is:  zip -r archive_name.zip folder_to_compress

On Linux (storm)

Navigate to the parent folder of your finalProj folder:

zip -r finalProj.zip finalProj

general description is:  zip -r archive_name.zip folder

On Windows

Navigate to the parent folder of your finalProj folder, and right click.

Select Compress to ZIP file

 

c) If you have multiple projects, please zip each code package separately, including: .cpp .h input and sample output files. I should be able to build and run your code. It is also wise to show sample output (or interaction) for each of your programs.

There should be ONE readme.doc describing the points for each project.

d) Upload all files to BB FinalProject – submit here, (yes, this may be redundant with github), but this ensures your submission is received.

e) Be sure to comment each file with your username, be sure to comment properly, and use proper syntax and style.

Examples & ideas:

You may choose any number of these or define your own.

1) Derive Student and/or Profs from UniversityMember.

a. Read from a file, reading and writing the resulting Student into a new output file from a vector of Students

b. Overload << to write the Student object (and demonstrate it) +1

c. Overload >> to read the Student object (and demonstrate it) +1

2) Read Courses (tab delimited, or you can generate your own from the Courses2023.xlsx file)

a. Generate professor list along with IDs. Save to a file +1

b. Show all courses for a given professor or student +1

i. Create a useful schedule showing a grid of M-F and time blocks with Course# and section +2

c. Read in: a student file with list of course CRNs

i. Show all courses for a given student +2

ii. Determine if a student has courses that overlap in time, and output this error to an error file. +2

iii. A function that adds a student to a course. Consider adding by ID +2

iv. Give the roster of students for a particular course, not allowing over 30 students +2

d. Read in: course listing

i. Produce a list of courses that overlap based on their timeslot +1

· Consider an overload for == indicating time overlap +1 

3) IDs Read prof and student names.

a. Extract Prof names from CoursesFall2023 and generate IDs.

i. Save a file of Profs with their IDs +1

b. Generate IDs for Prof and Student and store them into a file that could be subsequently read. +1

c. Read the Prof & Student IDs, determining the largest value to set as the next available FID. +1

d. Add new students, generating FIDs and appending to the existing student file. +1

4) Email username:
Generate unique usernames based on first initial and last name. If a username is already taken, then add an increasing numeral to it.

a. Output the student name, username and ID to a second file +2

Example input file:

Smith, Mary 

and later on there is

Smith, Michelle 

Output to a file, maybe ‘existingStudents.txt’

Consider overloading the << 

It might look like:

Mary Smith,A0000001,msmith

Michelle Smith,A0000002,msmith2

(or msmith1 if you want - just as long as they are different. )

b. Create a way to read in the file above and set Student values. +2

Here, each student might be read in and the ID would be set explicitly.

Consider overloading the >> operator

Data

You may use any past data sets or create new ones.

I’ve generated some Data Files for you, available on Blackboard.

Currently:

 CoursesFall2023.xlsx

StudentsWithCRNs.xlsx

And derived text files in tab delimited format.

This list may expand over time.

You may adapt the data for your use, such as removing unneeded columns or other reformatting. You may also generate your own data but be sure to include it in your project submission.

Discuss any needs or different ideas with me.