/* textbook.h * Summary: Defines the Textbook class. * Author: Zoltan Szabatin * Created: September 26th, 2023 */ #ifndef TEXTBOOK_HH #define TEXTBOOK_HH #include namespace wk1_reviewProgram_zSzabatin { class Textbook { private: // Input values uint64_t code_; double single_copy_price_; uint64_t number_on_hand_; uint64_t prospective_enrollment_; bool is_required_; bool _is_used; // Fix 6 byte misalignment const char PADDING[6] = {0}; // Evaluated values uint64_t amount_to_order_ = {0}; double total_cost_ = {0}; public: // Constructors Textbook(uint64_t code, double single_copy_price, uint64_t number_on_hand, uint64_t prospective_enrollment, bool required, bool used) : code_(code), single_copy_price_(single_copy_price), number_on_hand_(number_on_hand), prospective_enrollment_(prospective_enrollment), is_required_(required), _is_used(used) {} Textbook() : Textbook(0, 0, 0, 0, false, false) {} // Getters uint64_t GetCode() const; double GetSingleCopyPrice() const; uint64_t GetNumberOnHand() const; uint64_t GetProspectiveEnrollment() const; bool GetIsRequired() const; bool GetIsUsed() const; uint64_t GetAmountToOrder() const; double GetTotalCost() const; // Setters void SetCode(uint64_t); void SetSingleCopyPrice(double); void SetNumberOnHand(uint64_t); void SetProspectiveEnrollment(uint64_t); void SetIsRequired(bool); void SetIsUsed(bool); // Procedures void EvaluateNeeds(); // Printers void Print() const; void PrintNeeds() const; // Operator overloads bool operator==(const Textbook &) const; bool operator!=(const Textbook &) const; }; } // namespace wk1_reviewProgram_zSzabatin #endif