Sei sulla pagina 1di 7

#include <iostream>

#include <cstdlib>
#include "C:/Users/galen/Documents/Proyecto_1/app_media/plantilla/vista.h"
using namespace std;
int main() {
int alt = 0;
do{//Inicio del bucle
switch(alt)
{
case 0:
alt=menu_default();
system("cls");
break;
case 1:
alt=mostrar_datos();
system("cls");
break;
case 2:
alt=registrar_datos();
system("cls");
break;
case 3:
alt=editar_datos();
system("cls");
break;
case 4:
alt=eliminar_datos();
system("cls");
break;
default:
alt=0;
break;
}
}while(alt!=5);
return 0;
}
#ifndef USUARIO_H
#define USUARIO_H

#include "C:/Users/galen/Documents/Proyecto_1/core/db_modelo.h"

class usuario : public db_modelo


{
public:
string nombre;
string apellido;
string email;
private:
string clave;
protected:
int id;
public:
void get();
void set();
void edit(string);
void eliminar();
void setPassword(string);
usuario();
};

#endif
#include "usuario.h"
#include<string>
usuario::usuario()
{
}
void usuario::set(){
this->get();
if(this->mensaje!="Usuario encontrado")
{
this->query="INSERT INTO usuarios(nombre, apellido, email, clave) VALUES(\""+this-
>nombre+"\",\""+this->apellido+"\",\""+this->email+"\",\""+this->clave+"\")";
this->executeSingleQuery();
this->mensaje="Usuario "+this->nombre+" agregado correctamente";
cout<<this->mensaje<<endl;
}
else
{
this->mensaje="No se ha agregado al usuario";
cout<<this->mensaje<<endl;
}
}
void usuario::edit(string aux_email){
this->query="UPDATE usuarios SET nombre=\""+this->nombre+"\", apellido=\""+this->apellido+"\",
email=\""+this->email+"\" WHERE email=\""+aux_email+"\"";
this->executeSingleQuery();
this->mensaje="Usuario modificado";
cout<<this->mensaje<<endl;
}
void usuario::get(){
if(!this->email.empty())
{
this->getResultsFromQuery(this->email);
unsigned long filas_afectadas = mysql_num_rows(this->aux_resultado);
if(filas_afectadas!=0)
{
string aux_email=this->resultados[3];
if(this->email.compare(aux_email)!=0)
{
this->mensaje="Usuario encontrado";
//cout<<this->mensaje<<endl;
}
}
else
{
this->mensaje="Usuario no encontrado";
cout<<endl<<this->mensaje<<endl;
}
}
}
void usuario::eliminar(){
this->query="DELETE FROM usuarios WHERE email =\""+this->email+"\"";
this->executeSingleQuery();
this->mensaje="Usuario eliminado";
cout<<this->mensaje<<endl;
}
void usuario::setPassword(string password)
{
this->clave=password;
}
#ifndef DB_MODELO_H
#define DB_MODELO_H

#include <iostream>
#include "C:/Program Files/MySQL/MySQL Server 5.7/include/mysql.h"
#include "C:/Program Files/MySQL/MySQL Server 5.7/include/mysqld_error.h"

using namespace std;

class db_modelo
{
private:
const char *db_host;
const char *db_user;
const char *db_pass;
const char *db_name;
MYSQL *conexion;
MYSQL_RES *resultado;
void openConnetion();
void closeConnection();

protected:
string query;
virtual void get()=0;
virtual void set()=0;
virtual void edit(string)=0;
virtual void eliminar()=0;
MYSQL_RES *aux_resultado;

void executeSingleQuery();
void getResultsFromQuery(string);
public:
string mensaje;
db_modelo();
string resultados[];

};
#endif

#include "db_modelo.h"
#include "C:/Program Files/MySQL/MySQL Server 5.7/include/mysql.h" //Ruta donde se encuenta la
bliblioteca mysql.h
#include "C:/Program Files/MySQL/MySQL Server 5.7/include/mysqld_error.h"

db_modelo::db_modelo()
{

}
void db_modelo::openConnetion()
{
this->db_host="localhost";
this->db_user="galeno";
this->db_pass="@abc..";
this->db_name="panel_mvc";
this->mensaje="Conexion Fallida";
if(!(this->conexion = mysql_init(0)))
{
this->mensaje="Error al crear el objeto mysql";
cout<<this->mensaje;
}
else
{
if(!mysql_real_connect(this->conexion, this->db_host, this->db_user, this->db_pass, this->db_name,
3306, NULL, 0))
{
cout<<this->mensaje;
}
else
{
this->mensaje="Conexion realizada con exito ";
}
}

}
void db_modelo::closeConnection()
{
mysql_close(this->conexion);
}
void db_modelo::executeSingleQuery()
{
this->openConnetion();
int aux_query = mysql_query(this->conexion, this->query.c_str());
if(aux_query == 0)
{
this->mensaje="Consulta exitosa";
cout<<this->mensaje;
}
else{
this->mensaje="No se pudo realizar la consulta";
cout<<this->mensaje;
}
this->closeConnection();

}
void db_modelo::getResultsFromQuery(string email)
{
this->openConnetion();
this->query="SELECT id, nombre, apellido, email, clave FROM usuarios WHERE email=\""+email+"\"";
mysql_query(this->conexion, this->query.c_str());
this->resultado = mysql_store_result(this->conexion);
this->aux_resultado=this->resultado;
unsigned long filas_afectadas = mysql_num_rows(resultado);
MYSQL_ROW fila;
for (int x = 0; x < filas_afectadas; x++)
{
fila = mysql_fetch_row(resultado);
for(int y=0;y<4;y++)
{
this->resultados[y]=fila[y];
}
}
mysql_free_result(resultado);
this->closeConnection();
this->mensaje="La consulta fue realizada con exito";
}
#ifndef VISTA_H
#define VISTA_H
#include "C:/Users/galen/Documents/Proyecto_1/usuario/usuario.h"

usuario *user=new usuario();

void render_dinamic_data()
{
cout<<endl<<"\t| "<<user->resultados[0]<<" | "<<user->resultados[1]<<" | "<<user-
>resultados[2]<<" | "<<user->resultados[3]<<" |";
cout<<endl<<"\t-------------------------------------------------------------------------------------------------------";
}
int menu_botom(){
int opcion;
cout<<endl<<"0. Volver Inicio\t5. Salir";
do{
cout<<endl<<"Elija una opcion: ";
cin>>opcion;
}while(!(opcion>=0 && opcion<=5));
return opcion;
}
void menu_header(){
cout<<endl<<"\t\t\t\tMENU PRINCIPAL----ALGORITMOS Y PROGRAMACION C++";
cout<<endl<<"\t#########################################################################
##############################";
cout<<endl<<"\t# ID # NOMBRE # APELLIDOS # CORREO #";
cout<<endl<<"\t#########################################################################
##############################";
}
int mostrar_datos()
{
cout<<"\t\tIngrese el correo electronico:";
cin>>user->email;
menu_header();
user->get();
render_dinamic_data();
return menu_botom();
}
int eliminar_datos()
{
cout<<"\t\tIngrese el correo electronico:";
cin>>user->email;
user->eliminar();
return menu_botom();
}
int editar_datos()
{
string aux_email;
cout<<"\t\tIngrese el correo electronico:";
cin>>user->email;
aux_email=user->email;
menu_header();
cout<<endl<<endl<<"MODIFICAR:"<<endl;
string password;
cout<<"\t\tIngrese Nombre:";
cin>>user->nombre;
cout<<"\t\tIngrese Apellidos:";
cin>>user->apellido;
cout<<"\t\tIngrese Correo:";
cin>>user->email;
user->edit(aux_email);
return menu_botom();
}
int registrar_datos()
{
string password;
cout<<"\t\tIngrese Nombre:";
cin>>user->nombre;
cout<<"\t\tIngrese Apellidos:";
cin>>user->apellido;
cout<<"\t\tIngrese Correo:";
cin>>user->email;
cout<<"\t\tIngrese Password(max 6):";
cin>>password;
user->setPassword(password);
user->set();
return menu_botom();
}
int menu_default()
{
int opcion;
cout<<endl<<"\t\t\t\tMENU PRINCIPAL----PROGRAMACION ORIENTADO A OBJETOS---MVC EN
C++"<<endl<<endl;
cout<<endl<<"1. Mostrar datos\t2. Agregar datos\t3. Modificar datos\t4. Eliminar usuario\t5. Salir";
do{
cout<<endl<<"Elija una opcion: ";
cin>>opcion;//Capturamos el ingreso por el teclado en la variable opcion
}while(!(opcion>=0 && opcion<=5));
return opcion;
}

#endif

Potrebbero piacerti anche