From df15fdffede1a09f3e1236979038b6611535e9d7 Mon Sep 17 00:00:00 2001 From: lfirmin Date: Fri, 14 Nov 2025 23:54:16 +0100 Subject: [PATCH] h1 --- ex00/Bureaucrat | Bin 28464 -> 0 bytes ex00/obj/Bureaucrat.o | Bin 14256 -> 0 bytes ex00/obj/Main.o | Bin 10344 -> 0 bytes ex01/Bureaucrat.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++ ex01/Bureaucrat.hpp | 39 +++++++++++++++++++++++ ex01/Form.cpp | 41 ++++++++++++++++++++++++ ex01/Form.hpp | 30 ++++++++++++++++++ ex01/Main.cpp | 48 ++++++++++++++++++++++++++++ ex01/Makefile | 36 +++++++++++++++++++++ 9 files changed, 266 insertions(+) delete mode 100755 ex00/Bureaucrat delete mode 100644 ex00/obj/Bureaucrat.o delete mode 100644 ex00/obj/Main.o create mode 100644 ex01/Bureaucrat.cpp create mode 100644 ex01/Bureaucrat.hpp create mode 100644 ex01/Form.cpp create mode 100644 ex01/Form.hpp create mode 100644 ex01/Main.cpp create mode 100644 ex01/Makefile diff --git a/ex00/Bureaucrat b/ex00/Bureaucrat deleted file mode 100755 index 807c307589431ceea2dd5c57d62d6e0795a562e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28464 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 D3Akky diff --git a/ex01/Bureaucrat.cpp b/ex01/Bureaucrat.cpp new file mode 100644 index 0000000..3e9ffae --- /dev/null +++ b/ex01/Bureaucrat.cpp @@ -0,0 +1,72 @@ +#include "Bureaucrat.hpp" + +Bureaucrat::Bureaucrat() : _name("default"), _grade(150) +{ +} + +Bureaucrat::Bureaucrat(const Bureaucrat ©) : _name(copy._name), _grade(copy._grade) +{ +} + +Bureaucrat::Bureaucrat(const std::string name, int grade) : _name(name) +{ + if (grade < 1) + throw GradeTooHighException(); + else if (grade > 150) + throw GradeTooLowException(); + else + _grade = grade; +} + +Bureaucrat &Bureaucrat::operator=(const Bureaucrat &other) +{ + if (this != &other) + _grade = other._grade; + return (*this); +} + +Bureaucrat::~Bureaucrat() +{ +} + +std::string Bureaucrat::getName() const +{ + return (_name); +} + +int Bureaucrat::getGrade() const +{ + return (_grade); +} + +void Bureaucrat::incrementGrade() +{ + if (_grade == 1) + throw GradeTooHighException(); + else + _grade--; +} + +void Bureaucrat::decrementGrade() +{ + if (_grade == 150) + throw GradeTooLowException(); + else + _grade++; +} + +std::ostream &operator<<(std::ostream &os, Bureaucrat const &other) +{ + os << other.getName() << ", bureaucrat grade " << other.getGrade() << std::endl; + return (os); +} + +const char *Bureaucrat::GradeTooHighException::what() const throw() +{ + return ("Grade too high!"); +} + +const char *Bureaucrat::GradeTooLowException::what() const throw() +{ + return ("Grade too low!"); +} diff --git a/ex01/Bureaucrat.hpp b/ex01/Bureaucrat.hpp new file mode 100644 index 0000000..acbacac --- /dev/null +++ b/ex01/Bureaucrat.hpp @@ -0,0 +1,39 @@ +#ifndef BUREAUCRAT_HPP +#define BUREAUCRAT_HPP + +#include +#include +#include + +class Bureaucrat +{ + private: + const std::string _name; + int _grade; + + public: + Bureaucrat(); + Bureaucrat(const std::string _name, int _grade); + Bureaucrat(const Bureaucrat ©); + Bureaucrat &operator=(const Bureaucrat &other); + + std::string getName() const; + int getGrade() const; + void incrementGrade(); + void decrementGrade(); + + class GradeTooHighException : public std::exception + { + public: + virtual const char *what() const throw(); + }; + class GradeTooLowException : public std::exception + { + public: + virtual const char *what() const throw(); + }; +}; + +std::ostream &operator<<(std::ostream &os, Bureaucrat const &other); + +#endif diff --git a/ex01/Form.cpp b/ex01/Form.cpp new file mode 100644 index 0000000..cf77e88 --- /dev/null +++ b/ex01/Form.cpp @@ -0,0 +1,41 @@ +#include "Form.hpp" + +Bureaucrat::Bureaucrat() +{ +} + +Form::Form() : _name("Default"), _signed(false), _grade_si(150), _grade_ex(150) +{ +} + +Form::Form(const std::string name, const int grade_si, const int grade_ex) : _name(name), _signed(false), _grade_si(grade_si), _grade_ex(grade_ex) +{ +} + +Form::Form(const Form &other) : _name(other._name), _signed(other._signed), _grade_si(other._grade_si), _grade_ex(other._grade_ex) +{ +} + +Form::~Form() +{ +} + +std::string Form::getName() const +{ + return (_name); +} + +bool Form::getSigned() const +{ + return (_signed); +} + +int Form::getExecuteGrade() const +{ + return (_grade_ex); +} + +int Form::getSignGrade() const +{ + return (_grade_si); +} diff --git a/ex01/Form.hpp b/ex01/Form.hpp new file mode 100644 index 0000000..eef2189 --- /dev/null +++ b/ex01/Form.hpp @@ -0,0 +1,30 @@ +#ifndef FORM_HPP +#define FORM_HPP + +#include +#include +#include +#include "Bureaucrat.hpp" + +class Form +{ + private: + const std::string _name; + bool _signed; + const int _grade_ex; + const int _grade_si; + + public: + Form(); + Form(const std::string name, const int grade_si, const int grade_ex); + Form(const Form &other); + ~Form(); + Form &operator=(const Form &other); + + void beSigned(const Bureaucrat &bureaucrat); + std::string getName() const; + bool getSigned() const; + int getExecuteGrade() const; + int getSignGrade() const; +}; +#endif diff --git a/ex01/Main.cpp b/ex01/Main.cpp new file mode 100644 index 0000000..8f68194 --- /dev/null +++ b/ex01/Main.cpp @@ -0,0 +1,48 @@ +#include "Bureaucrat.hpp" + +int main(void) +{ + Bureaucrat cat("Moulinette", 1); + Bureaucrat stud("Student", 150); + std::cout << std::endl << "---Test too high/low create---" << std::endl; + try { + Bureaucrat test("test", 1500); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + try { + Bureaucrat test1("test2", -10); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + std::cout << std::endl << "---Test too high/low in/de---" << std::endl; + std::cout << cat; + try { + cat.incrementGrade(); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + std::cout << stud; + try { + stud.decrementGrade(); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + std::cout << std::endl << "---Test increment---" << std::endl; + std::cout << stud; + try { + stud.incrementGrade(); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + std::cout << stud; + std::cout << std::endl << "---Test decrement---" << std::endl; + std::cout << cat; + try { + cat.decrementGrade(); + } catch (const std::exception &e) { + std::cerr << "Exception caught: " << e.what() << std::endl; + } + std::cout << cat; + return (0); +} diff --git a/ex01/Makefile b/ex01/Makefile new file mode 100644 index 0000000..fbdebbf --- /dev/null +++ b/ex01/Makefile @@ -0,0 +1,36 @@ +CXX = c++ +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +OBJDIR = obj +SOURCES = Main.cpp Bureaucrat.cpp +OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) +NAME = Bureaucrat + +all: $(NAME) + +$(OBJDIR): + @echo "๐Ÿ“ Creating obj directory..." + @mkdir -p $(OBJDIR) + +$(OBJDIR)/%.o: %.cpp | $(OBJDIR) + @echo "๐Ÿง  Compiling $< ..." + @$(CXX) $(CXXFLAGS) -c $< -o $@ + @echo "โœ… $@ ready!" + +$(NAME): $(OBJECTS) + @echo "๐Ÿ”— Linking $(NAME) ..." + @$(CXX) $(CXXFLAGS) $(OBJECTS) -o $(NAME) + @echo "๐ŸŽ‰ $(NAME) is ready!" + +clean: + @echo "๐Ÿงน Cleaning object files..." + @rm -rf $(OBJDIR) + @echo "โœจ Objects cleaned!" + +fclean: clean + @echo "๐Ÿ—‘๏ธ Removing $(NAME)..." + @rm -f $(NAME) + @echo "๐Ÿ’€ Full clean complete!" + +re: fclean all + +.PHONY: all clean fclean re