Coder Social home page Coder Social logo

integration-project's Introduction

Integration Project

In this project, I will be implementing OOP skills into the creation of a console application using C++. This is a student gradebook system that allows for different kinds of users to access the system. You can log in as either a student or a professor and utilize unique methods depending on the user type. The program interacts with the user through a console window, and the control flow is intuitive when navigating through the different options. I worked on this project individually throught the semester, and came up with all of the design and implementation. This project was made in Fall 2021 and my level of proficiency at the time was at a Programming II level. It was made as a semester long assignment, and was difficult but I met the majority of the requirements diligently.

Demonstration

Animation

Documentation

https://amlopez5841.github.io/Integration-Project/html/

Diagrams

Course
course

User
user

Professor
professor

Student
student

Getting Started

You will have to clone this github repository onto your own device using Visual Studio 2019. From there, nothing special has to be done to run the project. Make sure to run the main file with the windows debugger to start the program.

Built With

  • Visual Studio 2019

Contributing

Any contributions are worthwhile, the student functionality of the program has room to improve.

Author

Alexis Lopez

Key Programming Concepts Utilized

LO1. Design and implement a class.

LO4. Include a comment in which you compare and contrast the procedural/functional approach and the object-oriented approach

LO1a. At least one class in a header file with non-trivial methods implemented in a cpp file

LO1b. Overload a constructor

LO1c. Utilize an initialization list

LO2. Use subclassing to design simple class hierarchies that allow code to be reused for distinct subclasses.

LO2a. Include comments describing the visibility inheritance model

LO3. Correctly reason about control flow in a program using dynamic dispatch.

LO5. Explain the relationship between object-oriented inheritance (code-sharing and overriding) and subtyping (the idea of a subtype being usable in a context that expects the supertype).

LO6. Use object-oriented encapsulation mechanisms such as interfaces and private members.

LO7. Define and use iterators and other operations on aggregates, including operations that take functions as arguments.

Follow best practices for style and readability

Follow best practices for documentation

Include class diagrams for all classes in Readme

LO4. Include a comment in which you compare and contrast the procedural/functional approach and the object-oriented approach

Object oriented programming is based all around objects while Procedural is based around functions. OOP has the advantage of having access to Polymorphism, Inheritance, and Encapsulation, which procedural does not. OOP is better suited to mid to large scale coding projects whilst Procedural can be done at the very small scale OOP is based entirely on reusing code without having to make drastic changes that occcurs when you edit code in procedural. OOP provides information hiding (Encapsulation) so it is safer than using procedural (private info can be used by anyone). OOP makes it possible to overload, whereas it is not possible in procedural. Without inheritance, polymorphism is impossible.The heart of polymorphism is overridding. (Sub classes will override the methods within the base class). Interface classes: no member variables and all pure virtual functions.

LO2a. Include comments describing the visibility inheritance model

Courses is the base class and User is the derived class to the Courses class. The User class inherits from the Courses base class as well. The Student and Professor classes are derived classes that inherit from the User class.

LO5. Explain the relationship between object-oriented inheritance (code-sharing and overriding) and subtyping (the idea of a subtype being usable in a context that expects the supertype).

Subtyping: is a type of polymorphism known as inclusion polymorphism. It is accessing the derived classes through the base classes with pointers and references (virtual functions are an example).

Object Oriented Inheritance: Through subtyping this allows us to override the virtual function that we created which allows us to achieve object oriented inheritance. Other methods to achieve overriding through object oriented inheritance would include using templates.

and more! (Covered as comments in the project)

Errors

warnings

integration-project's People

Contributors

alexismlopez avatar

Watchers

 avatar

integration-project's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.