Skip to content

cesrebol/class-roster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student Roster System

Overview

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.

Features

The application includes the following functionalities:

  1. Student Management: Maintains a roster of students, including details such as student ID, name, email address, age, and degree program.
  2. Data Parsing and Storage: Reads and processes student data from a predefined dataset into an array of objects.
  3. Invalid Email Detection: Identifies and displays invalid email addresses based on given criteria.
  4. Average Days Calculation: Calculates and displays the average number of days each student spends on courses.
  5. Degree Program Filtering: Filters and displays students by their degree program.
  6. Dynamic Memory Management: Ensures proper memory allocation and cleanup using constructors and destructors.

Project Structure

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 and student.cpp: Implements the Student class for managing individual student data.
  • roster.h and roster.cpp: Implements the Roster class for managing the list of students and their associated operations.
  • main.cpp: Contains the main() function and demonstrates the functionality of the application.

Tools and Environment

  • Programming Language: C++
  • Integrated Development Environment (IDE): Visual Studio or Xcode
  • Platform: Windows or macOS

Motivation

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.

Learning Outcomes

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

Usage

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.

Contact

If you have any questions or would like to learn more about this project, feel free to reach out to me:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages