init
This commit is contained in:
commit
67fbbf113b
22
ex00/megaphone.cpp
Normal file
22
ex00/megaphone.cpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <cctype>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
if (argc < 2) {
|
||||||
|
std::cout << "* LOUD AND UNBEARABLE FEEDBACK NOISE *" << std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string message;
|
||||||
|
for (int i = 1; i < argc; i++) {
|
||||||
|
message += argv[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; message[i] != '\0'; i++) {
|
||||||
|
message[i] = std::toupper(message[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << message << std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
60
ex01/Contact.cpp
Normal file
60
ex01/Contact.cpp
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#include <ios>
|
||||||
|
#include <ostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include "Contact.hpp"
|
||||||
|
#include "utils.hpp"
|
||||||
|
|
||||||
|
Contact::Contact(std::string first_name, std::string last_name, std::string nickname, std::string phone_number)
|
||||||
|
{
|
||||||
|
this->nickname = nickname;
|
||||||
|
this->last_name = last_name;
|
||||||
|
this->first_name = first_name;
|
||||||
|
this->phone_number = phone_number;
|
||||||
|
}
|
||||||
|
|
||||||
|
Contact::Contact()
|
||||||
|
{
|
||||||
|
this->first_name = "";
|
||||||
|
this->last_name = "";
|
||||||
|
this->phone_number = "";
|
||||||
|
this->phone_number = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
Contact::~Contact()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Contact &Contact::operator=(const Contact &contact)
|
||||||
|
{
|
||||||
|
this->first_name = contact.first_name;
|
||||||
|
this->last_name = contact.last_name;
|
||||||
|
this->nickname = contact.nickname;
|
||||||
|
this->phone_number = contact.phone_number;
|
||||||
|
return (*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Contact::isValid() const
|
||||||
|
{
|
||||||
|
return (!(this->first_name == "" || this->last_name == "" || this->nickname == "" || this->phone_number == ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Contact::to_string() const
|
||||||
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
|
||||||
|
ss << std::setw(10) << truncated(this->first_name) << "|"
|
||||||
|
<< std::setw(10) << truncated(this->last_name) << "|"
|
||||||
|
<< std::setw(10) << truncated(this->nickname) << "|"
|
||||||
|
<< std::setw(10) << truncated(this->phone_number);
|
||||||
|
|
||||||
|
return(ss.str());
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ostream& operator<<(std::ostream& os, const Contact& contact)
|
||||||
|
{
|
||||||
|
os << contact.to_string() << std::endl;
|
||||||
|
return (os);
|
||||||
|
}
|
22
ex01/Contact.hpp
Normal file
22
ex01/Contact.hpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
class Contact {
|
||||||
|
private:
|
||||||
|
std::string first_name;
|
||||||
|
std::string last_name;
|
||||||
|
std::string nickname;
|
||||||
|
std::string phone_number;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Contact(std::string first_name, std::string last_name, std::string nickname, std::string phone_number);
|
||||||
|
Contact();
|
||||||
|
~Contact();
|
||||||
|
|
||||||
|
Contact &operator=(const Contact &contact);
|
||||||
|
|
||||||
|
bool isValid() const;
|
||||||
|
std::string to_string() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::ostream& operator<<(std::ostream& os, const Contact& fixed);
|
36
ex01/PhoneBook.cpp
Normal file
36
ex01/PhoneBook.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "PhoneBook.hpp"
|
||||||
|
#include <cstddef>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
PhoneBook::PhoneBook()
|
||||||
|
{
|
||||||
|
this->len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PhoneBook::add_contact(Contact new_contact)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
if (this->len < 8)
|
||||||
|
{
|
||||||
|
this->contacts[this->len] = new_contact;
|
||||||
|
this->len++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (i = this->len; i < 0; i--) {
|
||||||
|
this->contacts[i] = this->contacts[i - 1];
|
||||||
|
}
|
||||||
|
this->contacts[0] = new_contact;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PhoneBook::display_contacts()
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < this->len; i++)
|
||||||
|
{
|
||||||
|
std::cout << this->contacts[i];
|
||||||
|
}
|
||||||
|
}
|
13
ex01/PhoneBook.hpp
Normal file
13
ex01/PhoneBook.hpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include "Contact.hpp"
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
class PhoneBook {
|
||||||
|
private:
|
||||||
|
Contact contacts[8];
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PhoneBook();
|
||||||
|
void add_contact(Contact new_contact);
|
||||||
|
void display_contacts();
|
||||||
|
};
|
55
ex01/main.cpp
Normal file
55
ex01/main.cpp
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
#include <string>
|
||||||
|
#include "PhoneBook.hpp"
|
||||||
|
|
||||||
|
Contact read_contact()
|
||||||
|
{
|
||||||
|
std::string first_name;
|
||||||
|
std::string last_name;
|
||||||
|
std::string nickname;
|
||||||
|
std::string phone_number;
|
||||||
|
|
||||||
|
std::cout << "first_name: ";
|
||||||
|
std::getline(std::cin, first_name);
|
||||||
|
std::cout << "last_name: ";
|
||||||
|
std::getline(std::cin, last_name);
|
||||||
|
std::cout << "nickname: ";
|
||||||
|
std::getline(std::cin, nickname);
|
||||||
|
std::cout << "phone_number: ";
|
||||||
|
std::getline(std::cin, phone_number);
|
||||||
|
|
||||||
|
return Contact(first_name, last_name, nickname, phone_number);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::string command;
|
||||||
|
Contact new_contact;
|
||||||
|
PhoneBook phone_book;
|
||||||
|
|
||||||
|
phone_book = PhoneBook();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
std::cout << "command: ";
|
||||||
|
std::getline(std::cin, command);
|
||||||
|
if (command == "ADD")
|
||||||
|
{
|
||||||
|
new_contact = read_contact();
|
||||||
|
if (new_contact.isValid())
|
||||||
|
phone_book.add_contact(new_contact);
|
||||||
|
else
|
||||||
|
std::cerr << "Contact Error !" << std::endl;
|
||||||
|
}
|
||||||
|
else if (command == "SEARCH")
|
||||||
|
{
|
||||||
|
phone_book.display_contacts();
|
||||||
|
}
|
||||||
|
else if (command == "EXIT")
|
||||||
|
{
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
11
ex01/utils.cpp
Normal file
11
ex01/utils.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include <string>
|
||||||
|
|
||||||
|
std::string truncated(const std::string str)
|
||||||
|
{
|
||||||
|
std::string out;
|
||||||
|
|
||||||
|
out = str.substr(0, 10);
|
||||||
|
if (str.length() > 10)
|
||||||
|
out[9] = '.';
|
||||||
|
return (out);
|
||||||
|
}
|
3
ex01/utils.hpp
Normal file
3
ex01/utils.hpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include <string>
|
||||||
|
|
||||||
|
std::string truncated(const std::string str);
|
BIN
subject.pdf
Normal file
BIN
subject.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user