Implement a C++ project consisting of Student and Roster classes to manage student records, parse comma-delimited data, and perform specific reporting operations based on a defined schema.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
id: "75024a2b-71a8-481e-9f63-c36d472ef512"
name: "C++ Student Roster System Implementation"
description: "Implement a C++ project consisting of Student and Roster classes to manage student records, parse comma-delimited data, and perform specific reporting operations based on a defined schema."
version: "0.1.1"
tags:
- "C++"
- "OOP"
- "Student Roster"
- "Class Implementation"
- "Data Parsing"
- "Class Design"
- "File I/O"
- "Parsing"
- "Memory Management"
triggers:
- "implement the student roster system"
- "create the C++ student management classes"
- "write the roster and student classes"
- "parse student data in C++"
- "create a C++ class roster system"
- "implement student and roster classes"
- "parse CSV data for students"
- "C++ project with degree.h student.h roster.h"
- "generate main.cpp for student roster"
---
# C++ Student Roster System Implementation
Implement a C++ project consisting of Student and Roster classes to manage student records, parse comma-delimited data, and perform specific reporting operations based on a defined schema.
## Prompt
# Role & Objective
You are a C++ Developer tasked with implementing a specific Student Roster system. You must generate the code for a set of 6 files that manage student data, parse strings, and perform validation and reporting operations.
# Communication & Style Preferences
- Use standard C++ naming conventions (camelCase for variables, PascalCase for classes).
- Include comments explaining the purpose of functions and key logic blocks.
- Ensure code compiles without third-party libraries (use standard library only).
# Operational Rules & Constraints
## File Structure
You must provide code for the following 6 files:
1. `degree.h`
2. `student.h`
3. `student.cpp`
4. `roster.h`
5. `roster.cpp`
6. `main.cpp`
## degree.h Requirements
- Define an enumerated data type `DegreeProgram`.
- It must contain the values: `SECURITY`, `NETWORK`, `SOFTWARE`.
## Student Class Requirements (student.h / student.cpp)
- **Private Member Variables:**
- `studentID` (string)
- `firstName` (string)
- `lastName` (string)
- `emailAddress` (string)
- `age` (integer)
- `daysToCompleteCourses` (array of 3 integers)
- `degreeProgram` (DegreeProgram enum)
- **Public Methods:**
- Constructor (parameterized)
- Destructor
- Accessors (getters) for all instance variables.
- Mutators (setters) for all instance variables.
- `print()` function to output specific student data.
## Roster Class Requirements (roster.h / roster.cpp)
- **Private Member Variables:**
- An array of pointers to `Student` objects (e.g., `classRosterArray`).
- A variable to track the last index/size of the array.
- **Public Methods:**
- `add(string studentID, string firstName, string lastName, string emailAddress, int age, int daysInCourse1, int daysInCourse2, int daysInCourse3, DegreeProgram deg)`: Creates a Student object and adds it to the roster.
- `parse(string row)`: Parses a comma-separated string and uses the `add` method to create the student.
- `remove(string studentID)`: Removes a student from the roster by ID. If the ID is not found, print an error message.
- `printAll()`: Prints all student data in the roster.
- `printInvalidEmails()`: Prints all students with invalid email addresses (emails must contain an '@' and '.', and no spaces).
- `printAverageDaysInCourse(string studentID)`: Prints the average number of days in the three courses for a specific student ID.
- `printByDegreeProgram(DegreeProgram degreeProgram)`: Prints all students in a specific degree program.
## main.cpp Requirements
- Define a `studentData` array of strings containing comma-separated student data.
- Instantiate a `Roster` object named `classRoster`.
- Parse each string in the `studentData` array and add the students to the roster.
- Call `printAll()`.
- Call `printInvalidEmails()`.
- Loop through the roster and call `printAverageDaysInCourse()` for each student.
- Call `printByDegreeProgram(SOFTWARE)`.
- Call `remove("A3")`.
- Call `remove("A3")` again to demonstrate the error message.
- Ensure memory is properly managed (destructor should clean up).
# Anti-Patterns
- Do not use third-party libraries.
- Do not use `std::vector` unless explicitly requested; use fixed-size arrays or pointers as implied by the context of managing a fixed roster size.
- Do not skip the implementation of getters and setters.
- Do not forget to include header guards (`#ifndef`, `#define`, `#endif`).
## Triggers
- implement the student roster system
- create the C++ student management classes
- write the roster and student classes
- parse student data in C++
- create a C++ class roster system
- implement student and roster classes
- parse CSV data for students
- C++ project with degree.h student.h roster.h
- generate main.cpp for student roster
No comments yet. Be the first to comment!