/*
Universidad Tecnologica de la Zona Metropolitana de Guadalajara
Ingenieria en desarrollo y gestion de softwware
1ro A - Proyecto : Red Social Universitaria
-> Nuve <--
Codigo desarrollado por : Apartados :
Lider de proyecto Osmar Jaime Rivera Martinez ## Estructurador del codigo, Interfaz, Macros, Lista de amigos, Publicar, Notificaiones.
Olga Liliana Lopez Contreras ## Mi perfil,
Ivan Alejandro Santana Hernandez ## Mensajes, Tema, Interfaz y diseño
Estructura del proyecto:
----------------------------------------------------------------------------------------------------------------------
#LIBRERIAS [Librerias que utlizamos]
#MACROS [Para los colores]
#INTERFAZ [Macros para Limpiar, Pausar ventana e indicar tamaño de ventana, Titulo y Mensaje de error]
#ESTRUCTURAS [Para guaradar los usuarios y contraseñas en un vector]
#VECTORES [Para crear un Vector donde guardaremos los datos]
#LLAMANDO FUNCIONES [Aqui llamamos las funciones para poder organizar todo el codigo]
Estructura de las funciones:
----------------------------------------------------------------------------------------------------------------------
*MAIN [Inicio de nuestro codigo]
*Funcion GOTOXY [Contiene la funcion GOTOXY para poder centrar el texto]
*Registro [Funcion para registrar los usuarios]
*Inicio de sesion [Funcion para iniciar sesion, compara password, user e indica las opciones de inicio]
*Funcion Buscar [Funcion vacia para buscar usuarios]
*Lista de usuarios [Funcion para ver los usuarios registrados]
*Mensajes [Funcion para escribir y ver mensajes]
*Personalizacion [Funcion para personalizar la consola]
*Mi perfil [Funcion para ver perfil y editar perfil]
*Publicar [Funcion para realizar un post y ver post]
*Notificaciones [Fucion para ver sus notificaciones]
*/
//--------------------------------------------------------- Librerias ------------------------------------------------------------------------->
#include <iostream>
#include <string>
#include <windows.h>
#include <vector> // son similares a los arreglos, pero tienen la ventaja de poder cambiar su tamaño durante la ejecución del programa.
using namespace std;
//------------------ Variables que se necesitan en todas las funciones ------------------------------------------------------------------------->
string post;
//--------------------------------------------------------- Macros ------------------------------------------------------------------------------>
#define Blanco "\033[0m" // Blanco
#define Rojo "\033[1;31m" // Rojo Para errores y boton volver
#define Verde "\033[1;32m" // Verde Para decir que es correcto
#define AzulFuerte "\033[1;34m" // Azul fuerte Para titulos
#define Azul "\033[34m" // Azul Para subtitulos
#define Morado "\033[35m" // Morado Para apartados
#define Amarillo "\033[33m" // Amarillo Para opciones
#define Naranja "\033[38;5;208m" // Naranja Para opcion siguiente
#define Cian "\033[36m" // Cian
#define Rosa "\033[35m" // Rosa
//--------------------------------------------------------- Interfaz ---------------------------------------------------------------------------->
#define ventana system("mode con: cols=95 lines=40"); // Le indicamos el tamaño de la ventana (95 clumnas x 40 lineas)
#define Limpiar_Pantalla system("cls"); // Borra lo escrito en pantalla (Limpia la pantalla)
#define Pausa system("pause"); // Pausa y continua con enter
// Aqui se estamos creando unas macros para poner textos solo llamdolas ademas usamos "u8" para poder colocar simbolos en consola, u8 significa
#define Titulo \
gotoxy(2, 1); \
cout << Blanco << u8"═══════════════════════════════════════════════════════" << endl; \
gotoxy(1, 2); \
cout << u8" ╔══════════════════╗═══╗═╗ " << endl; \
gotoxy(1, 3); \
cout << u8" ║ " << Blanco << "N u v e" << AzulFuerte << u8" ║═╗ "; \
gotoxy(1, 4); \
cout << u8" ╚════════════════════╚══╚══╝ " << Blanco << endl; \
gotoxy(2, 5); \
cout << Blanco << u8"═══════════════════════════════════════════════════════" << endl; \
gotoxy(2, 7); \
cout << Blanco << u8"═══════════════════════════════════════════════════════" << endl;
// Aqui creamos otra macro pero para el texto de error
#define error \
Limpiar_Pantalla; \
cout << Rojo << u8"▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓" << endl; \
cout << "\t\t\t\t Opción inválida. Intente nuevamente." << endl; \
cout << Rojo << u8"▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓" \
<< Blanco << endl;
//--------------------------------------------------------- Estructuras ------------------------------------------------------------------------>
/* Estructura: es un tipo de dato que permite agrupar varios valores relacionados en una sola entidad.
representan objetos más complejos en un programa.*/
struct User // La esctructura de nuestro vector se llama "User"
{
string username; // Aqui guardamos Usuarios
string password; // Aqui guardamos Contraseñas
};
//--------------------------------------------------------- Vectores -------------------------------------------------------------------------->
vector<User> users; // Le creamos un vector "users" a unuestra estrectura "User"
//------------------------------------------------------ Llamando Funciones -------------------------------------------------------------------------->
// Aqui llamamos las funciones para dar orden y leerlas mejor
void gotoxy(int x, int y); // Gotoxy para el diseño de interfaz nos ayuda a colorcar en la linea y columna que deseamos por cordenadas
int RegistrarUsuario(); // Registro de usuarios
int BuscarUsuario(string username); // Busqueda de usuarios
void ListaNombresUsuarios(); // Lista de amigos
int IniciarSesion(); // Inicia sesion
int MiPerfil(); // Mi Perfil
int Publicar(); // Publicar
void Mensajes(); // Mensajes
int Notificaciones(); // Notificaciones
void Tema(); // Personalizacion
//******************************************************** GOTOXY *********************************************************************************>
void gotoxy(int x, int y)
{
HANDLE hcon;
hcon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X = x;
dwPos.Y = y;
SetConsoleCursorPosition(hcon, dwPos);
}
//**************************************************************** MAIN ***************************************************************************>
int main()
{
SetConsoleOutputCP(CP_UTF8); // Le indicamos que usaremos simbolos en estec aso ═ ║
int option; // Variables para opciones
bool volver = false; // Variable para regresarse al menu y regresamos el false para evitar errores
Limpiar_Pantalla;
gotoxy(10, 2);
cout << u8"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 3);
cout << u8"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 4);
cout << u8"░░░░░░░░┌──┐░░░░░░░░░░░░░░░░░░░┌┐░░░░░░░┌┐░░░░┌─┐░┌┬┐░┌┬┐░░┌┬───┐░░░░░░" << endl;
gotoxy(10, 5);
cout << u8"░░░░░░░░│┌┐│░░░░░░░░░░░░░░░░░░░││░░░░░░░││░░░░││└┐│││░││└┐┌┘│┌──┘░░░░░░" << endl;
gotoxy(10, 6);
cout << u8"░░░░░░░░│└┘└┬┬──┬─┐┌┐┌┬──┬─┐┌┬─┘├──┐┌──┐││┌──┐│┌┐└┘││░│├┐││┌┤└──┐░░░░░░" << endl;
gotoxy(10, 7);
cout << u8"░░░░░░░░│┌─┐├┤│─┤┌┐┤└┘││─┤┌┐┼┤┌┐│┌┐││┌┐││││┌┐│││└┐│││░│││└┘││┌──┘░░░░░░" << endl;
gotoxy(10, 8);
cout << u8"░░░░░░░░│└─┘│││─┤││├┐┌┤│─┤││││└┘│└┘││┌┐││└┤┌┐│││░│││└─┘│└┐┌┘│└──┐░░░░░░" << endl;
gotoxy(10, 9);
cout << u8"░░░░░░░░└───┴┴──┴┘└┘└┘└──┴┘└┴┴──┴──┘└┘└┘└─┴┘└┘└┘░└─┴───┘░└┘░└───┘░░░░░░" << endl;
gotoxy(10, 10);
cout << u8"░░░░░░░░░░░░░░░░░░░░░░░░░░▄▄▄▄▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 11);
cout << u8"░░░░░░░░░░░░░░░░░▄▄▄▄▄░░█████████▄▄█████▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 12);
cout << u8"░░░░░░░░░░░░░░░███████████▀▒▒▒▀██████▀███▌░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 13);
cout << u8"░░░░░░░░░░░░░▐███▒▒▒▒░███░▒▒░░▒▐██▒▒▒▒▒▒███████▄░░░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 14);
cout << u8"░░░░░░░░░░░▄▄██▒▒▒▒▒▒▒░█▌▒░░░░░▐█▒▒░░░░░▐█▀▀▀████▄░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 15);
cout << u8"░░░░░░░░░██████▒▒▒░░░▒▒▒▒▒░░░▒▒▒▒▒░░░░░░░▀▒▒▒▒▒▀██░░░░░░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 16);
cout << u8"░░░░░░░▐███░▒▒▒▒▒▒░░░▒▒▒▒▒▒░░▒░░░░░░░▒▒░░▒▒░░░░░▐██████░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 17);
cout << u8"░░░░░░░▐█▒▒▒▒░░░░░░░▒▒░░░░░▒▒░▒▒░░░░░░▒▒▒▒░░░░░░██▀▀▀███░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 18);
cout << u8"░░░░░░██░▒░░░░░░░░░▒░░░░░░▒▒░░░░░░░▒▒▒▒░░░░░░░░░██░▒▒░▀██░░░░░░░░░░░░░░" << endl;
gotoxy(10, 19);
cout << u8"░░░░░░██░░░░░░░░▒▒▒░░░░░░▒▒░░░░░▒▒▒░░░░░░░░░░░░░░▒▒░▒▒░██░░░░░░░░░░░░░░" << endl;
gotoxy(10, 20);
cout << u8"░░░░░░███▄▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒░░░░░▐█░░░░░░░░░░░░░░" << endl;
gotoxy(10, 21);
cout << u8"░░░░░░▀█████░░░░░░▄▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░" << endl;
gotoxy(10, 22);
cout << u8"░░░░░░░░░░███████████▄▄▄▄▄▄█████▄▄░░░░▄▄██▄▄▄▄▄▄▄▄███████░░░░░░░░░░░░░░" << endl;
gotoxy(10, 23);
cout << u8"░░░░░░░░░░░▀▀▀▀▀▀▀▀█████████▀▀█████████████████████▀▀▀▀░░░░░░░░░░░░░░░░" << endl;
gotoxy(10, 24);
cout << u8"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▀▀▀▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" << endl;
Pausa;
do
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8"Menu>" << endl; // Comenzamos con el titulo
gotoxy(18, 9);
cout << Azul << u8"╔═════════════════════════╗" << endl;
gotoxy(18, 10);
cout << u8"║ ▒▒▄▀▀▀▀▀▄▒▒▒▒▒▄▄▄▄▄▒▒▒ ║" << endl;
gotoxy(18, 11);
cout << u8"║ ▒▐░▄░░░▄░▌▒▒▄█▄█▄█▄█▄▒ ║" << endl;
gotoxy(18, 12);
cout << u8"║ ▒▐░▀▀░▀▀░▌▒▒▒▒▒░░░▒▒▒▒ ║" << endl;
gotoxy(18, 13);
cout << u8"║ ▒▒▀▄░═░▄▀▒▒▒▒▒▒░░░▒▒▒▒ ║" << endl;
gotoxy(18, 14);
cout << u8"║ ▒▒▐░▀▄▀░▌▒▒▒▒▒▒░░░▒▒▒▒ ║" << endl;
gotoxy(18, 15);
cout << u8"║ ──────────────▄▀█▀█▀▄ ║" << endl;
gotoxy(18, 16);
cout << u8"║ Registrarse ▀▀▀▀▀▀▀▀▀ ║" << endl;
gotoxy(18, 17);
cout << u8"║ ─────────────▄─░░░░░▄ ║" << endl;
gotoxy(18, 18);
cout << u8"╚═════════════════════════╝" << endl;
gotoxy(18, 19);
cout << Naranja << u8"╔═════════════════════════╗" << endl;
gotoxy(18, 20);
cout << u8"║ ▐▓█▀▀▀▀▀▀▀▀▀█▓▌░▄▄▄▄▄░ ║" << endl;
gotoxy(18, 21);
cout << u8"║ ▐▓█░░▀░░▀▄░░█▓▌░█▄▄▄█░ ║" << endl;
gotoxy(18, 22);
cout << u8"║ ▐▓█░░▄░░▄▀░░█▓▌░█▄▄▄█░ ║" << endl;
gotoxy(18, 23);
cout << u8"║ ▐▓█▄▄▄▄▄▄▄▄▄█▓▌░█████░ ║" << endl;
gotoxy(18, 24);
cout << u8"║ ░░░░▄▄███▄▄░░░░░█████░ ║" << endl;
gotoxy(18, 25);
cout << u8"║ ║" << endl;
gotoxy(18, 26);
cout << u8"║ Iniciar sesion ║" << endl;
gotoxy(18, 27);
cout << u8"║ ║" << endl;
gotoxy(18, 28);
cout << u8"╚═════════════════════════╝" << Blanco << endl;
// Barra de opciones
gotoxy(60, 4);
cout << Azul << u8"══════ Bienvenido ══════" << Blanco << endl;
gotoxy(59, 6);
cout << "║ Ingrese una opcion: ║" << endl;
gotoxy(59, 7);
cout << Azul << u8"║ ╚═════╝ ║" << Blanco << endl;
gotoxy(59, 8);
cout << Azul << u8"╚══════════════════════════════════╝" << Blanco << endl;
gotoxy(60, 9);
cout << Rojo << "[0] Salir" << Blanco << endl;
gotoxy(60, 11);
cout << Azul << "[1] Registrarse" << endl;
gotoxy(60, 13);
cout << Naranja << "[2] Iniciar sesion" << Blanco << endl;
gotoxy(83, 6);
cin >> option;
switch (option)
{
case 1:
Limpiar_Pantalla;
RegistrarUsuario();
break;
case 2:
{
Limpiar_Pantalla;
IniciarSesion();
break;
}
case 0:
Limpiar_Pantalla;
cout << "Saliendo del programa..." << endl;
cout << u8"████████████▒░▒██████" << endl;
cout << u8"███████████▓░░░▒█████" << endl;
cout << u8"███████████▒░░▒░▒████" << endl;
cout << u8"▒▓████████▓░░▒▒▒▒░░▓█" << endl;
cout << u8"░░░▒▒▓██▓░░░░▒▒▓▒░▒█▓" << endl;
cout << u8"█░░░░░░░░░░░▒▒▒▒▓░██░" << endl;
cout << u8"██▒░░░░░░░░░░░░░░░▓█░" << endl;
cout << u8"███▓░░░░░░░░░░░░░░░██" << endl;
cout << u8"████▒░░░░░▒▓▒░░░░░░▒█" << endl;
cout << u8"████░░░░░░▒█▓░░░░░░░█" << endl;
cout << u8"███▓░▓▓░░░▒▒░░░░░░░░▓" << endl;
cout << u8"████░▒▓░░░░░░░░░░▒░░░" << endl;
cout << u8"████▓░░░░░░░░░░░░░░░░" << endl;
cout << u8"█████░░░░▒░░░░░░░░░░░" << endl;
cout << u8"████▒░▒░▒▒░░░▒▒░░░░░░" << endl;
cout << u8"▓▓████▓░░▒▒▒▒▒░░░░░░░" << endl;
cout << u8"▓▓▓▓█▓██▓░▒▒▒░░░░░░░░" << endl;
cout << u8"█▓███▓▓██░░░░░░░░░░░░" << endl;
cout << u8"▓░▓██▓░▓▒░░░░░░░░░░░░" << endl;
return 0;
break;
default:
Limpiar_Pantalla;
error;
Pausa;
break;
}
Limpiar_Pantalla;
} while (volver = true); // Regresamos al inicio si volver es verdadero
return 0;
}
//******************************************************** REGISTRO ******************************************************************************>
int RegistrarUsuario()
{
int option; // Variables para opciones
bool volver = false; // Variable para regresarse al menu y regresamos el false para evitar errores
do
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8" Menu > Registrase" << endl; // Comenzamos con el titulo
string username, password; // Declaramos donde guardar nuestros Usuarios y Contraseñas
gotoxy(60, 4);
cout << Azul << u8"══════ Registrase ══════" << Blanco << endl;
gotoxy(10, 8);
cout << "Ingrese un nombre de usuario ";
gotoxy(10, 10);
cout << u8"╚═════════════════════════════╝" << endl;
gotoxy(15, 9);
cin >> username;
gotoxy(10, 11);
cout << "Ingrese una contraseña:";
gotoxy(10, 13);
cout << u8"╚═════════════════════════════╝" << endl;
gotoxy(15, 12);
cin >> password;
// Push_back es un método que permite agregar un elemento al final de un vector. en este caso (Users.)
users.push_back({username, password});
gotoxy(15, 12);
cout << Verde << "Registro exitoso." << Blanco << endl;
gotoxy(59, 6);
cout << "║ Ingrese una opcion: ║" << endl;
gotoxy(59, 7);
cout << Azul << u8"║ ╚═════╝ ║" << Blanco << endl;
gotoxy(59, 8);
cout << Azul << u8"╚══════════════════════════════════╝" << Blanco << endl;
gotoxy(60, 9);
cout << Rojo << "0) Volver al menu";
gotoxy(60, 11);
cout << Azul << "1) Registrar otra cuenta" << Blanco << endl;
gotoxy(83, 6);
cin >> option;
switch (option)
{
case 0:
return 0;
break;
case 1:
volver = true;
break;
default:
error;
break;
}
} while (volver = true); // Regresamos al inicio si volver es verdadero
return 0;
}
//******************************************************** Inicio Sesion ***************************************************************************>
int IniciarSesion()
{
bool volver = false; // Variable para regresarse al menu y regresamos el false para evitar errores
int option, OpcError; // Variable de opciones y variables de cuando tenemos error le mensiona si quiere reintentar o salir
do
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8" Menu > Iniciar Sesion" << endl; // Comenzamos con el titulo
string username, password; // Declaramos donde guardar nuestros Usuarios y Contraseñas
gotoxy(60, 4);
cout << Naranja << u8"║ Iniciar Sesion ║ "
<< Blanco << endl;
gotoxy(10, 8);
cout << "Ingrese un nombre de usuario ";
gotoxy(10, 10);
cout << u8"╚═════════════════════════════╝" << endl;
gotoxy(15, 9);
cin >> username;
gotoxy(10, 11);
cout << "Ingrese una contraseña:";
gotoxy(10, 13);
cout << u8"╚═════════════════════════════╝" << endl;
gotoxy(15, 12);
cin >> password;
/* Declaramos una variables llamada "user_index" para saber la posicion de la lista de usuarios que tiene ademas los buscamos
y vemos si coenciden su usuario y contraseña */
int user_index = BuscarUsuario(username);
if (user_index == -1 || users[user_index].password != password)
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
gotoxy(15, 8);
cout << Rojo << u8"╔═════════════════════════════════════════════╗" << endl;
gotoxy(15, 9);
cout << "║ Nombre de usuario o contraseña incorrectos. ║ :c" << endl;
gotoxy(15, 10);
cout << u8"╚═════════════════════════════════════════════╝" << Blanco << endl;
gotoxy(15, 11);
cout << "Para reintentar " << Rojo << "presione [1] " << Blanco << "Para salir " << Rojo << "presione [0]" << Blanco;
gotoxy(25, 14);
cout << Azul << u8"╚═════╝" << Blanco << endl;
gotoxy(28, 13);
cin >> OpcError;
if (OpcError == 1)
{
volver = true;
}
else
{
return 0;
}
}
else
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8"Inicio>" << endl; // menu
gotoxy(2, 8);
cout << Azul << u8"╔══════════════════════╗" << endl;
gotoxy(2, 9);
cout << u8"║ ████ ║" << endl;
gotoxy(2, 10);
cout << u8"║ ██████ ║" << endl;
gotoxy(2, 11);
cout << u8"║ ████████ ║" << endl;
gotoxy(2, 12);
cout << u8"║ ████████████ ║" << endl;
gotoxy(2, 13);
cout << u8"║ ░░ ║" << endl;
gotoxy(2, 14);
cout << u8"║ ░░ ║" << endl;
gotoxy(2, 15);
cout << u8"╚══════════════════════╝" << endl;
gotoxy(30, 8);
cout << Naranja << u8"╔══════════════════════╗" << endl;
gotoxy(30, 9);
cout << u8"║ *********** ║" << endl;
gotoxy(30, 10);
cout << u8"║ *********** ║" << endl;
gotoxy(30, 11);
cout << u8"║ ** ***** ** ║" << endl;
gotoxy(30, 12);
cout << u8"║ *** *** *** ║" << endl;
gotoxy(30, 13);
cout << u8"║ **** * **** ║" << endl;
gotoxy(30, 14);
cout << u8"║ *********** ║" << endl;
gotoxy(30, 15);
cout << u8"╚══════════════════════╝" << endl;
gotoxy(2, 16);
cout << Rosa << u8"╔══════════════════════╗" << endl;
gotoxy(2, 17);
cout << u8"║███████████████ ║" << endl;
gotoxy(2, 18);
cout << u8"║████░░░░░░░░░░░████ ║" << endl;
gotoxy(2, 19);
cout << u8"║███░░░░██░░░░██░░░███ ║" << endl;
gotoxy(2, 20);
cout << u8"║███░░░░██░░░░██░░░███ ║" << endl;
gotoxy(2, 21);
cout << u8"║███░░░░░░░░░░░░░░░███ ║" << endl;
gotoxy(2, 22);
cout << u8"║███░░░░░░░░░░░░░░░███ ║" << endl;
gotoxy(2, 23);
cout << u8"╚══════════════════════╝" << endl;
gotoxy(30, 16);
cout << Verde << u8"╔══════════════════════╗" << endl;
gotoxy(30, 17);
cout << u8"║ ▒▒▒▒███╔═╗▒╔╗████▒▒▒ ║" << endl;
gotoxy(30, 18);
cout << u8"║ ▒▒▄█▒▒▒║║╚╗║║░▒▒▒█▄▒ ║" << endl;
gotoxy(30, 19);
cout << u8"║ ▒▐██▒▒░║╔╗╚╝║░░░▒██▒ ║" << endl;
gotoxy(30, 20);
cout << u8"║ ▒▒▒█▒░░║║╚╗║║░░░▒█▒▒ ║" << endl;
gotoxy(30, 21);
cout << u8"║ ▒▒▄█▒▒▒║║▒║║║▒▒▒▒█▄▒ ║" << endl;
gotoxy(30, 22);
cout << u8"║ ▒▐███░░╚╝░╚═╝░░░███▒ ║" << endl;
gotoxy(30, 23);
cout << u8"╚══════════════════════╝" << endl;
gotoxy(2, 24);
cout << Amarillo << u8"╔══════════════════════╗" << endl;
gotoxy(2, 25);
cout << u8"║ ╔══╦═╦═╦══╦══╦═╦══╗ ║" << endl;
gotoxy(2, 26);
cout << u8"║ ║╔╗║║║║╠║║╣╔═╣║║══╣ ║" << endl;
gotoxy(2, 27);
cout << u8"║ ║╠╣║║║║╠║║╣╚╗║║╠══║ ║" << endl;
gotoxy(2, 28);
cout << u8"║ ╚╝╚╩╩═╩╩══╩══╩═╩══╝ ║" << endl;
gotoxy(2, 29);
cout << u8"║ ╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ ║" << endl;
gotoxy(2, 30);
cout << u8"╚══════════════════════╝" << endl;
gotoxy(30, 24);
cout << Cian << u8"╔══════════════════════╗" << endl;
gotoxy(30, 25);
cout << Rojo << u8"║ ╔╔╔══╦═╦═╦═╦══╗████ ║" << endl;
gotoxy(30, 26);
cout << Azul << u8"║ ╚╚╚╗╔══╦═╦═╦═╦══╗██ ║" << endl;
gotoxy(30, 27);
cout << Verde << u8"║ █║║║╚╗╔╣╦╣║║║║╔╗║██ ║" << endl;
gotoxy(30, 28);
cout << Morado << u8"║ █╚╚╚╝║║║╩╣║║║║╠╣║██ ║" << endl;
gotoxy(30, 29);
cout << Naranja << u8"║ █████╚╝╚═╩╩═╩╩╝╚╝██ ║" << endl;
gotoxy(30, 30);
cout << Cian << u8"╚══════════════════════╝" << endl;
gotoxy(60, 3);
cout << Verde << "Inicio de sesión exitoso."
<< Blanco << endl;
gotoxy(59, 6);
cout << "║ Ingrese una opcion: ║" << endl;
gotoxy(59, 7);
cout << Azul << u8"║ ╚═════╝ ║" << Blanco << endl;
gotoxy(59, 8);
cout << Azul << u8"╚══════════════════════════════════╝" << Blanco << endl;
gotoxy(59, 9);
cout << Rojo << "[0] Cerrar sesion" << endl;
gotoxy(59, 11);
cout << Azul << "[1] Mi perfil" << endl;
gotoxy(59, 13);
cout << Naranja << "[2] Mensajes" << endl;
gotoxy(59, 15);
cout << Morado << "[3] Publicar" << endl;
gotoxy(59, 17);
cout << Verde << "[4] Notificaciones" << endl;
gotoxy(59, 19);
cout << Amarillo << "[5] Lista de amigos" << endl;
gotoxy(59, 21);
cout << Cian << "[6] Tema" << endl;
gotoxy(83, 6);
cin >> option;
switch (option)
{
case 0:
Limpiar_Pantalla;
cout << "Saliste de la cuenta" << endl;
Pausa;
return 0;
break;
case 1:
MiPerfil();
break;
case 2:
Mensajes();
Pausa;
break;
case 3:
Publicar();
break;
case 4:
Notificaciones();
Pausa;
break;
case 5:
ListaNombresUsuarios();
Pausa;
break;
case 6:
Tema();
Pausa;
break;
default:
error;
Pausa;
break;
}
}
} while (volver = true);
return 0;
}
//******************************************************** Buscar ********************************************************************************>
int BuscarUsuario(string username)
{
for (int i = 0; i < users.size(); i++) // size(): es un método que devuelve la cantidad de elementos que hay en un vector.
{ // si queremos saber cuántos elementos tiene el vector mi_vector, podemos usar el método size()
if (users[i].username == username)
{
return i;
}
}
return -1;
}
//******************************************************** Lista Usuarios *************************************************************************>
void ListaNombresUsuarios()
{
// INICIO
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8" Menu > Lista amigos" << endl; // menu
gotoxy(10, 8);
cout << Amarillo << u8"║ AMIGOS ║"
<< Blanco << endl;
if (users.empty())
{
gotoxy(10, 10);
cout << Rojo << "No hay usuarios registrados en el sistema." << Blanco << endl;
return;
}
for (int i = 0; i < users.size(); i++)
{
cout << endl
<< users[i].username << endl;
}
}
//******************************************************** Mensajes ALEJANDRO ***************************************************>
void Mensajes()
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(10, 8);
cout << "Bienvenido a la bandeja de mensajes" << endl;
Sleep(2000); // Simulación de proceso que tarda 2 segundos en ejecutarse
gotoxy(6, 10);
cout << "Mensaje 1: Hola, ¿cómo estás?" << endl;
Sleep(2000);
gotoxy(6, 11);
cout << "Mensaje 2: No te olvides de comprar leche en el supermercado" << endl;
Sleep(2000);
gotoxy(6, 12);
cout << "Mensaje 3: Recordatorio: Tu cita con el dentista es mañana" << endl;
}
//******************************************************** TEMA ALEJANDRO ***************************************************>
void Tema()
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
int fondo;
Limpiar_Pantalla;
gotoxy(10, 8);
cout << "Que color de fondo quieres elegir?" << endl
<< "1. Negro" << endl
<< "2. Azul" << endl
<< "3. Verde" << endl
<< "4. Rojo" << endl
<< "5. Morado" << endl
<< "6. Amarillo" << endl
<< "7. Blanco hueso" << endl
<< "8. Gris" << endl
<< "9.Celeste" << endl
<< "10. Color Crema" << endl;
cin >> fondo;
switch (fondo)
{
case 1:
system("Color 00");
break;
case 2:
system("Color 10");
break;
case 3:
system("Color 20");
break;
case 4:
system("Color 40");
break;
case 5:
system("Color 50");
break;
case 6:
system("Color 60");
break;
case 7:
system("Color 70");
break;
case 8:
system("Color 80");
break;
case 9:
system("Color 90");
break;
case 10:
system("Color E0");
break;
default:
cout << "Esa es una opcion no valida" << endl;
}
}
//******************************************************** Mi perfil Olga ***************************************************>
int MiPerfil()
{
bool repetir = false;
int opc;
do
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
struct PerfilSocial
{
int edad;
string nombre, ciudad, carrera, cumpleanos, sexo, situacionsentimental, apodo, mostrarinforamacion;
};
PerfilSocial perfil;
gotoxy(10, 6);
cout << "Atencion !! trata de no equivocarte por que no podras \n cambiar tu informacion hasta que no te registres por completo... " << endl;
gotoxy(10, 8);
cout << "Ingrese los detalles del Perfil Social:" << endl;
gotoxy(10, 11);
cout << "nombre:";
gotoxy(10, 12);
cin >> perfil.nombre;
gotoxy(10, 13);
cout << "Edad: ";
gotoxy(10, 14);
cin >> perfil.edad;
gotoxy(10, 15);
cout << "apodo:";
gotoxy(10, 16);
cin >> perfil.apodo;
gotoxy(10, 17);
cout << "Ciudada actual: ";
gotoxy(10, 18);
cin >> perfil.ciudad;
gotoxy(10, 19);
cout << "Carrera que estudia: ";
gotoxy(10, 20);
cin >> perfil.carrera;
gotoxy(10, 21);
cout << "fecha de cumpleaños: ";
gotoxy(10, 22);
cin >> perfil.cumpleanos;
gotoxy(10, 23);
cout << "sexo : ";
gotoxy(10, 24);
cin >> perfil.sexo;
gotoxy(10, 25);
cout << "situacion sentimental: ";
gotoxy(10, 26);
cin >> perfil.situacionsentimental;
Limpiar_Pantalla;
gotoxy(10, 8);
cout << "Tu informacion" << endl;
gotoxy(10, 10);
cout << "Perfil Social:" << endl;
gotoxy(10, 11);
cout << "nombre: " << perfil.nombre << endl;
gotoxy(10, 12);
cout << "Edad: " << perfil.edad << endl;
gotoxy(10, 13);
cout << "apodo el cual te gustaria que te digan: " << perfil.apodo << endl;
gotoxy(10, 14);
cout << "Ciudad actual: " << perfil.ciudad << endl;
gotoxy(10, 15);
cout << "Carrera que estudia: " << perfil.carrera << endl;
gotoxy(10, 16);
cout << "cumpleaños: " << perfil.cumpleanos << endl;
gotoxy(10, 17);
cout << "sexo: " << perfil.sexo << endl;
gotoxy(10, 18);
cout << "situacionsentimental: " << perfil.situacionsentimental << endl;
gotoxy(10, 19);
cout << "apodo: " << perfil.apodo << endl;
gotoxy(10, 22);
cout << "fin de la informacion requerida..................." << std::endl;
gotoxy(10, 23);
cout << "quieres repetir tu informacion? Si = 1, No = 0:";
gotoxy(10, 24);
cin >> opc;
switch (opc)
{
case 1:
repetir = true;
break;
default:
break;
}
} while (repetir == true);
return 0;
}
//******************************************************** Publicar Osmar ***************************************************>
int Publicar()
{
int option;
bool volver = false;
do
{
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << Verde << u8" Inicio > Publicar" << endl; // menu
gotoxy(59, 6);
cout << "║ Ingrese una opcion: ║" << endl;
gotoxy(59, 7);
cout << Azul << u8"║ ╚═════╝ ║" << Blanco << endl;
gotoxy(59, 8);
cout << Azul << u8"╚══════════════════════════════════╝" << Blanco << endl;
gotoxy(59, 9);
cout << Rojo << "[0] Cerrar sesion" << endl;
gotoxy(59, 11);
cout << Azul << "[1] Publicar" << endl;
gotoxy(59, 13);
cout << Naranja << "[2] Ver post" << Blanco << endl;
gotoxy(83, 6);
cin >> option;
switch (option)
{
case 0:
return 0;
break;
case 1:
gotoxy(10, 8);
cout << "Escribe tu post" << endl;
gotoxy(10, 10);
cin >> post;
gotoxy(10, 12);
cout << Verde << "Publicado" << Blanco << endl;
volver = true;
break;
case 2:
gotoxy(10, 8);
cout << "Posts" << endl;
gotoxy(10, 10);
cout << "---" << post << "---" << endl;
gotoxy(10, 12);
Pausa;
return 0;
break;
}
} while (volver = true);
return 0;
}
//******************************************************** Notificaciones Osmar ***************************************************>
int Notificaciones()
{
int option;
// INICIO empezaos limpiando pantalla, indicando el tamaño de ventana y colocando titulo
Limpiar_Pantalla;
ventana;
Titulo;
// Aqui estamos creando un ciclo para poner la linea vertical con el simbolo : ▓
int x = 57, y = 1, length = 40; // Colunna, Linea y largo en sentido vertical
for (int i = 0; i < length; i++)
{
cout << "▓" << endl;
y++;
gotoxy(x, y);
}
gotoxy(18, 4);
cout << "Ejecutando programa..." << endl;
// Simulación de proceso que tarda 3 segundos en ejecutarse
Sleep(3000);
gotoxy(18, 4);
cout << Verde << "Proceso completado." << endl;
gotoxy(10, 7);
cout << Blanco << "¡Tienes una nueva notificación!" << endl;
gotoxy(10, 10);
return 0;
}
//******************************************************** fINAL DEL CODIGO ************************************************************************>