Files
cpp00/ex01/Phonebook/Phonebook.cpp
Angel Ortigosa Perez 95c25afc03 cpp00...
2025-09-07 10:02:26 +02:00

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);
}