This project is a C++ application I developed to deepen my understanding of object-oriented programming and data management. It focuses on creating and managing a dynamic roster of students, demonstrating practical solutions for handling and manipulating structured data.
The application includes the following functionalities:
- Student Management: Maintains a roster of students, including details such as student ID, name, email address, age, and degree program.
- Data Parsing and Storage: Reads and processes student data from a predefined dataset into an array of objects.
- Invalid Email Detection: Identifies and displays invalid email addresses based on given criteria.
- Average Days Calculation: Calculates and displays the average number of days each student spends on courses.
- Degree Program Filtering: Filters and displays students by their degree program.
- Dynamic Memory Management: Ensures proper memory allocation and cleanup using constructors and destructors.
The project is designed with modularity and scalability in mind, using the following files:
degree.h
: Defines the enumerated data type for degree programs.student.h
andstudent.cpp
: Implements theStudent
class for managing individual student data.roster.h
androster.cpp
: Implements theRoster
class for managing the list of students and their associated operations.main.cpp
: Contains themain()
function and demonstrates the functionality of the application.
- Programming Language: C++
- Integrated Development Environment (IDE): Visual Studio or Xcode
- Platform: Windows or macOS
I created this project as an opportunity to build a robust application from scratch, focusing on implementing object-oriented programming concepts in C++. My goal was to create a system that could effectively manage, analyze, and manipulate data while adhering to best practices in software design.
Through this project, I enhanced my skills in:
- Object-oriented programming and class design
- Parsing and validating data
- Implementing accessor and mutator functions
- Managing dynamic memory in C++
- Structuring and organizing modular codebases
This repository is intended to showcase the design and implementation of the project. The source code itself is not included to maintain the focus on concepts and outcomes. If you'd like to discuss the project or request further details, feel free to contact me.
If you have any questions or would like to learn more about this project, feel free to reach out to me:
- Email: rebol.ces@gmail.com
- LinkedIn: cesrebol