From 7f81562db34b266ea18efd63344ff87e79a6d12b Mon Sep 17 00:00:00 2001 From: aortigos Date: Tue, 17 Feb 2026 10:55:21 +0100 Subject: [PATCH] ex02 created --- ex02/AForm/AForm.cpp | 124 ++++++++++++++++++++++++++++++ ex02/AForm/AForm.hpp | 56 ++++++++++++++ ex02/AForm/AForm.o | Bin 0 -> 42888 bytes ex02/Bureaucrat/Bureaucrat.cpp | 136 +++++++++++++++++++++++++++++++++ ex02/Bureaucrat/Bureaucrat.hpp | 56 ++++++++++++++ ex02/Bureaucrat/Bureaucrat.o | Bin 0 -> 36512 bytes ex02/Makefile | 43 +++++++++++ ex02/form | Bin 0 -> 47424 bytes ex02/main.cpp | 35 +++++++++ ex02/main.o | Bin 0 -> 23752 bytes 10 files changed, 450 insertions(+) create mode 100644 ex02/AForm/AForm.cpp create mode 100644 ex02/AForm/AForm.hpp create mode 100644 ex02/AForm/AForm.o create mode 100644 ex02/Bureaucrat/Bureaucrat.cpp create mode 100644 ex02/Bureaucrat/Bureaucrat.hpp create mode 100644 ex02/Bureaucrat/Bureaucrat.o create mode 100644 ex02/Makefile create mode 100755 ex02/form create mode 100644 ex02/main.cpp create mode 100644 ex02/main.o diff --git a/ex02/AForm/AForm.cpp b/ex02/AForm/AForm.cpp new file mode 100644 index 0000000..974a5f3 --- /dev/null +++ b/ex02/AForm/AForm.cpp @@ -0,0 +1,124 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* AForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos 150 || gradeToExecute > 150) + throw GradeTooLowException(); + else if (gradeToSign < 1 || gradeToExecute < 1) + throw GradeTooHighException(); + //std::cout << "AForm constructor with params called" << std::endl; +} + +AForm::AForm(const AForm &other) : + name (other.getName()), isSigned(other.getIsSigned()), + gradeToSign(other.getGradeToSign()), + gradeToExecute(other.getGradeToExecute()) +{ + //std::cout << "AForm copy constructor called" << std::endl; +} + +AForm& AForm::operator=(const AForm &other) +{ + if (this != &other) + this->isSigned = other.getIsSigned(); + //std::cout << "AForm copy assigment operator called" << std::endl; + return (*this); +} + +AForm::~AForm() +{ + //std::cout << "Destructor called" +} + +////////////////// +// Getters // +////////////////// + +std::string AForm::getName() const +{ + return (this->name); +} + +bool AForm::getIsSigned() const +{ + return (this->isSigned); +} + +int AForm::getGradeToSign() const +{ + return (this->gradeToSign); +} + +int AForm::getGradeToExecute() const +{ + return (this->gradeToExecute); +} + + +////////////////// +// SignAForm // +////////////////// + +void AForm::beSigned(const Bureaucrat &br) +{ + if (this->gradeToSign < br.getGrade()) + throw GradeTooLowException(); + this->isSigned = true; +} + + +////////////////// +// << // +////////////////// + +std::ostream& operator<<(std::ostream &os, const AForm &form) +{ + std::string isItSigned; + + if (form.getIsSigned()) + { + isItSigned = " is signed."; + } else { + isItSigned = " is not signed."; + } + + os << form.getName() << isItSigned; + return (os); +} + + +////////////////// +// Excepciones // +////////////////// +const char* AForm::GradeTooLowException::what() const throw() +{ + return ("grade too low"); +} + +const char* AForm::GradeTooHighException::what() const throw() +{ + return ("grade too high"); +} \ No newline at end of file diff --git a/ex02/AForm/AForm.hpp b/ex02/AForm/AForm.hpp new file mode 100644 index 0000000..b7bc942 --- /dev/null +++ b/ex02/AForm/AForm.hpp @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* AForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos +# include "../Bureaucrat/Bureaucrat.hpp" + +class AForm +{ + private: + const std::string name; + bool isSigned; + const int gradeToSign; + const int gradeToExecute; + + public: + AForm(); + AForm(const AForm &other); + AForm& operator=(const AForm &other); + ~AForm(); + + AForm(std::string name, bool isSigned, int gradeToSign, int gradeToExecute); + + std::string getName() const; + bool getIsSigned() const; + int getGradeToSign() const; + int getGradeToExecute() const; + + void beSigned(const Bureaucrat &br); + + class GradeTooLowException : public std::exception { + public: + virtual const char *what() const throw(); + }; + + class GradeTooHighException : public std::exception { + public: + virtual const char *what() const throw(); + }; +}; + +std::ostream& operator<<(std::ostream &os, const AForm &AForm); + +#endif diff --git a/ex02/AForm/AForm.o b/ex02/AForm/AForm.o new file mode 100644 index 0000000000000000000000000000000000000000..959189ed6cc192d8e5a3228cd201c05134b0767a GIT binary patch literal 42888 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 k`N=%I!plng=4fby*Fi%N_8*D2@eedgrade = other.getGrade(); + //std::cout << "Copy operator called" << std::endl; + return (*this); +} + +Bureaucrat::~Bureaucrat() +{ + //std::cout << "Bureaucrat destroyed" << std::endl; +} + +Bureaucrat::Bureaucrat(std::string name, int grade) : name(name) +{ + if (grade > 150) + throw GradeTooLowException(); + else if (grade < 1) + throw GradeTooHighException(); + this->grade = grade; + //std::cout << "Bureaucrat with params has been created" << std::endl; +} + + +////////////////// +// Getters // +////////////////// + +std::string Bureaucrat::getName() const +{ + return (this->name); +} + +int Bureaucrat::getGrade() const +{ + return (this->grade); +} + + +////////////////// +// Grade // +////////////////// + +void Bureaucrat::incrementGrade() +{ + if (this->grade <= 1) + throw GradeTooHighException(); + this->grade--; +} + +void Bureaucrat::decrementGrade() +{ + if (this->grade >= 150) + throw GradeTooLowException(); + this->grade++; +} + +////////////////// +// Sign // +////////////////// + +void Bureaucrat::signForm(AForm &form) +{ + try { + form.beSigned(*this); + std::cout << this->name + << " signed " + << form.getName() + << std::endl; + } catch (std::exception &e) { + std::cout << this->name + << " couldn't sign " + << form.getName() + << " because " + << e.what() + << std::endl; + } +} + + +////////////////// +// << // +////////////////// + +std::ostream &operator<<(std::ostream &os, const Bureaucrat &bureaucrat) +{ + os << bureaucrat.getName() + << ", bureaucrat grade " + << bureaucrat.getGrade() + << std::endl; + return (os); +} + + +////////////////// +// Excepciones // +////////////////// + +const char* Bureaucrat::GradeTooHighException::what() const throw() +{ + return ("Grade is too high!"); +} + +const char* Bureaucrat::GradeTooLowException::what() const throw() +{ + return ("Grade is too low!"); +} diff --git a/ex02/Bureaucrat/Bureaucrat.hpp b/ex02/Bureaucrat/Bureaucrat.hpp new file mode 100644 index 0000000..1b9a493 --- /dev/null +++ b/ex02/Bureaucrat/Bureaucrat.hpp @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Bureaucrat.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos + +class AForm; + +class Bureaucrat +{ + private: + const std::string name; + int grade; + + public: + Bureaucrat(); + Bureaucrat(const Bureaucrat &other); + Bureaucrat &operator=(const Bureaucrat &other); + ~Bureaucrat(); + + Bureaucrat(std::string name, int grade); + + std::string getName() const; + int getGrade() const; + + void incrementGrade(); + void decrementGrade(); + + void signForm(AForm &form); + + 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, const Bureaucrat &bureaucrat); + +#endif diff --git a/ex02/Bureaucrat/Bureaucrat.o b/ex02/Bureaucrat/Bureaucrat.o new file mode 100644 index 0000000000000000000000000000000000000000..b281c93f698b6644257fd29eddad516889b495e1 GIT binary patch literal 36512 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/02/16 22:32:41 by hadi #+# #+# */ +/* Updated: 2026/02/17 09:56:07 by hadi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Bureaucrat/Bureaucrat.hpp" +#include "AForm/AForm.hpp" + +int main() +{ + std::cout << "---- ex01 tests ----" << std::endl; + + try { + AForm form("AngelForm", false, 139, 5); + Bureaucrat angel("Angel", 140); + + std::cout << form << std::endl; + angel.signForm(form); + std::cout << form << std::endl; + + } catch (std::exception &e) { + std::cout << e.what() << std::endl; + } + + std::cout << std::endl; + + return (0); +} \ No newline at end of file diff --git a/ex02/main.o b/ex02/main.o new file mode 100644 index 0000000000000000000000000000000000000000..0b0265a2d892621ba44f3a8a9302e00d26eb98dc GIT binary patch literal 23752 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