From fac5b9aed4654d77efb0bc977aa2387c52bc4cda Mon Sep 17 00:00:00 2001 From: narnaud Date: Tue, 12 Jul 2022 09:52:00 +0200 Subject: [PATCH] end05- start06 --- CPP05/ex01/Bureaucrat.cpp | 16 +++- CPP05/ex01/Bureaucrat.hpp | 18 ++--- CPP05/ex01/Form.cpp | 57 ++++++++++++-- CPP05/ex01/Form.hpp | 27 ++++--- CPP05/ex01/main.cpp | 56 +++----------- CPP05/ex02/Bureaucrat.cpp | 102 ++++++++++++++++++++++++++ CPP05/ex02/Bureaucrat.hpp | 54 ++++++++++++++ CPP05/ex02/Form.cpp | 92 +++++++++++++++++++++++ CPP05/ex02/Form.hpp | 57 ++++++++++++++ CPP05/ex02/Makefile | 20 +++++ CPP05/ex02/PresidentialPardonForm.cpp | 27 +++++++ CPP05/ex02/PresidentialPardonForm.hpp | 24 ++++++ CPP05/ex02/RobotomyRequestForm.cpp | 38 ++++++++++ CPP05/ex02/RobotomyRequestForm.hpp | 24 ++++++ CPP05/ex02/ShrubberyCreationForm.cpp | 37 ++++++++++ CPP05/ex02/ShrubberyCreationForm.hpp | 22 ++++++ CPP05/ex02/main.cpp | 39 ++++++++++ CPP05/ex03/Bureaucrat.cpp | 102 ++++++++++++++++++++++++++ CPP05/ex03/Bureaucrat.hpp | 54 ++++++++++++++ CPP05/ex03/Bureaucrat.o | Bin 0 -> 28824 bytes CPP05/ex03/Form.cpp | 92 +++++++++++++++++++++++ CPP05/ex03/Form.hpp | 57 ++++++++++++++ CPP05/ex03/Form.o | Bin 0 -> 25368 bytes CPP05/ex03/Intern.cpp | 57 ++++++++++++++ CPP05/ex03/Intern.hpp | 35 +++++++++ CPP05/ex03/Intern.o | Bin 0 -> 22312 bytes CPP05/ex03/Makefile | 20 +++++ CPP05/ex03/PresidentialPardonForm.cpp | 27 +++++++ CPP05/ex03/PresidentialPardonForm.hpp | 24 ++++++ CPP05/ex03/PresidentialPardonForm.o | Bin 0 -> 18212 bytes CPP05/ex03/RobotomyRequestForm.cpp | 38 ++++++++++ CPP05/ex03/RobotomyRequestForm.hpp | 24 ++++++ CPP05/ex03/RobotomyRequestForm.o | Bin 0 -> 18700 bytes CPP05/ex03/ShrubberyCreationForm.cpp | 37 ++++++++++ CPP05/ex03/ShrubberyCreationForm.hpp | 22 ++++++ CPP05/ex03/ShrubberyCreationForm.o | Bin 0 -> 56676 bytes CPP05/ex03/bureau | Bin 0 -> 96568 bytes CPP05/ex03/house_shrubbery | 10 +++ CPP05/ex03/main.cpp | 47 ++++++++++++ CPP05/ex03/main.o | Bin 0 -> 5924 bytes CPP06/.main.cpp.swp | Bin 0 -> 12288 bytes CPP06/ex00/Converter.cpp | 62 ++++++++++++++++ CPP06/ex00/Converter.hpp | 38 ++++++++++ CPP06/ex00/Converter.o | Bin 0 -> 22392 bytes CPP06/ex00/Makefile | 21 ++++++ CPP06/ex00/convert | Bin 0 -> 27532 bytes CPP06/ex00/main.cpp | 28 +++++++ CPP06/ex00/main.o | Bin 0 -> 3792 bytes 48 files changed, 1427 insertions(+), 78 deletions(-) create mode 100644 CPP05/ex02/Bureaucrat.cpp create mode 100644 CPP05/ex02/Bureaucrat.hpp create mode 100644 CPP05/ex02/Form.cpp create mode 100644 CPP05/ex02/Form.hpp create mode 100644 CPP05/ex02/Makefile create mode 100644 CPP05/ex02/PresidentialPardonForm.cpp create mode 100644 CPP05/ex02/PresidentialPardonForm.hpp create mode 100644 CPP05/ex02/RobotomyRequestForm.cpp create mode 100644 CPP05/ex02/RobotomyRequestForm.hpp create mode 100644 CPP05/ex02/ShrubberyCreationForm.cpp create mode 100644 CPP05/ex02/ShrubberyCreationForm.hpp create mode 100644 CPP05/ex02/main.cpp create mode 100644 CPP05/ex03/Bureaucrat.cpp create mode 100644 CPP05/ex03/Bureaucrat.hpp create mode 100644 CPP05/ex03/Bureaucrat.o create mode 100644 CPP05/ex03/Form.cpp create mode 100644 CPP05/ex03/Form.hpp create mode 100644 CPP05/ex03/Form.o create mode 100644 CPP05/ex03/Intern.cpp create mode 100644 CPP05/ex03/Intern.hpp create mode 100644 CPP05/ex03/Intern.o create mode 100644 CPP05/ex03/Makefile create mode 100644 CPP05/ex03/PresidentialPardonForm.cpp create mode 100644 CPP05/ex03/PresidentialPardonForm.hpp create mode 100644 CPP05/ex03/PresidentialPardonForm.o create mode 100644 CPP05/ex03/RobotomyRequestForm.cpp create mode 100644 CPP05/ex03/RobotomyRequestForm.hpp create mode 100644 CPP05/ex03/RobotomyRequestForm.o create mode 100644 CPP05/ex03/ShrubberyCreationForm.cpp create mode 100644 CPP05/ex03/ShrubberyCreationForm.hpp create mode 100644 CPP05/ex03/ShrubberyCreationForm.o create mode 100755 CPP05/ex03/bureau create mode 100644 CPP05/ex03/house_shrubbery create mode 100644 CPP05/ex03/main.cpp create mode 100644 CPP05/ex03/main.o create mode 100644 CPP06/.main.cpp.swp create mode 100644 CPP06/ex00/Converter.cpp create mode 100644 CPP06/ex00/Converter.hpp create mode 100644 CPP06/ex00/Converter.o create mode 100644 CPP06/ex00/Makefile create mode 100755 CPP06/ex00/convert create mode 100644 CPP06/ex00/main.cpp create mode 100644 CPP06/ex00/main.o diff --git a/CPP05/ex01/Bureaucrat.cpp b/CPP05/ex01/Bureaucrat.cpp index 846cdaf..7d9e805 100644 --- a/CPP05/ex01/Bureaucrat.cpp +++ b/CPP05/ex01/Bureaucrat.cpp @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ -/* Updated: 2022/06/26 15:59:50 by narnaud ### ########.fr */ +/* Updated: 2022/06/27 09:13:57 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,7 @@ Bureaucrat & Bureaucrat::operator= (Bureaucrat const & src) { } Bureaucrat::~Bureaucrat (void) { - cout << "Bureaucrat default destructor called << endl; + cout << "Bureaucrat default destructor called" << endl; } const string Bureaucrat::getName(void) const{ @@ -74,8 +74,18 @@ const char* Bureaucrat::GradeTooLowException::what(void) const throw() { return ("Grade was too low for a bureaucrat"); } +void Bureaucrat::signForm(Form &form) const { + try { + if (!form.beSigned(*this)) + cout << _name << " succesfully signed " << form.getName() << " form." << endl; + else + cout << _name << " failed to sign " << form.getName() << ", form is already signed." << endl; + } catch (std::exception &e) { + cout << _name << "couldn't sign form because his grade is too low" << endl; + } +} + std::ostream &operator<< (std::ostream &out, Bureaucrat const &b) { out << b.getName() << ", bureaucrat grade " << b.getGrade() << endl; return (out); } - diff --git a/CPP05/ex01/Bureaucrat.hpp b/CPP05/ex01/Bureaucrat.hpp index 816290c..76527b9 100644 --- a/CPP05/ex01/Bureaucrat.hpp +++ b/CPP05/ex01/Bureaucrat.hpp @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ -/* Updated: 2022/06/26 16:35:38 by narnaud ### ########.fr */ +/* Updated: 2022/06/27 09:36:27 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,18 +20,18 @@ using std::cout; using std::endl; using std::string; +class Form; + class Bureaucrat{ const string _name; int _grade; public: - class GradeTooHighException: virtual public std::exception - { + class GradeTooHighException: virtual public std::exception { public: const char *what(void) const throw (); }; - class GradeTooLowException: virtual public std::exception - { + class GradeTooLowException: virtual public std::exception { public: const char *what(void) const throw (); }; @@ -45,11 +45,9 @@ class Bureaucrat{ const string getName(void) const; int getGrade(void) const; - void incrGrade(int diff = 1) - throw (GradeTooHighException); - void decrGrade(int diff = 1) - throw (GradeTooLowException); - + void incrGrade(int diff = 1) throw (GradeTooHighException); + void decrGrade(int diff = 1) throw (GradeTooLowException); + void signForm(Form &form) const; }; std::ostream &operator<< (std::ostream &out, Bureaucrat const &b); diff --git a/CPP05/ex01/Form.cpp b/CPP05/ex01/Form.cpp index 01584b9..8d083ec 100644 --- a/CPP05/ex01/Form.cpp +++ b/CPP05/ex01/Form.cpp @@ -6,32 +6,77 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/26 16:12:05 by narnaud #+# #+# */ -/* Updated: 2022/06/27 01:05:27 by narnaud ### ########.fr */ +/* Updated: 2022/06/27 09:40:11 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ #include "Form.hpp" -Form::Form(const string name, const int signGrade, const int exeGrade) +std::ostream &operator<< (std::ostream &out, const Form &f) { + out << "Form: " << f.getName() << " - Required grade to sign: " << f.getSignGrade() << " - Required grade to execute: " << f.getExeGrade() << endl; + return (out); +}; + +/* Defaults */ + +Form & Form::operator=(Form const &f) { + (void)f; + cout << "Form assignement called" << endl; + return (*this); +} + +Form::Form(Form const &f) { + (void)f; + cout << "Form copy called" << endl; +} + +Form::~Form(void) { + cout << "Form desctructor called" << endl; +} + +/* Custom constructor */ + +Form::Form(const string name, int signGrade, int exeGrade) throw (Form::GradeTooHighException, Form::GradeTooLowException): _name(name){ if (signGrade < 1 || exeGrade < 1) - throw Form::GradeTooHighException; + throw Form::GradeTooHighException(); if (signGrade > 150 || exeGrade > 150) - throw Form::GradeTooLowException; + throw Form::GradeTooLowException(); _signGrade = signGrade; _exeGrade = exeGrade; } +/* Getters */ + const string Form::getName(void) const { return (_name); } -const int Form::getSignGrade(void) const { +int Form::getSignGrade(void) const { return (_signGrade); } -const int Form::getExeGrade(void) const { +int Form::getExeGrade(void) const { return (_exeGrade); } +/* Seter */ + +bool Form::beSigned(const Bureaucrat &b) throw (Form::GradeTooLowException) { + if (_isSigned) + return (1); + if (b.getGrade() > _signGrade) + throw GradeTooLowException(); + _isSigned = 1; + return (0); +} + +/* Except */ + +const char *Form::GradeTooHighException::what(void) const throw (){ + return ("Grade was too high for a form"); +} +const char *Form::GradeTooLowException::what(void) const throw (){ + return ("Grade was too low for a form"); +} diff --git a/CPP05/ex01/Form.hpp b/CPP05/ex01/Form.hpp index d6a5ee9..74b7d32 100644 --- a/CPP05/ex01/Form.hpp +++ b/CPP05/ex01/Form.hpp @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/26 15:47:12 by narnaud #+# #+# */ -/* Updated: 2022/06/27 01:05:27 by narnaud ### ########.fr */ +/* Updated: 2022/06/27 09:36:10 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,33 +20,32 @@ using std::cout; using std::endl; using std::string; +class Bureaucrat; + class Form { const string _name; - const int _signGrade; - const int _exeGrade; + int _signGrade; + int _exeGrade; bool _isSigned; public: class GradeTooHighException: virtual public std::exception { public: const char *what(void) const throw (); - } + }; class GradeTooLowException: virtual public std::exception { public: const char *what(void) const throw (); - } + }; Form(void); Form(const string name, const int signGrade,const int exeGrade) throw (GradeTooHighException, GradeTooLowException); Form & operator=(Form const &f); Form(Form const &f); - ~Form(); + ~Form(void); const string getName(void) const; - const int getSignGrade(void) const; - const int getExeGrade(void) const; - beSigned(Bureaucrat); -} + int getSignGrade(void) const; + int getExeGrade(void) const; + bool beSigned(const Bureaucrat &b) throw (GradeTooLowException); +}; -std::ostream &operator<< (std::ostream &out, const Form &f) { - out << "Form: " << f.getName() << " - Required grade to sign: " << f.getSignGrade() << " - Required grade to execute: " << f.getExeGrade(); - return (out); -} +std::ostream &operator<< (std::ostream &out, const Form &f); diff --git a/CPP05/ex01/main.cpp b/CPP05/ex01/main.cpp index ef74330..13f971e 100644 --- a/CPP05/ex01/main.cpp +++ b/CPP05/ex01/main.cpp @@ -6,59 +6,25 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/24 13:16:27 by narnaud #+# #+# */ -/* Updated: 2022/06/26 16:34:45 by narnaud ### ########.fr */ +/* Updated: 2022/06/27 09:40:50 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ #include "Form.hpp" - - -void create_too_low(void) { - try { - Bureaucrat b("trash", 151); - } catch (std::exception &e) { - cout << "Grade 151 creation: " << e.what() << endl; - } -} - -void create_too_high(void) { - try { - Bureaucrat b("god", 0); - } catch (std::exception &e) { - cout << "Grade 0 creation: " << e.what() << endl; - } -} - -void first_evolve(Bureaucrat &b) { - try { - b.incrGrade(); - } catch (std::exception &e) { - cout << "Grade 1 increase: "<< e.what() << endl; - } -} - -void last_dismiss(Bureaucrat &b) { - try { - b.decrGrade(); - } catch (std::exception &e) { - cout << "Grade 150 decrease: "<< e.what() << endl; - } -} - +#include "Bureaucrat.hpp" int main(void) { - Bureaucrat first("first", 1); - Bureaucrat last("last", 150); + Bureaucrat first("first", 1); + Bureaucrat mid("midle", 75); + Bureaucrat last("last", 150); + Form garb("garbage", 75, 75); - cout << first; - cout << last; + cout << first << mid << last << garb; - create_too_low(); - create_too_high(); - first_evolve(first); - last_dismiss(last); + last.signForm(garb); + mid.signForm(garb); + first.signForm(garb); + - cout << first; - cout << last; } diff --git a/CPP05/ex02/Bureaucrat.cpp b/CPP05/ex02/Bureaucrat.cpp new file mode 100644 index 0000000..984e0b6 --- /dev/null +++ b/CPP05/ex02/Bureaucrat.cpp @@ -0,0 +1,102 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Bureaucrat.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ +/* Updated: 2022/06/27 15:03:06 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Bureaucrat.hpp" + +Bureaucrat::Bureaucrat (void) { + cout << "Bureaucrat default constructor called " << endl; +} + +Bureaucrat::Bureaucrat (const string name, int grade) + throw (Bureaucrat::GradeTooHighException, Bureaucrat::GradeTooLowException): _name(name){ + + if (grade < 1) + throw Bureaucrat::GradeTooHighException(); + if (grade > 150) + throw Bureaucrat::GradeTooLowException(); + _grade = grade; + cout << "Bureaucrat " << _name << " created grade: " << _grade << endl; +} + +Bureaucrat::Bureaucrat (Bureaucrat const & src) { + (void)src; + cout << "Bureaucrat copy constructor called" << endl; +} + +Bureaucrat & Bureaucrat::operator= (Bureaucrat const & src) { + (void)src; + cout << "Bureaucrat assignment operator called" << endl; + return (*this); +} + +Bureaucrat::~Bureaucrat (void) { + cout << "Bureaucrat default destructor called" << endl; +} + +const string Bureaucrat::getName(void) const{ + return (_name); +} + +int Bureaucrat::getGrade(void) const{ + return (_grade); +} + +void Bureaucrat::incrGrade(int diff) + throw (Bureaucrat::GradeTooHighException) { + int new_grade = _grade - diff; + if (new_grade < 1) + throw Bureaucrat::GradeTooHighException(); + _grade = new_grade; +} + +void Bureaucrat::decrGrade(int diff) + throw (Bureaucrat::GradeTooLowException) { + int new_grade = _grade + diff; + if (new_grade > 150) + throw Bureaucrat::GradeTooLowException(); + _grade = new_grade; +} + +const char* Bureaucrat::GradeTooHighException::what(void) const throw() { + return ("Grade was too high for a bureaucrat"); +} + +const char* Bureaucrat::GradeTooLowException::what(void) const throw() { + return ("Grade was too low for a bureaucrat"); +} + +void Bureaucrat::signForm(Form &form) const { + try { + if (!form.beSigned(*this)) + cout << _name << " succesfully signed " << form.getName() << endl; + else + cout << _name << " failed to sign " << form.getName() << ": form is already signed." << endl; + } catch (std::exception &e) { + cout << _name << " failed to sign " << form.getName() << ": " << e.what() << endl; + } +} + +void Bureaucrat::executeForm(const Form &form) const { + try { + if (!form.execute(*this)) + cout << _name << " succesfully executed " << form.getName() << endl; + else + cout << _name << " failed to execute " << form.getName() << ": form is not signed" << endl; + } catch (std::exception &e) { + cout << _name << " failed to execute " << form.getName() << ": " << e.what() << endl; + } +} + +std::ostream &operator<< (std::ostream &out, Bureaucrat const &b) { + out << b.getName() << ", bureaucrat grade " << b.getGrade() << endl; + return (out); +} diff --git a/CPP05/ex02/Bureaucrat.hpp b/CPP05/ex02/Bureaucrat.hpp new file mode 100644 index 0000000..5c7b86d --- /dev/null +++ b/CPP05/ex02/Bureaucrat.hpp @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Bureaucrat.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:47:21 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" +#include +#include +#include +using std::cout; +using std::endl; +using std::string; + +class Form; + +class Bureaucrat{ + const string _name; + int _grade; + public: + + class GradeTooHighException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + class GradeTooLowException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + + Bureaucrat(void); + Bureaucrat(const string name, int grade) + throw (GradeTooHighException, GradeTooLowException); + Bureaucrat(Bureaucrat const & src); + ~Bureaucrat(void); + Bureaucrat & operator= (Bureaucrat const & src); + + const string getName(void) const; + int getGrade(void) const; + void incrGrade(int diff = 1) throw (GradeTooHighException); + void decrGrade(int diff = 1) throw (GradeTooLowException); + void signForm(Form &form) const; + void executeForm(const Form &form) const; +}; + +std::ostream &operator<< (std::ostream &out, Bureaucrat const &b); diff --git a/CPP05/ex02/Form.cpp b/CPP05/ex02/Form.cpp new file mode 100644 index 0000000..685b409 --- /dev/null +++ b/CPP05/ex02/Form.cpp @@ -0,0 +1,92 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Form.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/26 16:12:05 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:56:54 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Form.hpp" + +std::ostream &operator<< (std::ostream &out, const Form &f) { + out << "Form: " << f.getName() << " - Required grade to sign: " << f.getSignGrade() << " - Required grade to execute: " << f.getExeGrade() << endl; + return (out); +}; + +/* Defaults */ + +Form & Form::operator=(Form const &f) { + (void)f; + cout << "Form assignement called" << endl; + return (*this); +} + +Form::Form(Form const &f) + : _name(f.getName()), _signGrade(f.getSignGrade()), _exeGrade(f.getExeGrade()) +{ + (void)f; + cout << "Form copy called" << endl; +} + +Form::~Form(void) { + cout << "Form destructor called" << endl; +} + +/* Custom constructor */ + +Form::Form(const string name, const int signGrade, const int exeGrade, const string target) + throw (Form::GradeTooHighException, Form::GradeTooLowException) + : _name(name), _signGrade(signGrade), _exeGrade(exeGrade), _target(target){ + if (signGrade < 1 || exeGrade < 1) + throw Form::GradeTooHighException(); + if (signGrade > 150 || exeGrade > 150) + throw Form::GradeTooLowException(); +} + +/* Getters */ + +const string Form::getName(void) const { + return (_name); +} + +int Form::getSignGrade(void) const { + return (_signGrade); +} + +int Form::getExeGrade(void) const { + return (_exeGrade); +} + +/* Seter */ + +int Form::beSigned(const Bureaucrat &signer) throw (Form::GradeTooLowException) { + if (_isSigned) + return (-1); + if (signer.getGrade() > _signGrade) + throw GradeTooLowException(); + _isSigned = 1; + return (0); +} + +int Form::execute(Bureaucrat const &executor) const throw (GradeTooLowException) { + if (executor.getGrade() > _exeGrade) + throw Form::GradeTooLowException(); + if (!_isSigned) + return (-1); + this->run(); + return (0); +} + +/* Except */ + +const char *Form::GradeTooHighException::what(void) const throw (){ + return ("Grade was too high for a form"); +} + +const char *Form::GradeTooLowException::what(void) const throw (){ + return ("Grade was too low for a form"); +} diff --git a/CPP05/ex02/Form.hpp b/CPP05/ex02/Form.hpp new file mode 100644 index 0000000..37484a8 --- /dev/null +++ b/CPP05/ex02/Form.hpp @@ -0,0 +1,57 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Form.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/26 15:47:12 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:56:40 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Bureaucrat.hpp" +#include +#include +#include +#include +#include +using std::cout; +using std::endl; +using std::string; + +class Bureaucrat; + +class Form { + const string _name; + const int _signGrade; + const int _exeGrade; + bool _isSigned; + public: + class GradeTooHighException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + class GradeTooLowException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + virtual ~Form(void) = 0; + const string getName(void) const; + int getSignGrade(void) const; + int getExeGrade(void) const; + int beSigned(const Bureaucrat &signer) throw (GradeTooLowException); + int execute(Bureaucrat const &executor) const throw (GradeTooLowException); + virtual void run(void) const = 0; + protected: + Form(void); + Form(const string name, const int signGrade,const int exeGrade, const string target) + throw (GradeTooHighException, GradeTooLowException); + Form & operator=(Form const &f); + Form(Form const &f); + const string _target; +}; + +std::ostream &operator<< (std::ostream &out, const Form &f); diff --git a/CPP05/ex02/Makefile b/CPP05/ex02/Makefile new file mode 100644 index 0000000..bbad008 --- /dev/null +++ b/CPP05/ex02/Makefile @@ -0,0 +1,20 @@ +NAME = bureau +SRCS = main.cpp Bureaucrat.cpp Form.cpp ShrubberyCreationForm.cpp RobotomyRequestForm.cpp PresidentialPardonForm.cpp +OBJS= $(SRCS:.cpp=.o) + +CXXFLAGS = -std=c++98 -Werror -Wextra -Wall + +$(NAME) : $(OBJS) + c++ $(OBJS) -o $(NAME) + +all : $(NAME) + +clean : + rm -rf $(OBJS) + +fclean : clean + rm -rf $(NAME) + +re : fclean all + +.PHONY : all clean fclean re diff --git a/CPP05/ex02/PresidentialPardonForm.cpp b/CPP05/ex02/PresidentialPardonForm.cpp new file mode 100644 index 0000000..a4752bf --- /dev/null +++ b/CPP05/ex02/PresidentialPardonForm.cpp @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* PresidentialPardonForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:18:34 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:43:58 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "PresidentialPardonForm.hpp" + +PresidentialPardonForm::PresidentialPardonForm (const string target): Form("PresidentialPardonForm", 25, 5, target) { + + cout << "PresidentialPardonForm parameter constructor called" << endl; +} + +PresidentialPardonForm::~PresidentialPardonForm (void) { + + cout << "PresidentialPardonForm default destructor called" << endl; +} + +void PresidentialPardonForm::run(void) const { + cout << _target << "has been pardoned by Zaphod Beeblebrox" << endl; +} diff --git a/CPP05/ex02/PresidentialPardonForm.hpp b/CPP05/ex02/PresidentialPardonForm.hpp new file mode 100644 index 0000000..ef52eff --- /dev/null +++ b/CPP05/ex02/PresidentialPardonForm.hpp @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* PresidentialPardonForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:18:34 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:42:14 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" + +class PresidentialPardonForm: public Form { + + public: + + PresidentialPardonForm(const string target); + ~PresidentialPardonForm(void); + void run(void) const; +}; diff --git a/CPP05/ex02/RobotomyRequestForm.cpp b/CPP05/ex02/RobotomyRequestForm.cpp new file mode 100644 index 0000000..3b664d8 --- /dev/null +++ b/CPP05/ex02/RobotomyRequestForm.cpp @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* RobotomyRequestForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:52 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:43:34 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "RobotomyRequestForm.hpp" + +RobotomyRequestForm::RobotomyRequestForm (const string target): Form("RobotomyRequestForm", 72, 45, target) { + + cout << "RobotomyRequestForm parameter constructor called" << endl; +} + +RobotomyRequestForm::~RobotomyRequestForm (void) { + + cout << "RobotomyRequestForm default destructor called" << endl; +} + +void RobotomyRequestForm::run(void) const { + int r = rand(); + + cout << "ratatttaatata" << endl; + sleep(1); + cout << "ratata tatata" << endl; + sleep(1); + cout << "ratata" << endl; + sleep(1); + if (r % 2) + cout<< _target << " have been robotomized" << endl; + else + cout << _target << " robotomization failed" << endl; +} diff --git a/CPP05/ex02/RobotomyRequestForm.hpp b/CPP05/ex02/RobotomyRequestForm.hpp new file mode 100644 index 0000000..ada3db7 --- /dev/null +++ b/CPP05/ex02/RobotomyRequestForm.hpp @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* RobotomyRequestForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:52 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:45:20 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" + +class RobotomyRequestForm: public Form { + + public: + + RobotomyRequestForm(const string target); + ~RobotomyRequestForm(void); + void run(void) const; +}; diff --git a/CPP05/ex02/ShrubberyCreationForm.cpp b/CPP05/ex02/ShrubberyCreationForm.cpp new file mode 100644 index 0000000..4abd714 --- /dev/null +++ b/CPP05/ex02/ShrubberyCreationForm.cpp @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ShrubberyCreationForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:15 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:39:19 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ShrubberyCreationForm.hpp" + +ShrubberyCreationForm::ShrubberyCreationForm (string target): Form("ShrubberyCreationForm", 147, 137, target) { + cout << "ShrubberyCreationForm parameter constructor called" << endl; +} + +ShrubberyCreationForm::~ShrubberyCreationForm (void) { + cout << "ShrubberyCreationForm default destructor called" << endl; +} + +void ShrubberyCreationForm::run(void) const { + std::ofstream file; + file.open(_target + "shrubbery"); + file << " ,@@@@@@@," << endl; + file << " ,,,. ,@@@@@@/@@, .oo8888o." << endl; + file << " ,&\%%&%&&%,@@@@@/@@@@@@,8888\\88/8o" << endl; + file << " ,%&\\%&&%&&%,@@@\\@@@/@@@88\\88888/88'" << endl; + file << " %&&%&%&/%&&%@@\\@@/ /@@@88888\\88888'" << endl; + file << " %&&%/ %&\%%&&@@\\ V /@@' `88\\8 `/88'" << endl; + file << " `&%\\ ` /%&' |.| \\ '|8'" << endl; + file << " |o| | | | |" << endl; + file << " |.| | | | |" << endl; + file << " \\\\/ ._\\//_/__/ ,\\_//__\\\\/. \\_//__/_" << endl; + file.close(); +} diff --git a/CPP05/ex02/ShrubberyCreationForm.hpp b/CPP05/ex02/ShrubberyCreationForm.hpp new file mode 100644 index 0000000..508708a --- /dev/null +++ b/CPP05/ex02/ShrubberyCreationForm.hpp @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ShrubberyCreationForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:14 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:40:37 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" +class ShrubberyCreationForm: public Form { + + public: + ShrubberyCreationForm(string target); + ~ShrubberyCreationForm(void); + void run(void) const; +}; diff --git a/CPP05/ex02/main.cpp b/CPP05/ex02/main.cpp new file mode 100644 index 0000000..12725ef --- /dev/null +++ b/CPP05/ex02/main.cpp @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:16:27 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:58:53 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ShrubberyCreationForm.hpp" +#include "RobotomyRequestForm.hpp" +#include "PresidentialPardonForm.hpp" +#include "Bureaucrat.hpp" + +int main(void) +{ + Bureaucrat first("first", 1); + Bureaucrat mid("midle", 75); + Bureaucrat last("last", 150); + + ShrubberyCreationForm houseForm("House"); + PresidentialPardonForm gerardForm("Gerard"); + RobotomyRequestForm biduleForm("Bidule"); + last.signForm(houseForm); + last.signForm(gerardForm); + last.signForm(biduleForm); + first.signForm(houseForm); + first.signForm(gerardForm); + first.signForm(biduleForm); + last.executeForm(houseForm); + last.executeForm(gerardForm); + last.executeForm(biduleForm); + first.executeForm(houseForm); + first.executeForm(gerardForm); + first.executeForm(biduleForm); +} diff --git a/CPP05/ex03/Bureaucrat.cpp b/CPP05/ex03/Bureaucrat.cpp new file mode 100644 index 0000000..984e0b6 --- /dev/null +++ b/CPP05/ex03/Bureaucrat.cpp @@ -0,0 +1,102 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Bureaucrat.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ +/* Updated: 2022/06/27 15:03:06 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Bureaucrat.hpp" + +Bureaucrat::Bureaucrat (void) { + cout << "Bureaucrat default constructor called " << endl; +} + +Bureaucrat::Bureaucrat (const string name, int grade) + throw (Bureaucrat::GradeTooHighException, Bureaucrat::GradeTooLowException): _name(name){ + + if (grade < 1) + throw Bureaucrat::GradeTooHighException(); + if (grade > 150) + throw Bureaucrat::GradeTooLowException(); + _grade = grade; + cout << "Bureaucrat " << _name << " created grade: " << _grade << endl; +} + +Bureaucrat::Bureaucrat (Bureaucrat const & src) { + (void)src; + cout << "Bureaucrat copy constructor called" << endl; +} + +Bureaucrat & Bureaucrat::operator= (Bureaucrat const & src) { + (void)src; + cout << "Bureaucrat assignment operator called" << endl; + return (*this); +} + +Bureaucrat::~Bureaucrat (void) { + cout << "Bureaucrat default destructor called" << endl; +} + +const string Bureaucrat::getName(void) const{ + return (_name); +} + +int Bureaucrat::getGrade(void) const{ + return (_grade); +} + +void Bureaucrat::incrGrade(int diff) + throw (Bureaucrat::GradeTooHighException) { + int new_grade = _grade - diff; + if (new_grade < 1) + throw Bureaucrat::GradeTooHighException(); + _grade = new_grade; +} + +void Bureaucrat::decrGrade(int diff) + throw (Bureaucrat::GradeTooLowException) { + int new_grade = _grade + diff; + if (new_grade > 150) + throw Bureaucrat::GradeTooLowException(); + _grade = new_grade; +} + +const char* Bureaucrat::GradeTooHighException::what(void) const throw() { + return ("Grade was too high for a bureaucrat"); +} + +const char* Bureaucrat::GradeTooLowException::what(void) const throw() { + return ("Grade was too low for a bureaucrat"); +} + +void Bureaucrat::signForm(Form &form) const { + try { + if (!form.beSigned(*this)) + cout << _name << " succesfully signed " << form.getName() << endl; + else + cout << _name << " failed to sign " << form.getName() << ": form is already signed." << endl; + } catch (std::exception &e) { + cout << _name << " failed to sign " << form.getName() << ": " << e.what() << endl; + } +} + +void Bureaucrat::executeForm(const Form &form) const { + try { + if (!form.execute(*this)) + cout << _name << " succesfully executed " << form.getName() << endl; + else + cout << _name << " failed to execute " << form.getName() << ": form is not signed" << endl; + } catch (std::exception &e) { + cout << _name << " failed to execute " << form.getName() << ": " << e.what() << endl; + } +} + +std::ostream &operator<< (std::ostream &out, Bureaucrat const &b) { + out << b.getName() << ", bureaucrat grade " << b.getGrade() << endl; + return (out); +} diff --git a/CPP05/ex03/Bureaucrat.hpp b/CPP05/ex03/Bureaucrat.hpp new file mode 100644 index 0000000..5c7b86d --- /dev/null +++ b/CPP05/ex03/Bureaucrat.hpp @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Bureaucrat.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:06:55 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:47:21 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" +#include +#include +#include +using std::cout; +using std::endl; +using std::string; + +class Form; + +class Bureaucrat{ + const string _name; + int _grade; + public: + + class GradeTooHighException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + class GradeTooLowException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + + Bureaucrat(void); + Bureaucrat(const string name, int grade) + throw (GradeTooHighException, GradeTooLowException); + Bureaucrat(Bureaucrat const & src); + ~Bureaucrat(void); + Bureaucrat & operator= (Bureaucrat const & src); + + const string getName(void) const; + int getGrade(void) const; + void incrGrade(int diff = 1) throw (GradeTooHighException); + void decrGrade(int diff = 1) throw (GradeTooLowException); + void signForm(Form &form) const; + void executeForm(const Form &form) const; +}; + +std::ostream &operator<< (std::ostream &out, Bureaucrat const &b); diff --git a/CPP05/ex03/Bureaucrat.o b/CPP05/ex03/Bureaucrat.o new file mode 100644 index 0000000000000000000000000000000000000000..7af87271283d9babf40c02e03cb0e2b044bc7ef1 GIT binary patch literal 28824 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 literal 0 HcmV?d00001 diff --git a/CPP05/ex03/Form.cpp b/CPP05/ex03/Form.cpp new file mode 100644 index 0000000..685b409 --- /dev/null +++ b/CPP05/ex03/Form.cpp @@ -0,0 +1,92 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Form.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/26 16:12:05 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:56:54 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Form.hpp" + +std::ostream &operator<< (std::ostream &out, const Form &f) { + out << "Form: " << f.getName() << " - Required grade to sign: " << f.getSignGrade() << " - Required grade to execute: " << f.getExeGrade() << endl; + return (out); +}; + +/* Defaults */ + +Form & Form::operator=(Form const &f) { + (void)f; + cout << "Form assignement called" << endl; + return (*this); +} + +Form::Form(Form const &f) + : _name(f.getName()), _signGrade(f.getSignGrade()), _exeGrade(f.getExeGrade()) +{ + (void)f; + cout << "Form copy called" << endl; +} + +Form::~Form(void) { + cout << "Form destructor called" << endl; +} + +/* Custom constructor */ + +Form::Form(const string name, const int signGrade, const int exeGrade, const string target) + throw (Form::GradeTooHighException, Form::GradeTooLowException) + : _name(name), _signGrade(signGrade), _exeGrade(exeGrade), _target(target){ + if (signGrade < 1 || exeGrade < 1) + throw Form::GradeTooHighException(); + if (signGrade > 150 || exeGrade > 150) + throw Form::GradeTooLowException(); +} + +/* Getters */ + +const string Form::getName(void) const { + return (_name); +} + +int Form::getSignGrade(void) const { + return (_signGrade); +} + +int Form::getExeGrade(void) const { + return (_exeGrade); +} + +/* Seter */ + +int Form::beSigned(const Bureaucrat &signer) throw (Form::GradeTooLowException) { + if (_isSigned) + return (-1); + if (signer.getGrade() > _signGrade) + throw GradeTooLowException(); + _isSigned = 1; + return (0); +} + +int Form::execute(Bureaucrat const &executor) const throw (GradeTooLowException) { + if (executor.getGrade() > _exeGrade) + throw Form::GradeTooLowException(); + if (!_isSigned) + return (-1); + this->run(); + return (0); +} + +/* Except */ + +const char *Form::GradeTooHighException::what(void) const throw (){ + return ("Grade was too high for a form"); +} + +const char *Form::GradeTooLowException::what(void) const throw (){ + return ("Grade was too low for a form"); +} diff --git a/CPP05/ex03/Form.hpp b/CPP05/ex03/Form.hpp new file mode 100644 index 0000000..37484a8 --- /dev/null +++ b/CPP05/ex03/Form.hpp @@ -0,0 +1,57 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Form.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/26 15:47:12 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:56:40 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Bureaucrat.hpp" +#include +#include +#include +#include +#include +using std::cout; +using std::endl; +using std::string; + +class Bureaucrat; + +class Form { + const string _name; + const int _signGrade; + const int _exeGrade; + bool _isSigned; + public: + class GradeTooHighException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + class GradeTooLowException: virtual public std::exception { + public: + const char *what(void) const throw (); + }; + virtual ~Form(void) = 0; + const string getName(void) const; + int getSignGrade(void) const; + int getExeGrade(void) const; + int beSigned(const Bureaucrat &signer) throw (GradeTooLowException); + int execute(Bureaucrat const &executor) const throw (GradeTooLowException); + virtual void run(void) const = 0; + protected: + Form(void); + Form(const string name, const int signGrade,const int exeGrade, const string target) + throw (GradeTooHighException, GradeTooLowException); + Form & operator=(Form const &f); + Form(Form const &f); + const string _target; +}; + +std::ostream &operator<< (std::ostream &out, const Form &f); diff --git a/CPP05/ex03/Form.o b/CPP05/ex03/Form.o new file mode 100644 index 0000000000000000000000000000000000000000..dafe23b25fccfc03325e7b8a67f90ab49a46fd72 GIT binary patch literal 25368 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 15:07:10 by narnaud #+# #+# */ +/* Updated: 2022/06/27 16:28:56 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Intern.hpp" + +Intern::Intern (void) { + cout << "Intern default constructor called " << endl; +} + +Intern::Intern (Intern const & src) { + (void)src; + cout << "Intern copy constructor called" << endl; +} + +Intern & Intern::operator= (Intern const & src) { + (void)src; + cout << "Intern assignment operator called" << endl; + return (*this); +} + +Intern::~Intern (void) { + + cout << "Intern default destructor called" << endl; +} + +Form * createRobotForm(string targ){ + return (new RobotomyRequestForm(targ)); +} + +Form * createPresidentForm(string targ) { + return (new PresidentialPardonForm(targ)); +} + +Form * createShrubberyForm(string targ) { + return (new ShrubberyCreationForm(targ)); +} + +Form * Intern::makeForm(string name, string target) +{ + string subFormsName[3] = {"robotomy request", "president pardon", "shrubbery creation"}; + Form * (*subFormsCreation[3])(string targ) =\ + {createRobotForm, createPresidentForm, createShrubberyForm}; + for (int i = 0; i < 3; i++) + if (name == subFormsName[i]) + return (subFormsCreation[i](target)); + cout << "Intern fail to create " << name << ": unknow form name" << endl; + return (NULL); +} diff --git a/CPP05/ex03/Intern.hpp b/CPP05/ex03/Intern.hpp new file mode 100644 index 0000000..4c137e2 --- /dev/null +++ b/CPP05/ex03/Intern.hpp @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Intern.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 15:07:10 by narnaud #+# #+# */ +/* Updated: 2022/06/27 16:28:32 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" +#include "PresidentialPardonForm.hpp" +#include "RobotomyRequestForm.hpp" +#include "ShrubberyCreationForm.hpp" +#include + +#include +using std::cout; +using std::endl; +using std::string; + +class Intern{ + + public: + Intern(void); + Intern(Intern const & src); + virtual ~Intern(void); + Intern & operator= (Intern const & src); + Form * makeForm(string name, string target); + protected: +}; diff --git a/CPP05/ex03/Intern.o b/CPP05/ex03/Intern.o new file mode 100644 index 0000000000000000000000000000000000000000..2322f5f2c87cfdc7cdb1cfd8c3ac28c20108e300 GIT binary patch literal 22312 zcmd^Had=c$m4A~22o{)hZ7sE>Ok3L0wNo>J1Y%n|6kd5qLI;wx*jisElSwjVk{Msy;uEr+iyme(YYbQ$$%+SjS6LK`4Z z#WXtu0W;Va2u2fT!rx|>r{qM*D3k?PYuYSkK)*nwC!SN#G}oEuSceg|3JNv2Oip0(I@Ez~dHe@|W|dn;X@xyCB3@S5ax zNBx0>+1s--)YER74eP922Uwnq1&%`=O>r9bwn)Z26-_hPWp>2;-9bsT+k5@^E=iH!H2?|)F@1~Bi9RSaD7E|0FG`3xI&rzCp}*$ChstXH2tHi9 z@OiVP#Yq0b7(88Nq~=gpV`QO#!6Q{hvj2>c!YAo8k`u;AZ4y&?N>D|WuDGgC8-quy z9(=*MRAYHA(L32YEhMA}!IbPjMWT|u8QC#~da5^LB%hb{!K1DRU+B2ixpWT+*PKhe zN}kk)<;}E|7>~3~>G)I{sST$L$8n5^Q6~^8 z0n#DsANGb)R9K5h%Gz7pe?sG4NM0m;*oA#YiYV~mDLJmy{G9we`{6UTKzQBSqd*^0 zJF5g{an2lQfEG-|v7(Bkh(vxMAKRwGs!wryt?_aQaanYTWMRBW`_Q|jf3wlpFN0@_ zW(TtkO(#?*sGEEl+D|7NPv?ds!kf|$!h=3mDU)pc(G>P(O(;k;>XKs@^8W}0 zoI|t_r{)Xm`j6*0FtD`Tc?rc*vSm!rth0~#@rgzwS+Pu9jQ(G@_y2``yHC^cZt#*z zA#SnBCHn`A5q-=^4)x8<%orng^x$|fl83xhLx7}4O4Ik_vPxd2Cx*Hp1r=@Z5M7l! zNBm@AK(rg%pvp+&nBh2LqzpwUP(obt6h-k#l@ht7b)t~f;3@FF=~2!&SDS@KBjz37HHp(aH>Wg!dU zsYBGH$eAp8LLVl2&Zjbbj~IhT3=DGuj7D-~k{~rCAnUs0N}!rCYJlrRpL%i~@jHd< zupJK@DVfHk<{PP&Ge$kl+qmF(oy<>(in04BEi1V}=TEDUn|fS~QjchP{2+B!(@K@x zw2q-Bj8(c(L!NG;vz*okXn3(|mDvY~J2{dTorVNt&E9VpO$`t&`Uta$Uz)8Zkit`_ z!^gzqqe=+3S`Uok`PF&k7hY^X(;|&fM=RD(Mx42n)FpL!a6!^>qyCt4&wSW@OrO!F z{#p2+k7Mwiz_G>|SW=%vMIO}Ig?^pn2OAFKREsViKw(V`p_`L4)yUl%?nt7sHeK@L%n^s1a!oM*dFr^yH^Rc%;*Ry6F@pUrx$7IDp8WJ)4b66x_gBjrVEOj-B=AuXwYPV`UdpSxiU z!w#NtIfpK#@hN35*J(EQPgSZ0R6xL|5ji~+bG$5;SgOWI?Lh5!M)DPO7&VfO!^lwv z#1O+n55tdA?NtB4y`s9#dH6WgI)LstB^rktQo7{ETBRUnc5w}flwyqwX;~}ZCv}3q zD>>gkOy`cu=!Af&8_*(huE}KMccxZaYdMF~9h4kTc~y3{1WW&<7#wqn@tktJm!N7F zR23A_gL!Z~?>?G_P|p5n>>QIEDa8`iI&D>gtP51-^Hm}kO6A9#8}FSbVze+mcb}ey zF6)M|QSz!ywq!6vCmOKkhIM4Rn9StJR;59nyRqL8!Kgpt9HL!Sgas0isTLejsGLCW zQ^w7Zjf7Vjg~}LcW5#XzLFdOVlifhZp?>obj65a-YC@-oBPp4jlmo_K{{hYUv9*E% zh3S?g)gq%60uMO%&`q{{$N^q}czJToywSqAjhrk3GLMDaj!)&-Nf*;ekf)id;v@YLbO^Ziy@yIa?cy& z`mj82klK{EKj!t4T3=~hE6%0X`&;Ir6(eOKKvK_+LMM)k>^4MCkf7!CVHYl>W`{9{ z{nJUoP7#?JrjEleIuE}no-c@}2Lou5>syUAcqh)aakYpG^hx%<2C-*Sy|0z9&Z_?i z_Nj?u@Rf9y@M(cNobRA)zTgu35&2sjPROyuGah=LQw9+h9{MTVf{B`6$!xF{EafrWzmP8Pq9vttd?ehK{)KO`41&B`;qe=T|FfS!EmsWrmMGKkzf;YR{vG%^ZvU z%6gs;ZbBg{pfF!|2jy!5Ur4$ z|9#%!X)YM_z-@#u$a%OIZ2T~6Sf7wqs^@2W^$F);%FKP1XKf@= z%&p*Mx7Z$_$<)}oKrHc|swMa2he<&|<@l}k^q<*FW;yYod1mu!sT(5EYQLC&wV&^F zT~cC8x2+#F|6(hV=JCD@XJ+>n+U#b(zrg;h3U0PBFezkTb-to*laf9P(&4rgIi{siI3wJxT`xeHvy^i_cayUNe zcrU-0`AhKK;iz3c>=-H6K413Ev*p^cvZ~Pv?bl@saQ&_Fj^`>J->rz^dSI^eI_HEJaMh#3Ji+d^0NEBU9P=SKL0y&9GUVzBi*Eolgi8!3mui$&DS08 zx<%6-R&7fhmutwsuU~3vcVV2a`Hwgp+mYAFUZT&cIrlhj#|u;LBYVEJ?_jh&P?qA+%VeEs}_I?{dY0+j~LPqOo8+)K0RZ{#bjYM~ipGdfVE9F=!AA`V%2E zv05GeP}r4-$o8O1dylKPXIoEXr>i3p>vr|f3&uLhnrAsZ-9S-OBy0Hg@zq@t3+QR4 zFDXGEXZrg~&|NH%UzZlh_j1eT68+Om=hveJ{U^`SzZ#KBrIh^xOfRKhn(6GPHBy?U zsrTp8On+GtvUKso0JLSwCBaT#PCpz#8LyCNr~82oBdfbOLi!zk+|6wpVRUM}riBiS_Vpwf?$E|gOK8)rHm^;0R3pJDo|Hu-0i ze|Q0xvTvH{mzI!U#e`4^`T*1Mj+#n=ercv(TY^5x^y^B{H9DP8=ukr`kYB}gh5~vu z6L91d?H^@2cG{x!G}BA@Z<6WQk&E`%@Zg?Gss7bW=jkfY-^cXZrI-TxDAP;D&luA^ zCHhY@y_El5^b855lzcDKd6^XG=VSUJDW-tl%Jh3m(8riwQh%n?a~6~W`Bl7dZYn|d zGQE_2txPYafAk#vN6*ne&Gh@EerqIX+SRA z7oZd0I()p$cNeZjDZ&>9p^N!ApC~HtG4QoA-}|MsqI}PRwx9VpzKZgl1m7t0ZJtHm z0@!_=`FOu8DsLtDCeK6O2f$bP>bd>52Yl7cSIQ2W3o4Ee`5MGb&3mE()hab#wExpw zsPR-@SGn=`QUTk15Pvg1%X!?FaZRQ2rqcX-KtE;YUs{^~8SwA_u^c`t|BBN5G*8A) zBtPdnTBWl%KiT?R8GcXsbICv3e4PZ}0P}GkRCHb!lp{V*N_o6q3;4)y`!HXl%*T0= zR{8ng$&NNZlb-F68~vpumzrPV+ehOwA8)Hg$6o+@TA7dYCatow^!O(sw`%I#ep*n0 z_0D{kLLX6z*s~IRN*?D`1$vS_9{}H0mZy$`V*AG)@cEeUS{}9--xnL`JgF$(E#Oo0!RK{RzGm=^o`=032HyeZC>7si_dfX1%Y2-dYL$1ME;*0wkUPNq zv&H#7@bxiYDSLj3d=@@&A7T77unYA*U^mbWtOH&JtOd>iA|~ChBG0}T_%Fb_fzJUk zhI=ot4Y(YLe8_zj(A2a$-oSkWeBho2BA0T%3Ty>_lktnd6{znA)&L&`wg4{$VvlqG z9tSw-H357#a5wN);AWs3|J*?M(tRzE?7_oPY1d^EKMnkAw5NbK1ABpFhX=SESPAR_ zzJmMTn}FX2-U$3G@CM-D0Ph2C2a=sv0&zCDzlH^Zz196?AkJF%Cx9;CNgVi?8~3w7 z{3(NbGq4O;2V4id0jL9ifafj9-QCXu$v=MwB>(INVvV{#2!spW8-Z|z`*tAC8u#~{ znuc87{T$;iAn`Q;iO&NhzH5MZB;>9DVvV|w!)W6B29Wr^03^O9Ag0!R4bv}W`j^o; zg7!y&_W(Zv^Z~a4LqH$n-9SI;w*WhVmjNFHIv8JBplNWi`%6H$&iyFR0Q!M&nfncF z3~-72=Rla~J`9A)?lIs8fc?M?z-}PAxLbh`?fx=i9Ba`1Ngz~qKLVuoU5xhwiC<^D z5{Rzu(^$jXfd2_3yZ#+Wc0C0ozpiKeL8YdJ5x@Tkr1txP4&Wvr%97iF??e6FzzR*f zoc8#QsQ-DMY(E2}_TK_O2ssl#k`raTobgrcBs(7llAYUuLEt?=(#OR(7q|uW*U*{t`981%_%x9E ze+EeXKMth+5g_&VGTsPmLj5uz_5VY;?Egbx0QG+bb^;FpN#2)$B=568lJ_u>|a_B7)F zV=JSV(Z#qJNd2pT)L-NF4C0mKk29tj2N?T+)GrF8ey!Z@WppuWjF~wsk1@?Sz}U*@ zWppuWj2Spn=);(19AIo^^fI~_HO36$QuJp`GY&AeGI|+Zj2dGG#)|%o2Z3b&7{18< zG`9~hwlZ!7;@?~!zKGAu?Jh^lz5Alz4`$29Wbd0$$O{(10qT9zr?{@(FZsEy-Y4D0b@l$}0URzQU%e+vW4$cG z9FF2}rIO(B)O(`k++V$4s^I?WIp#LR56M%{EjJ?`h5od#QD&ek)zx$Fw=;bla;RJb zKBAA)LPlxEwUEd4Uhc2n+dRYLsrNKby^Y6%->8(azUqAx{eqd~srNFU;_=mcn7>!@ zS>J^$PrYYp!Qo5&)q9nVOjqwoKFZ^%_fs#b`9nLELFSJlX`ym6Hae20-lI5KzIre6 zBI~Q(BU}$Z5WjlwP{IAHk%UnB9rh!lk8=H5>?c$o9zv{9e@fn{B-nrI{XiqrT}*!m z`%^uaryq5R@!6l3bAR>x{v8}2>N)s0%Tv$2H!;6@UVc0L;)Fixz3ro1&!8WbUmz}s zJ`TB57CL1;jX0v>$9f@pnruS(8RmoPF0OB4x|i#JKtH0Z@_wv8(I0-NvXlD{aQzp| zU(NN~Sl%Sd_yOX}=@`(w?61#2Z>qO){l|zes;7CqO(HoH{B(e#dQ2R6zlNq>xafcK9_s6I#2)ZbU{VtSP6G4!MHCfUDxQMb55`z8Eu zt*=EKTI)~Q>WzpGEBz0cCu{vW*ki39wT;&S`>pg(%ky0thwp!aU#xV>)2#Id#J9D6 zo2~zkZS;gq-;dh($xT*yotR&1ovy9*-`M2SHfE(?WwU>i&Hkrtb-%6tG}en%-v8L- zeagna9rJDF583K(xAn(=ByfLIq8>lO=??Yy6TuzS&>r>)+|-mTl>xNdI?B}_m544;0mgI~(T%vdnd6^rcDWyg)Or)QP?yM6qeCLU}zqyA8A!=@(F zQv+$CfGPjSfeis_@&vm4F*6bKhZ6A(0bNI1J$?Wb3D7Tjs6nqaF-TNzsx|f6j!-O~ z$RDewreG{H7!G#7F8qJ>Ga5$QP0r^U0U02%?_IJkf zi5KPuPrV#5-W7=@%xEM;zo5D(f-$>f%Ec79T8a!udOC~Ct(TF22rC{2`pS+_IGk@@ z&Z#>??TIcXa>T8W0waj6puf9>P|QYeTy<2jdO<;n$q2>a)8`V27{S6gygN zb_+$A!}=1Dj(t<^$owP3bv60*wW=pb~0kgdxZsG}n<9JIAwnA%w(Jo#(Y(7dJmg-++}Fe>J%$>Q!{ zH*yDof$k`!8O`^qU&d0U$y(WOk8{%yg#@$*_F2_iu$^iFlL zgreG>QRq!|=B@GGHj))ztA5x^X-PQPLmKw%>?SBVOtDeygJ6FR^@I|-Z)3nJtY)QY zMtc(`r9Jp>jgUdb>Bq-CfnceXyoGi(+lJI^HdmXv-n7c}ZERX;S_iOaRI9{)pcD&| zB26m6u z5zHf>^Vlrj&F%<~C%7F`g8znVS2U=HLKX#b8!c9NX!_(eK;wzl?F>4aOGvKU-}H#(VLradga0PiHTFhpuFa zj=ep>zGx7EL(LZ_Lc0TRSrpuMF{F6%rG(?+$g^cYINFLWi9j#)K* zkvrPBF6hKwTSMyQVh4&{6tSLjiM4G8Men2Z6EJ+*8r=4EE#`&$-C* zI`NL|Z_>AHY%)doa1$b-pvjYKk{fq$yD%~TK2LAkvXQpB^Oy@U)%9{*DY0QCR$BPN zwot437xj#J>&r@buGVU(2j@!E-!5*#BfSYsaw((9mqpWLb$HNP!Qs)gn*Py}%I?ED znk~vV(4dKk8T0Q{cXJyy;?^8FDNYm%qy3mF9+{jsBVE{%-@T#U-`-Bo3?dy${+6bi zya877U8;IwfCZ;}smhL*;9Tg4 z2sS?R8|r)GL7a|(V1hz5yL4#t+1PA~Nad7GcH=e1ZMojGS5=!ep?0hEtTo7}Jsl{iz_#DtOr2w&SC2+TX!7?$S=OYu_dQqj&H$TxYzR|1jt(UW4+b?he zAS-J2uo<3u@rPT%CiRD0l=Ho%yiRz>Q!B-8p}!!zNFrHNpZXiLiz9ZEr(P(DKXcn6 z|H_TzV(pc5!g=Pn8Y z(B!EtY+6~+RJWp_$y3-=TT{SQQ`qG3z|&@DU!RFTZ;VHJ{NYeym${?5ps%MI&!GPo D+*0LS literal 0 HcmV?d00001 diff --git a/CPP05/ex03/Makefile b/CPP05/ex03/Makefile new file mode 100644 index 0000000..fe92166 --- /dev/null +++ b/CPP05/ex03/Makefile @@ -0,0 +1,20 @@ +NAME = bureau +SRCS = main.cpp Bureaucrat.cpp Form.cpp ShrubberyCreationForm.cpp RobotomyRequestForm.cpp PresidentialPardonForm.cpp Intern.cpp +OBJS= $(SRCS:.cpp=.o) + +CXXFLAGS = -std=c++98 -Werror -Wextra -Wall + +$(NAME) : $(OBJS) + c++ $(OBJS) -o $(NAME) + +all : $(NAME) + +clean : + rm -rf $(OBJS) + +fclean : clean + rm -rf $(NAME) + +re : fclean all + +.PHONY : all clean fclean re diff --git a/CPP05/ex03/PresidentialPardonForm.cpp b/CPP05/ex03/PresidentialPardonForm.cpp new file mode 100644 index 0000000..a4752bf --- /dev/null +++ b/CPP05/ex03/PresidentialPardonForm.cpp @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* PresidentialPardonForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:18:34 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:43:58 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "PresidentialPardonForm.hpp" + +PresidentialPardonForm::PresidentialPardonForm (const string target): Form("PresidentialPardonForm", 25, 5, target) { + + cout << "PresidentialPardonForm parameter constructor called" << endl; +} + +PresidentialPardonForm::~PresidentialPardonForm (void) { + + cout << "PresidentialPardonForm default destructor called" << endl; +} + +void PresidentialPardonForm::run(void) const { + cout << _target << "has been pardoned by Zaphod Beeblebrox" << endl; +} diff --git a/CPP05/ex03/PresidentialPardonForm.hpp b/CPP05/ex03/PresidentialPardonForm.hpp new file mode 100644 index 0000000..ef52eff --- /dev/null +++ b/CPP05/ex03/PresidentialPardonForm.hpp @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* PresidentialPardonForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:18:34 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:42:14 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" + +class PresidentialPardonForm: public Form { + + public: + + PresidentialPardonForm(const string target); + ~PresidentialPardonForm(void); + void run(void) const; +}; diff --git a/CPP05/ex03/PresidentialPardonForm.o b/CPP05/ex03/PresidentialPardonForm.o new file mode 100644 index 0000000000000000000000000000000000000000..c5bdb925c85967aade9913be1db34a01d763c19a GIT binary patch literal 18212 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:52 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:43:34 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "RobotomyRequestForm.hpp" + +RobotomyRequestForm::RobotomyRequestForm (const string target): Form("RobotomyRequestForm", 72, 45, target) { + + cout << "RobotomyRequestForm parameter constructor called" << endl; +} + +RobotomyRequestForm::~RobotomyRequestForm (void) { + + cout << "RobotomyRequestForm default destructor called" << endl; +} + +void RobotomyRequestForm::run(void) const { + int r = rand(); + + cout << "ratatttaatata" << endl; + sleep(1); + cout << "ratata tatata" << endl; + sleep(1); + cout << "ratata" << endl; + sleep(1); + if (r % 2) + cout<< _target << " have been robotomized" << endl; + else + cout << _target << " robotomization failed" << endl; +} diff --git a/CPP05/ex03/RobotomyRequestForm.hpp b/CPP05/ex03/RobotomyRequestForm.hpp new file mode 100644 index 0000000..ada3db7 --- /dev/null +++ b/CPP05/ex03/RobotomyRequestForm.hpp @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* RobotomyRequestForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:52 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:45:20 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" + +class RobotomyRequestForm: public Form { + + public: + + RobotomyRequestForm(const string target); + ~RobotomyRequestForm(void); + void run(void) const; +}; diff --git a/CPP05/ex03/RobotomyRequestForm.o b/CPP05/ex03/RobotomyRequestForm.o new file mode 100644 index 0000000000000000000000000000000000000000..810f3fcd127a254345982d5a3b73d4391df60d84 GIT binary patch literal 18700 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 Rfk-%czqzNXh_Oo3{ts5jFgpMM literal 0 HcmV?d00001 diff --git a/CPP05/ex03/ShrubberyCreationForm.cpp b/CPP05/ex03/ShrubberyCreationForm.cpp new file mode 100644 index 0000000..dc78aed --- /dev/null +++ b/CPP05/ex03/ShrubberyCreationForm.cpp @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ShrubberyCreationForm.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:15 by narnaud #+# #+# */ +/* Updated: 2022/06/27 16:36:13 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ShrubberyCreationForm.hpp" + +ShrubberyCreationForm::ShrubberyCreationForm (string target): Form("ShrubberyCreationForm", 147, 137, target) { + cout << "ShrubberyCreationForm parameter constructor called" << endl; +} + +ShrubberyCreationForm::~ShrubberyCreationForm (void) { + cout << "ShrubberyCreationForm default destructor called" << endl; +} + +void ShrubberyCreationForm::run(void) const { + std::ofstream file; + file.open(_target + "_shrubbery"); + file << " ,@@@@@@@," << endl; + file << " ,,,. ,@@@@@@/@@, .oo8888o." << endl; + file << " ,&\%%&%&&%,@@@@@/@@@@@@,8888\\88/8o" << endl; + file << " ,%&\\%&&%&&%,@@@\\@@@/@@@88\\88888/88'" << endl; + file << " %&&%&%&/%&&%@@\\@@/ /@@@88888\\88888'" << endl; + file << " %&&%/ %&\%%&&@@\\ V /@@' `88\\8 `/88'" << endl; + file << " `&%\\ ` /%&' |.| \\ '|8'" << endl; + file << " |o| | | | |" << endl; + file << " |.| | | | |" << endl; + file << " \\\\/ ._\\//_/__/ ,\\_//__\\\\/. \\_//__/_" << endl; + file.close(); +} diff --git a/CPP05/ex03/ShrubberyCreationForm.hpp b/CPP05/ex03/ShrubberyCreationForm.hpp new file mode 100644 index 0000000..508708a --- /dev/null +++ b/CPP05/ex03/ShrubberyCreationForm.hpp @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ShrubberyCreationForm.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/27 10:17:14 by narnaud #+# #+# */ +/* Updated: 2022/06/27 14:40:37 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include "Form.hpp" +class ShrubberyCreationForm: public Form { + + public: + ShrubberyCreationForm(string target); + ~ShrubberyCreationForm(void); + void run(void) const; +}; diff --git a/CPP05/ex03/ShrubberyCreationForm.o b/CPP05/ex03/ShrubberyCreationForm.o new file mode 100644 index 0000000000000000000000000000000000000000..eb0e4b7729b2f06d3ad18311ffd4a82073380f62 GIT binary patch literal 56676 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/24 13:16:27 by narnaud #+# #+# */ +/* Updated: 2022/06/27 16:34:59 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ShrubberyCreationForm.hpp" +#include "RobotomyRequestForm.hpp" +#include "PresidentialPardonForm.hpp" +#include "Bureaucrat.hpp" +#include "Intern.hpp" + +int main(void) +{ + Bureaucrat first("first", 1); + Bureaucrat mid("midle", 75); + Bureaucrat last("last", 150); + Intern rookie; + Form *form; + + form = rookie.makeForm("shrubbery creation", "house"); + last.signForm(*form); + first.signForm(*form); + last.executeForm(*form); + first.executeForm(*form); + delete form; + + form = rookie.makeForm("robotomy request", "bidule"); + last.signForm(*form); + first.signForm(*form); + last.executeForm(*form); + first.executeForm(*form); + delete form; + + form = rookie.makeForm("president pardon", "gerard"); + last.signForm(*form); + first.signForm(*form); + last.executeForm(*form); + first.executeForm(*form); + delete form; +} diff --git a/CPP05/ex03/main.o b/CPP05/ex03/main.o new file mode 100644 index 0000000000000000000000000000000000000000..a287cb289412dc2865c3ef8d2aa0a655051dd486 GIT binary patch literal 5924 zcmcgwYit}>6~5~%&N|uHE^bO19=1x53UtG+i4zB@!oe9bmYvqbjpSA`)A4%Z9oQGM zv+ah+;E<-uYO&-tB+!;0K?2FNzz=9puxex_kpf7lsZiAXK**GbvM7;^5N&`^^PQP< z*E6#=#0_w@v)?_B`<-*oy>oYFU;X=yx7Q01S|{*@D~xNn0bd=s(C)=`l?Hw8JvQycaaiJ(`=(;yM0%FL>Yc$S(d#QX%HImQ7)oci2a0NF-ahsri~|)no&v` zd0VsfQBCvneUEw0@qld`gy0kl5-&n*oJjV84gU{Q7+~CV)@_N$N zirFX4?3ktv?DhK3GhYYSwi|V%HAuAz!6o%kYMPPK4q1A}a9M)+Ei}3M8Ri>~x_tBC zBNaGPu7~^G3D|CiY~q8q{jJml^dN}Uz3Y0^hym01TeFoN=t(x~rScQ`BPN{yzYp%wwwDzCyQ5@Rd(*6|Di$l}S@5iz0t!jDVrdlp8 zsuf_Rxac^l$1b*xTv&E*X%~a8p&Z`kbmaJsr#6URHbl|?O~a2uFq{szo!=mS5Z-!ugLoqx zMgK2h$M8~P+wqO!LgUtx8^v3VQS?u&KTRWMB1HR>2!;4XqzR#a75ShLZ$_S9_nl~H zI=YRYX=s<2R>2k-b1ZF$w2p2eWfez94eM}6(lT`0%wVJ^{PyCC+;aW)q3^U6{L(PQ*^lSHBH!2GcmHkpy#l`u_T%+fk?;5L>t;V* zmlge@s9(=*#N7cu$ya+_3C#BytRp_L6uxj^#C8Eu^Vmm$c<6|QfOrRt{T9kFa1Pi8 z{5~)O{3dW6@Ca}-&;s5Ad=!XxiC7%i1Z)T5T_F|)ZUX)dK;r!}` z-j^6p0*UuajE8{4dyw&CK;mr$5^oqtyf+nzK2 zlIlQqc`l;%jx5hX1N<$aNg>bW2O+mZ&SSq*OCXmPjF;^o>>g3jzVXT`1h2ds^YO|* z4A@5kvL4|3WI#R3u_1f6ZCDvItJ}sCq(W76Y){d4hv zQ7Gb{!R1>jcr)xo5y$NmrS0{4M|V+gr*l_ii|KUU#to+^{~g-IsmVZ5jSHchx)jnTLa9wdnu^`1P(632G?N#1{N}q zZJouYvO z7=Qs7fB_hQ0T_S*7=Qs7fB_g-K?5#*-Y=~)Hlj?v|Lgbvw@t=wDD#x>8;o@*cPT$; zzysw0sgj8?Zauon6A0l8r&MBOMHUu?@J z!PJjH)Enb6;Q3IFw{@cSch-*w9+hlU!8dK`bYfNtF{LI=F!h!vN6*wxXc>{#spuN0 rtHo!6rGum?e{|Aw4V(j%4V6+Osh0%Z`V%liXT21-v +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/30 08:45:12 by narnaud #+# #+# */ +/* Updated: 2022/07/12 08:42:27 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Converter.hpp" + +Converter::Converter (void) { + cout << "Converter default constructor called " << endl; +} + +Converter::Converter (string str):_input(str){ + startConv(); + cout << "Converter parameter constructor called" << endl; +} + +Converter::Converter (Converter const & src) { + (void)src; + cout << "Converter copy constructor called" << endl; +} + +Converter & Converter::operator= (Converter const & src) { + (void)src; + cout << "Converter assignment operator called" << endl; + return (*this); +} + +Converter::~Converter (void) { + + cout << "Converter default destructor called" << endl; +} + + +void Converter::startConv(void) { + if (_input[0] == '\'' || _input[0] == '"') + { + _c = _input[1]; + _d = static_cast(_c); + } + else + { + _d = std::strtod(_input.c_str(), 0); + _c = static_cast(_d); + } + _i = static_cast(_d); + _f = static_cast(_d); +} + +void Converter::display(void) { + cout << "Input: " << _input << endl; + cout << "Char: " << _c << endl; + cout << "Double: " << _d << endl; + cout << "Float: " << _f << endl; + cout << "Integer: " << _i << endl; +} diff --git a/CPP06/ex00/Converter.hpp b/CPP06/ex00/Converter.hpp new file mode 100644 index 0000000..3898296 --- /dev/null +++ b/CPP06/ex00/Converter.hpp @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Converter.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: narnaud +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/30 08:45:12 by narnaud #+# #+# */ +/* Updated: 2022/07/12 08:46:08 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include +#include +#include +using std::cout; +using std::endl; +using std::string; + +class Converter{ + + string _input; + char _c; + int _i; + float _f; + double _d; + int _types[4]; + public: + Converter(void); + Converter(string str); + Converter(Converter const & src); + virtual ~Converter(void); + Converter & operator= (Converter const & src); + void startConv(void); + void display(void); +}; diff --git a/CPP06/ex00/Converter.o b/CPP06/ex00/Converter.o new file mode 100644 index 0000000000000000000000000000000000000000..ea72cfe090451a45534382f8cd24605c4a274556 GIT binary patch literal 22392 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 Zct?9E7ERo1?(!A%Eo`YQZ1VfG{|BR}$nF3D literal 0 HcmV?d00001 diff --git a/CPP06/ex00/Makefile b/CPP06/ex00/Makefile new file mode 100644 index 0000000..eed92f9 --- /dev/null +++ b/CPP06/ex00/Makefile @@ -0,0 +1,21 @@ +NAME = convert +SRCS = main.cpp Converter.cpp +OBJS= $(SRCS:.cpp=.o) + +CXXFLAGS = -std=c++98 -Werror -Wextra -Wall + +$(NAME) : $(OBJS) + c++ $(OBJS) -o $(NAME) + +all : $(NAME) + +clean : + rm -rf $(OBJS) + +fclean : clean + rm -rf $(NAME) + +re : fclean all + +.PHONY : all clean fclean re + diff --git a/CPP06/ex00/convert b/CPP06/ex00/convert new file mode 100755 index 0000000000000000000000000000000000000000..da02f2263453fa2642783f7a312b7811b4a9f0e8 GIT binary patch literal 27532 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/28 08:44:43 by narnaud #+# #+# */ +/* Updated: 2022/07/12 08:09:02 by narnaud ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include "Converter.hpp" + +using std::cout; +using std::endl; +using std::string; + +int main(int ac, char **av) { + + if (ac != 2) + return (EXIT_FAILURE); + string input = av[1]; + Converter raw(input); + raw.display(); + +} diff --git a/CPP06/ex00/main.o b/CPP06/ex00/main.o new file mode 100644 index 0000000000000000000000000000000000000000..2505a0b19a677a446ec1c2cdf16a4773aba8925e GIT binary patch literal 3792 zcmcInT}&KR6uyH9i>2(=`a`1$8*QSAZp*HghEx;CGBUK-5NH!LA(vqoVB+ku*&XP% z2}-4!ZZ;&uXkUm?-)hn{ec{2T7$PM2VvKK1^nnLVAgKxZphU6wow;|)>@FBUd&8Y? z&fjRgm zI?$Cxz;zzI?e_%ycgeSPb zxdz3ORE(`4!IGByM#vKjVdU^eR4^Wl#q+^9f^|3vd$nsh42RM$%Iw$=-h0XHeEiYh z-5Fs7w`p7ZhT$(q)9%KD+V;#dwmIFX9A~E)JAL>oh4qELQ`m)Syj@kQepA>rr3&w# zDX%m3lhQm>rhHoVf;?yLT8T%CIH%2?%DZ1Wgq}Sw3{vvE7@LwB+IDCq_9dx#W(T`> zY3*bW%UdV9Lwv8a(~d?f$v-9SJMrI=c5&O3#y=}~nR2P4y^|@~P~|jk9~KH#R|aVA zFGDzrKKB<+0h+8M3%qk*D4J_RAC|=r;`(#j6B3n6E}P=<5C`S@c0+{8dNWoOPkt@v zOVUr)eOo^peu2LQpPc`;ejme+?ZWR4+}34YxgOi{EyFJ)`Q*B6>sO8X)$StitMK#q zeJ_&3EqUMoPK>UJc^LJCq-g$dT%HH|<8vH?J{J}@cHOO_4$0a{~4+Z5r zLfK8oK9Sa>K>iW)@!NF>ez~D2{-Yv)r^ugT{qYk;@e$O^Z>Ku=>L^kSb~n>1pnyb<4?sNQJI|SyfMPo;Fiz*9l&n zCKfA6!%f>vP_9Cfb}Op3_eIscF#M;{wp;Z`Sno@?RnC@ZVX^jAm12^IRdIK$2{Vx~ z9mW&7m1MMhwh6=@5nEw@m1^MJN?MNEamGl1j2l^<_nCuMl4DmHL$1o!lYA>vo2dcA9CU^#gWqdk^^V8fU6mZM?UaKJtE&GGZS*10s-0(W zV%%wO?Ywvt=gU34rAt=7-C3+JI!CGsMn0I$@|2m*3@3HlaxU`Gde$0``~Cs6&3d{Q F{{c9(U!(v4 literal 0 HcmV?d00001