Giter VIP home page Giter VIP logo

movie-store's Introduction

Movie Store Simulator

Project Information

Authors: Bill Zhao, Lucas Bradley

Project Description

The files in this repository are the submissions of Assignment 4: Movies of CSS 343 at the UW. This project was pair programmed by Bill Zhao and Lucas Bradley in March 2020.

This project fully utilizes the benefits of polymorphism and factory patterns of Object-oriented programming. In which, each functionality at different levels are being factored into smaller classes for changeability and simplicity.

This movie rental store simulator allows customers to easily add genres, types of media, and additional movies to the existing program. Currently, "borrow", "return", "inventory", and "history" are being implemented as the core functionality and more could be added with additional classes.

Project Checklist

Development Platform: Microsoft Windows

Tested on Linux Lab: YES!

Tested on Travis CI: YES!

Fixed clang-tidy messages: YES!

Fixed valgrind messages: YES!

Command Functionality Checklist

Inventory: Fully implemented!

History: Fully implemented!

Borrow: Fully implemented!

Return: Fully implemented!

Location of error message or functionality

State the file and function where the information can be found

invalid command code: The request besides the allowed functions will be denied

invalid movie type: The movie will not be created and the program will continue to operate under the original state

invalid customer ID: The customer will not be created and such customer-related functions cannot be used, all access denied

invalid movie: The movie that are duplicate, or with missing information cannot be created and all related functions are automatically ignored until all information are gathered.

factory classes: defined in factory.cpp.
'F' stands for comedy, 'C' stands for classic, 'D' stands for drama.

hashtable: hashtable is the container for all movies, with a string as its value and a movie pointer to the corresponding movie

container used for comedy movies: comedy movies are stored in the hashtable with its unique identifier f.

function for sorting comedy movies: defined in transaction.cpp.

function where comedy movies are sorted: sorting elements are defined in comedy.cpp.

functions called when retrieving a comedy movie based on title and year: the function std::string Comedy::sortingElement() will be called to identify the order of comedy movies and retrieve the movie according to the given title and year.

functions called for retrieving and printing customer history: void printHistory() const in customer.cpp.

container used for customer history: a vector of all transactions.

functions called when borrowing a movie: depending on the genre, it will call the borrow function in the corresponding class.

explain borrowing a movie that does not exist: the corresponding request will be denied and the transaction is failed because it can not be found in the store inventory.

explain borrowing a movie that has 0 stock: the corresponding request will be denied and the transaction is failed because there is no more movies to borrow.

explain returning a movie that customer has not checked out: the corresponding request will be accepted and the transaction is recorded because the movie could be returned by a friend of the original borrower.

any static_cast or dynamic_cast: most functions are inherited and none are casted currently

movie-store's People

Contributors

iambillzhao avatar

Stargazers

 avatar

Watchers

 avatar

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.