narnaud
3 years ago
10 changed files with 277 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||
NAME = megaphone |
|||
SRC = main.cpp |
|||
|
|||
CC = c++ |
|||
CFLAGS = -std=c++98 -Wall -Werror -Wextra |
|||
RM = rm -rf |
|||
|
|||
$(NAME): $(SRC) |
|||
$(CC) $(CFLAGS) $(SRC) -o $(NAME) |
|||
|
|||
all: $(NAME) |
|||
|
|||
clean: |
|||
$(RM) $(NAME) |
|||
|
|||
.PHONY: all re |
@ -0,0 +1,34 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* main.cpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 08:20:39 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 08:44:34 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
|
|||
# include <iostream> |
|||
# include <locale.h> |
|||
|
|||
int main(int argc, char **argv) |
|||
{ |
|||
if (argc < 2) |
|||
std::cout << "* LOUD AND UNBEARABLE FEEDBACK NOISE *"; |
|||
else |
|||
{ |
|||
int i = 1; |
|||
char *ret; |
|||
while (i < argc) |
|||
{ |
|||
ret = argv[i]; |
|||
while (*ret) |
|||
std::cout << (char)toupper(*(ret++)); |
|||
i++; |
|||
} |
|||
} |
|||
std::cout << std::endl; |
|||
return (EXIT_SUCCESS); |
|||
} |
Binary file not shown.
@ -0,0 +1,55 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* Contact.cpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 13:29:20 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 16:48:13 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
|
|||
#include "Contact.hpp" |
|||
Contact::Contact(){} |
|||
|
|||
void Contact::set(int id) |
|||
{ |
|||
this->id = id; |
|||
std::cout << "Enter new contact first name:\n"; |
|||
std::cin >> this->datas[FIRST]; |
|||
std::cout << "Enter new contact last name:\n"; |
|||
std::cin >> this->datas[LAST]; |
|||
std::cout << "Enter new contact nickname:\n"; |
|||
std::cin >> this->datas[NICK]; |
|||
std::cout << "Enter new contact number:\n"; |
|||
std::cin >> this->datas[NUMBER]; |
|||
std::cout << "Enter new contact secret:\n"; |
|||
std::cin >> this->datas[SECRET]; |
|||
std::cout << std::endl; |
|||
} |
|||
|
|||
void Contact::summary() |
|||
{ |
|||
std::cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; |
|||
std::cout << "|"; |
|||
std::cout << std::setw(2) << this->id; |
|||
std::cout << "|"; |
|||
for (int i = 0; i <= SECRET; i++) |
|||
{ |
|||
if (this->datas[i].length() < 10) |
|||
std::cout << std::setw(10) << this->datas[i] << "|"; |
|||
else |
|||
std::cout << this->datas[i].substr(0, 9) << "." << "|"; |
|||
} |
|||
std::cout << "\nvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"; |
|||
} |
|||
|
|||
void Contact::get() |
|||
{ |
|||
std::cout <<"First name : " << this->datas[FIRST] << std::endl; |
|||
std::cout <<"Last name : " << this->datas[LAST] << std::endl; |
|||
std::cout <<"Nick name : " << this->datas[NICK] << std::endl; |
|||
std::cout <<"Phone nb : " << this->datas[NUMBER] << std::endl; |
|||
std::cout <<"Dark secret : " << this->datas[SECRET] << std::endl; |
|||
} |
@ -0,0 +1,39 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* Contact.hpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 13:02:55 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 16:35:43 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
#ifndef CONTACT_HPP |
|||
# define CONTACT_HPP |
|||
|
|||
# include <iostream> |
|||
# include <string> |
|||
# include <iomanip> |
|||
|
|||
enum e_datas |
|||
{ |
|||
FIRST, |
|||
LAST, |
|||
NICK, |
|||
NUMBER, |
|||
SECRET, |
|||
}; |
|||
|
|||
class Contact |
|||
{ |
|||
public: |
|||
Contact(); |
|||
void set(int id); |
|||
void summary(); |
|||
void get(); |
|||
private: |
|||
int id; |
|||
std::string datas[5]; |
|||
}; |
|||
#endif |
@ -0,0 +1,72 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* PhoneBook.cpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 10:14:16 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 16:00:30 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
|
|||
#include "PhoneBook.hpp" |
|||
|
|||
PhoneBook::PhoneBook() |
|||
{ |
|||
this->id = 0; |
|||
} |
|||
|
|||
void PhoneBook::add() |
|||
{ |
|||
int id = this->id % CONTACTS_AMOUNT; |
|||
if (this->id > 7) |
|||
{ |
|||
std::cout << "You gonna remove the contact n." << id; |
|||
std::cout << "\nTo continue, type 'y': "; |
|||
std::string confirm = 0; |
|||
std::cin >> confirm; |
|||
if (confirm != "y") |
|||
{ |
|||
std::cout << "\nAbort.\n"; |
|||
return ; |
|||
} |
|||
std::cout << std::endl; |
|||
} |
|||
this->contacts[id].set(id); |
|||
this->id++; |
|||
} |
|||
void PhoneBook::search() |
|||
{ |
|||
int id = 0; |
|||
Contact ctct; |
|||
|
|||
ctct = this->contacts[0]; |
|||
while (id++ < this->id % CONTACTS_AMOUNT) |
|||
{ |
|||
ctct.summary(); |
|||
ctct = this->contacts[id]; |
|||
} |
|||
std::string sid; |
|||
std::cout << "Which contact do you wanna see [id?]:"; |
|||
std::cin >> sid; |
|||
id = std::stoi(sid); |
|||
ctct = this->contacts[id]; |
|||
ctct.get(); |
|||
} |
|||
|
|||
int PhoneBook::run() |
|||
{ |
|||
std::cout << "PhoneBook.\n" << "Commands available : ADD, SEARCH, EXIT.\n"; |
|||
std::cout << "What do you want?\n"; |
|||
std::cin >> this->cmd; |
|||
if (cmd == "EXIT") |
|||
return (EXIT_FAILURE); |
|||
if (cmd == "SEARCH") |
|||
this->search(); |
|||
else if (cmd == "ADD") |
|||
this->add(); |
|||
else |
|||
std::cout << "Unknown command.\n"; |
|||
return (EXIT_SUCCESS); |
|||
} |
@ -0,0 +1,29 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* PhoneBook.hpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 09:31:44 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 15:35:30 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
#ifndef PHONEBOOK_HPP |
|||
# define PHONEBOOK_HPP |
|||
# include "Contact.hpp" |
|||
# define CONTACTS_AMOUNT 8 |
|||
|
|||
class PhoneBook |
|||
{ |
|||
public: |
|||
PhoneBook(); |
|||
int run(); |
|||
private: |
|||
Contact contacts[CONTACTS_AMOUNT]; |
|||
std::string cmd; |
|||
int id; |
|||
void add(); |
|||
void search(); |
|||
}; |
|||
#endif |
Binary file not shown.
@ -0,0 +1,22 @@ |
|||
/* ************************************************************************** */ |
|||
/* */ |
|||
/* ::: :::::::: */ |
|||
/* main.cpp :+: :+: :+: */ |
|||
/* +:+ +:+ +:+ */ |
|||
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */ |
|||
/* +#+#+#+#+#+ +#+ */ |
|||
/* Created: 2022/06/13 09:31:46 by narnaud #+# #+# */ |
|||
/* Updated: 2022/06/13 15:16:37 by narnaud ### ########.fr */ |
|||
/* */ |
|||
/* ************************************************************************** */ |
|||
|
|||
#include "PhoneBook.hpp" |
|||
|
|||
int main(void) |
|||
{ |
|||
PhoneBook pb; |
|||
|
|||
while (pb.run() == EXIT_SUCCESS) |
|||
; |
|||
return (EXIT_SUCCESS); |
|||
} |
@ -1,2 +1,12 @@ |
|||
# CPP |
|||
|
|||
## Subjects : |
|||
- [CPP00](https://cdn.intra.42.fr/pdf/pdf/48426/fr.subject.pdf) + ress. |
|||
- [CPP01](https://cdn.intra.42.fr/pdf/pdf/50707/en.subject.pdf) |
|||
- [CPP02](https://cdn.intra.42.fr/pdf/pdf/48502/fr.subject.pdf) |
|||
- [CPP03](https://cdn.intra.42.fr/pdf/pdf/48500/fr.subject.pdf) |
|||
- [CPP04](https://cdn.intra.42.fr/pdf/pdf/48498/fr.subject.pdf) |
|||
- [CPP05](https://cdn.intra.42.fr/pdf/pdf/51045/fr.subject.pdf) |
|||
- [CPP06](https://cdn.intra.42.fr/pdf/pdf/48493/fr.subject.pdf) |
|||
- [CPP07](https://cdn.intra.42.fr/pdf/pdf/48487/fr.subject.pdf) + .cpp |
|||
- [CPP08](https://cdn.intra.42.fr/pdf/pdf/48485/fr.subject.pdf) |
|||
|
Loading…
Reference in new issue