167 lines
3.9 KiB
C++
167 lines
3.9 KiB
C++
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* Phonebook.cpp :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: aortigos <aortigos@student.42malaga.com +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/09/04 00:44:08 by aortigos #+# #+# */
|
|
/* Updated: 2025/09/06 15:43:46 by aortigos ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "Phonebook.hpp"
|
|
|
|
Phonebook::Phonebook()
|
|
{
|
|
this->index = 0;
|
|
}
|
|
|
|
void Phonebook::addContacts()
|
|
{
|
|
std::string str;
|
|
|
|
str = "";
|
|
while (str == "")
|
|
{
|
|
std::cout << "Introduzca el nombre: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
this->contacts[this->index % 8].setName(str);
|
|
|
|
str = "";
|
|
while (str == "")
|
|
{
|
|
std::cout << "Introduzca el apellido: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
this->contacts[this->index % 8].setSurname(str);
|
|
|
|
str = "";
|
|
while (str == "")
|
|
{
|
|
std::cout << "Introduzca el nickname: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
this->contacts[this->index % 8].setNickname(str);
|
|
|
|
str = "";
|
|
while (str == "")
|
|
{
|
|
std::cout << "Introduzca el telefono: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
this->contacts[this->index % 8].setPhoneNumber(str);
|
|
|
|
str = "";
|
|
while (str == "")
|
|
{
|
|
std::cout << "Introduzca el secreto: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
this->contacts[this->index % 8].setSecret(str);
|
|
|
|
this->index++;
|
|
}
|
|
|
|
static void print_name(std::string str)
|
|
{
|
|
int i;
|
|
int j;
|
|
|
|
i = 9;
|
|
j = 0;
|
|
|
|
while (str[j] != '\0')
|
|
j++;
|
|
while (i >= j && j <= 10)
|
|
{
|
|
std::cout << " ";
|
|
i--;
|
|
}
|
|
i = 0;
|
|
while (str[i] != '\0' && i <= 9)
|
|
{
|
|
if (i == 9 && j > 10)
|
|
std::cout << ".";
|
|
else
|
|
std::cout << str[i];
|
|
i++;
|
|
}
|
|
std::cout << "|";
|
|
|
|
}
|
|
|
|
void Phonebook::print_table()
|
|
{
|
|
int i;
|
|
int j;
|
|
std::string c;
|
|
|
|
i = 0;
|
|
j = 0;
|
|
std::cout << "---------------------------------------------" << std::endl;
|
|
std::cout << "| Index| Nombre| Apellido| Nickname|" << std::endl;
|
|
std::cout << "---------------------------------------------" << std::endl;
|
|
|
|
if (this->index >= 9)
|
|
j = 8;
|
|
else
|
|
j = this->index;
|
|
while (i < j)
|
|
{
|
|
c = std::string(1, i + '0');
|
|
std::cout << "|";
|
|
print_name(c);
|
|
print_name(this->contacts[i].getName());
|
|
print_name(this->contacts[i].getSurname());
|
|
print_name(this->contacts[i].getNickname());
|
|
std::cout << std::endl;
|
|
i++;
|
|
}
|
|
std::cout << "---------------------------------------------" << std::endl;
|
|
|
|
}
|
|
|
|
void Phonebook::find_contact(int i)
|
|
{
|
|
if(this->contacts[i].getName() != "NULL")
|
|
{
|
|
std::cout << "----------------------------------" << std::endl;
|
|
std::cout << "Nombre: " << this->contacts[i].getName() << std::endl;
|
|
std::cout << "Apellido: " << this->contacts[i].getSurname() << std::endl;
|
|
std::cout << "Nickname: " << this->contacts[i].getNickname() << std::endl;
|
|
std::cout << "Numero: " << this->contacts[i].getPhoneNumber() << std::endl;
|
|
std::cout << "Secreto: " << this->contacts[i].getSecret() << std::endl;
|
|
std::cout << "----------------------------------" << std::endl;
|
|
} else {
|
|
std::cout << "Contacto no encontrado" << std::endl;
|
|
}
|
|
}
|
|
|
|
void Phonebook::showContacts()
|
|
{
|
|
int i;
|
|
std::string str;
|
|
|
|
i = 0;
|
|
str = "";
|
|
if (this->index == 0)
|
|
{
|
|
std::cout << "No hay contactos." << std::endl;
|
|
return ;
|
|
}
|
|
|
|
print_table();
|
|
|
|
while (str == "" || str.length() != 1 || (str[0] < '0' || str[0] > '7'))
|
|
{
|
|
std::cout << "Introduzca el index a buscar: ";
|
|
std::getline(std::cin, str);
|
|
}
|
|
|
|
i = str[0] - '0';
|
|
|
|
find_contact(i);
|
|
}
|