135 lines
3.5 KiB
C++
135 lines
3.5 KiB
C++
#include "PhoneBook.class.hpp"
|
|
#include "Contact.class.hpp"
|
|
|
|
PhoneBook::PhoneBook( void ) {
|
|
|
|
this->contact_count = 0;
|
|
return;
|
|
}
|
|
|
|
PhoneBook::~PhoneBook( void ) {
|
|
return;
|
|
}
|
|
|
|
void PhoneBook::add_contact() {
|
|
|
|
std::string str;
|
|
int it;
|
|
|
|
this->contact_count++;
|
|
it = this->contact_count;
|
|
if (it > 8)
|
|
it = 1;
|
|
it--;
|
|
|
|
std::cout << B_CYAN "enter a first name pliz :" << std::endl;
|
|
while (contact[it].get_first().length() == 0)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
this->contact[it].add_first(str);
|
|
}
|
|
|
|
std::cout << B_CYAN "enter a last name pliz :" << std::endl;
|
|
while (contact[it].get_last().length() == 0)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
this->contact[it].add_last(str);
|
|
}
|
|
|
|
std::cout << B_CYAN "enter a nickname pliz :" << std::endl;
|
|
while (contact[it].get_nick().length() == 0)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
this->contact[it].add_nick(str);
|
|
}
|
|
|
|
std::cout << B_CYAN "enter a number pliz :" << std::endl;
|
|
while (contact[it].get_num().length() == 0)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
this->contact[it].add_num(str);
|
|
}
|
|
|
|
std::cout << B_CYAN "enter a secret of this contact pliz :" << std::endl;
|
|
while (contact[it].get_secret().length() == 0)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
this->contact[it].add_secret(str);
|
|
}
|
|
}
|
|
|
|
std::string truncate(std::string str, size_t len) {
|
|
|
|
if (str.length() > len)
|
|
return str.substr(0, len - 1) + ".";
|
|
return str;
|
|
|
|
}
|
|
|
|
void PhoneBook::print_phonebook() {
|
|
|
|
std::cout << std::endl;
|
|
int it;
|
|
|
|
it = this->contact_count;
|
|
if (it > 8)
|
|
it = 8;
|
|
it--;
|
|
|
|
std::cout << " ------------------------------------------- " << std::endl;
|
|
std::cout << "|" << std::setw(10) << "index";
|
|
std::cout << "|" << std::setw(10) << "first name";
|
|
std::cout << "|" << std::setw(10) << "last name";
|
|
std::cout << "|" << std::setw(10) << "nickname";
|
|
std::cout << "|" << std::endl;
|
|
std::cout << " ---------- ---------- ---------- ---------- " << std::endl;
|
|
for (int i = 0; i <= it; i++)
|
|
{
|
|
std::cout << "|" << std::setw(10) << i;
|
|
std::cout << "|" << std::setw(10) << truncate(contact[i].get_first(), 10);
|
|
std::cout << "|" << std::setw(10) << truncate(contact[i].get_last(), 10);
|
|
std::cout << "|" << std::setw(10) << truncate(contact[i].get_nick(), 10);
|
|
std::cout << "|" << std::endl;
|
|
}
|
|
std::cout << " ------------------------------------------- " << std::endl;
|
|
std::cout << std::endl;
|
|
}
|
|
|
|
void PhoneBook::print_contact( int id ) {
|
|
|
|
std::cout << std::endl;
|
|
std::cout << B_CYAN "FIRST NAME : " << RESET << this->contact[id].get_first() << std::endl;
|
|
std::cout << B_CYAN " LAST NAME : " << RESET << this->contact[id].get_last() << std::endl;
|
|
std::cout << B_CYAN " NICKNAME : " << RESET << this->contact[id].get_nick() << std::endl;
|
|
std::cout << B_CYAN " NUMBER : " << RESET << this->contact[id].get_num() << std::endl;
|
|
std::cout << B_CYAN " SECRET : " << RESET << this->contact[id].get_secret() << std::endl;
|
|
|
|
}
|
|
|
|
void PhoneBook::search_contact() {
|
|
|
|
std::string str;
|
|
std::stringstream convert;
|
|
int id;
|
|
|
|
this->print_phonebook();
|
|
id = -1;
|
|
std::cout << std::endl << B_CYAN "choose an index :" << std::endl;
|
|
while (id < 0 || id > this->contact_count - 1 || id > 7)
|
|
{
|
|
std::cout << B_BLUE "-> " RESET;
|
|
std::getline(std::cin, str);
|
|
convert << str;
|
|
convert >> id;
|
|
if (id < 0 || id > this->contact_count - 1 || id > 7)
|
|
std::cout << B_RED "sorry, not a valid index" RESET << std::endl;
|
|
}
|
|
this->print_contact(id);
|
|
|
|
}
|