online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include<iostream> #include<locale.h> #include<string.h> #include<stdlib.h> #include<conio.h> /* En Azul Web se desea hacer un programa en C++ que guarde la información de los maestros que ofrecen cursos dentro de su plataforma, , el programa debe de realizar lo siguiente: 1.- Permitir guardar datos completos del maestro. Maestro; nombre, edad, país, especialidad. Especialidad; programación, base de datos y servidores. 2.- También se desea ordenar los cursos que se están brindando. Curso; maestro, especialidad, y fecha. Fecha: día, mes y año. (Todos los dato se deben de guardar al momento de programar, no hay que pedírselo al usuario). 3.- Al momento de correr el programa se debe de mostrar en pantalla el siguiente menú: >> Buscar cursos pro maestro. >> Buscar cursos por especialidad. >> Buscar cursos mayores a un año brindado por el usuario. >> Buscar cursos menores a un año brindado por el usuario. >> Permitir al usuario modificar cualquiera de los datos mostrados anteriormente utilizando una contraseña. (La contraseña la definimos al momento de programar). >> Permitir salir del programa. (El programa no se debe de cerrar hasta que el usuario así lo desee). autor: Kevin Elián Valarezo Guamán date: 22/03/2024 */ //Estructura de los maestros. struct maestros{ char nombre[50], pais[20], especialidad[50], id[20]; int edad; }; //Estructura de los cursos. struct cursos{ char profesionales[20], profesion[20]; char curso[50]; int dia, mes, anio; }; //Estructura de la plataforma de Azul School. struct plataforma{ maestros profesores; cursos clases; }; int main(){ setlocale(LC_CTYPE, "Spanish"); /*Variables 'int' a usar: opcion: Permitirá navegar en el menú de opciones del programa. v: Sirve mayormente para verificar que se ha encontrado algún dato que desea el usuario. anio_buscar: Sirve para buscar a los cursos por el año. aux: Sirve como auxialiar de reemplazo de edad u otro dato que desea reemplazar el usuario. e: Tiene el mismo uso que i pero siendo independiente del for. */ int opcion = 0, v = 0, anio_buscar = 0, aux = 0, e = 0; /*Variables 'char' a usar: buscar: Sirve para buscar el nombre de un maestro. ayuda: Ayuda en comparar a dos cadenas. vrf: Verificará la posición donde se ha encontrado un dato. buscar_id: Permite ingrese el ID único de cada maestro para buscarlo. buscar_especialidad: Permite ingrese la especilidad de cada curso para buscar. */ char buscar[20] = "", ayuda[50] = "", vrf[10], buscar_id[10] = "", buscar_especialidad[20] = "", contra[10] = ""; strcpy(contra, "Azul Web"); plataforma obtener[10]; //Obtener llamará a la estructura plataforma, la cual contiene los datos de //los maestros y de los cursos. /*Maestros*/ //Maestro N°1 strcpy(obtener[0].profesores.id, "9a87b6c5"); strcpy(obtener[0].profesores.nombre, "Luis Matinez"); obtener[0].profesores.edad = 32; strcpy(obtener[0].profesores.pais, "México"); strcpy(obtener[0].profesores.especialidad, "Programacion"); //Maestro N°2 strcpy(obtener[1].profesores.id, "3f4e2d1c"); strcpy(obtener[1].profesores.nombre, "Ana Rodriguez"); obtener[1].profesores.edad = 28; strcpy(obtener[1].profesores.pais, "España"); strcpy(obtener[1].profesores.especialidad, "Base de datos"); //Maestro N°3 strcpy(obtener[2].profesores.id, "7b8a9c1d"); strcpy(obtener[2].profesores.nombre, "Carlos Lopez"); obtener[2].profesores.edad = 30; strcpy(obtener[2].profesores.pais, "Colombia"); strcpy(obtener[2].profesores.especialidad, "Servidores"); //Maestro N°4 strcpy(obtener[3].profesores.id, "5e6f7d8c"); strcpy(obtener[3].profesores.nombre, "María Garcia"); obtener[3].profesores.edad = 25; strcpy(obtener[3].profesores.pais, "Argentina"); strcpy(obtener[3].profesores.especialidad, "Programacion"); //Maestro N°5 strcpy(obtener[4].profesores.id, "1a2b3c4d"); strcpy(obtener[4].profesores.nombre, "Juan Perez"); obtener[4].profesores.edad = 29; strcpy(obtener[4].profesores.pais, "Chile"); strcpy(obtener[4].profesores.especialidad, "Base de datos"); //Maestro N°6 strcpy(obtener[5].profesores.id, "8c7b6a5d"); strcpy(obtener[5].profesores.nombre, "Laura Ramirez"); obtener[5].profesores.edad = 27; strcpy(obtener[5].profesores.pais, "Perú"); strcpy(obtener[5].profesores.especialidad, "Servidores"); //Maestro N°7 strcpy(obtener[6].profesores.id, "4d3c2b1a"); strcpy(obtener[6].profesores.nombre, "Diego Herrera"); obtener[6].profesores.edad = 31; strcpy(obtener[6].profesores.pais, "Ecuador"); strcpy(obtener[6].profesores.especialidad, "Programacion"); //Maestro N°8 strcpy(obtener[7].profesores.id, "6d5c4b3a"); strcpy(obtener[7].profesores.nombre, "Sofia Torres"); obtener[7].profesores.edad = 26; strcpy(obtener[7].profesores.pais, "Costa Rica"); strcpy(obtener[7].profesores.especialidad, "Base de datos"); //Maestro N°9 strcpy(obtener[8].profesores.id, "2c1d3a5b"); strcpy(obtener[8].profesores.nombre, "Pedro Gomez"); obtener[8].profesores.edad = 33; strcpy(obtener[8].profesores.pais, "Uruguay"); strcpy(obtener[8].profesores.especialidad, "Servidores"); //Maestro N°10 strcpy(obtener[9].profesores.id, "1c2d3a4b"); strcpy(obtener[9].profesores.nombre, "Mónica Jimenez"); obtener[9].profesores.edad = 24; strcpy(obtener[9].profesores.pais, "Venezuela"); strcpy(obtener[9].profesores.especialidad, "Programacion"); /*Cursos*/ //Curso Número 1 strcpy(obtener[0].clases.curso, "Curso profesional de JAVA"); obtener[0].clases.dia = 20; obtener[0].clases.mes = 03; obtener[0].clases.anio = 2020; //Curso Número 2 strcpy(obtener[1].clases.curso, "Curso de SQL"); obtener[1].clases.dia = 31; obtener[1].clases.mes = 06; obtener[1].clases.anio = 2020; //Curso Número 3 strcpy(obtener[2].clases.curso, "Curso profesional C++"); obtener[2].clases.dia = 10; obtener[2].clases.mes = 01; obtener[2].clases.anio = 2021; //Curso Número 4 strcpy(obtener[3].clases.curso, "Curso profesional Python"); obtener[3].clases.dia = 02; obtener[3].clases.mes = 10; obtener[3].clases.anio = 2020; //Curso Número 5 strcpy(obtener[4].clases.curso, "Curso de Big Data"); obtener[4].clases.dia = 30; obtener[4].clases.mes = 05; obtener[4].clases.anio = 2022; //Curso Número 6 strcpy(obtener[5].clases.curso, "Curso de Administración de Servidores Windows"); obtener[5].clases.dia = 31; obtener[5].clases.mes = 06; obtener[5].clases.anio = 2022; //Curso Número 7 strcpy(obtener[6].clases.curso, "Curso de JavaScript"); obtener[6].clases.dia = 13; obtener[6].clases.mes = 07; obtener[6].clases.anio = 2020; //Curso Número 8 strcpy(obtener[7].clases.curso, "Curso de Bases de Datos Relacionales"); obtener[7].clases.dia = 25; obtener[7].clases.mes = 11; obtener[7].clases.anio = 2022; //Curso Número 9 strcpy(obtener[8].clases.curso, "Curso de Seguridad en Servidores"); obtener[8].clases.dia = 18; obtener[8].clases.mes = 04; obtener[8].clases.anio = 2021; //Curso Número 10 strcpy(obtener[9].clases.curso, "Curso de Introducción a la Programación"); obtener[9].clases.dia = 29; obtener[9].clases.mes = 04; obtener[9].clases.anio = 2021; /*Fase de prueba N°1 Presenta en pantalla todos los cursos con sus maestros a cargo. Esto es para comprobar que lo que se ha hecho sirva, y no haya problemas con el usuario. Prueba con exito, intentos 1. for(int i = 0; i<10; i++) { std::cout<<"Número "<<i+1<<std::endl;; std::cout<<"Datos del maestro\n"; std::cout<<" Maestro: "<<obtener[i].profesores.nombre<<std::endl; std::cout<<" Edad: "<<obtener[i].profesores.edad<<std::endl; std::cout<<" País: "<<obtener[i].profesores.pais<<std::endl; std::cout<<" Especialidad: "<<obtener[i].profesores.especialidad<<std::endl<<std::endl; std::cout<<"Curso a cargo\n"; std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl<<std::endl; }*/ for(int i = 0; i<10; i++){ //Ciclo for para almacendar los nombres de cada maestro la estructura curso. strcpy(obtener[i].clases.profesionales, obtener[i].profesores.nombre); strcpy(obtener[i].clases.profesion, obtener[i].profesores.especialidad); } do{ //Todo como al principio en caso de que el usuario vuelva a repetir el programa. for(int i = 0; i<10; i++) vrf[i] = 'F'; v = 0; aux = 0; e = 0; do{ //Menú de opciones std::cout<<">> 1 Buscar cursos por maestro."<<std::endl; std::cout<<">> 2 Buscar cursos por especialidad."<<std::endl; std::cout<<">> 3 Buscar cursos mayores a un año brindado por el usuario."<<std::endl; std::cout<<">> 4 Buscar cursos menores a un año brindado por el usuario."<<std::endl; std::cout<<">> 5 Modificar datos"<<std::endl; std::cout<<">> 6 Salir"<<std::endl; std::cout<<" Opción: "; std::cin>>opcion; if(opcion == 6) //En caso de salir del programa se agradecerá al usuario. { std::cout<<"\nGracias por usar este programa :D"; getch(); //No cerrará el programa de golpe. } else if(opcion >0 || opcion <6) //En caso de que elija una opción diferente de salir (6). { system("cls"); //Limpiador de pantalla. switch(opcion) // Switch que hará entrar en una de las opciones del programa. { case 1: //Opcion N°1 para buscar a un curso por medio del maestro. std::cin.ignore(10000, '\n');//Para que pueda leer lo que vamos a escribir. std::cout<<"Ingrese el nombre del maestro: "; std::cin.getline(buscar, 20, '\n'); for(int i = 0; i<10; i++) //Ciclo for de búsqueda secuencial. { strcpy(ayuda, obtener[i].profesores.nombre); if(strcmpi(strlwr(ayuda), strlwr(buscar))==0) //Comparará lo que ingrese el usuario sin importar mayusculas o minusculas. { vrf[i] = 'V'; v = 1; //Se verifica si mismo se ha encontrado. } } std::cout<<std::endl; if(v == 1) { std::cout<<"Curso a cargo: \n"; for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl; } } } else{ std::cout<<"Maestro no encontrado\n\n"; } break; case 2: //Opcion N°2 para buscar a cursos por meedio de la especialidad. std::cin.ignore(10000, '\n'); //Para que pueda leer lo que vamos a escribir. std::cout<<"Ingrese la especialidad: "; std::cin.getline(buscar, 20, '\n'); for(int i = 0; i<10; i++)//Ciclo for de búsqueda secuencial. { strcpy(ayuda, obtener[i].profesores.especialidad); if(strcmpi(strlwr(ayuda), strlwr(buscar))==0) //Comparará lo que ingrese el usuario sin importar mayusculas o minusculas. { vrf[i] = 'V'; v = 1; //Se verifica si mismo se ha encontrado. } } std::cout<<std::endl; if(v == 1) { for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl; } } } else{ std::cout<<"Especialidad no encontrada\n\n"; } break; case 3: //Opción N°3 para buscar a cursos mayores a un año según el que haya ingresado el usuario. std::cout<<"Ingrese el año a buscar: "; std::cin>>anio_buscar; aux = anio_buscar + 1; for(int i = 0; i<10; i++) { if(aux == obtener[i].clases.anio) { vrf[i] = 'V'; v = 1; } } std::cout<<std::endl; if(v == 1) { for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl; } } } else{ std::cout<<"Año no encontrado\n\n"; } break; case 4: //Opción N°3 para buscar a cursos menores a un año según el que haya ingresado el usuario. std::cout<<"Ingrese el año a buscar: "; std::cin>>anio_buscar; aux = anio_buscar - 1; for(int i = 0; i<10; i++) { if(aux == obtener[i].clases.anio) { vrf[i] = 'V'; v = 1; } } std::cout<<std::endl; if(v == 1) { for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl; } } } else{ std::cout<<"Año no encontrado\n\n"; } break; case 5: //Caso N°5 para reemplazar datos. std::cin.ignore(10000, '\n'); //Para que pueda leer lo que vamos a escribir. std::cout<<"Ingrese la contraseña: "; std::cin.getline(ayuda, 20, '\n'); if(strcmp(ayuda, contra)==0) //Solamente puede modificar datos mientras que la contraseña que ingrese sea identicada a la creada (Azul Web). { do{ std::cout<<">> 1 Maestros"<<std::endl; std::cout<<">> 2 Cursos"<<std::endl; std::cout<<" Opcion: "; std::cin>>opcion; if(opcion<=0 || opcion>2) //if en caso de que el usuario elija una opción no establecida. { system("cls"); //Limpiador de pantalla. std::cout<<"Error: Opción fuera de los parametros\n"; } }while(opcion<=0 || opcion>2); system("cls"); //limpiador de pantalla para las dos opciones. std::cin.ignore(10000, '\n'); //Para que pueda leer lo que vamos a escribir. switch(opcion) //Determinará a cual opción desea ingresar el usuario. { case 1: //Caso uno para editar a los maestros. do{ std::cout<<"Ingrese el ID del maestro"<<std::endl; std::cout<<"Si no sabe el ID del maestro ingrese 1, para mostrar a todos los maestros"<<std::endl; std::cout<<" Ingreso: "; std::cin.getline(buscar_id, 10, '\n'); strcpy(ayuda, "1"); //Ayuda tendrá el 1 para que se pueda verificar que el usuario necesita ayuda. if(strcmp(ayuda, buscar_id)==0) //if solo si el usuario desea ver a todos los maestros con su ID única. { system("cls"); for(int i = 0; i<10; i++) //Ciclo for de ayuda para mostrar todos los maestros con su ID única. { std::cout<<"ID: "<<obtener[i].profesores.id<<std::endl; std::cout<<" Maestro: "<<obtener[i].profesores.nombre<<std::endl; std::cout<<std::endl; } } }while(strcmp(ayuda, buscar_id)==0); //Ciclo do...while que solamente se repetirá cuando el usuario necesite la ayuda de mostrar todas las ID de cada maestro. for(int i = 0; i<10; i++) { if(strcmp(buscar_id, obtener[i].profesores.id)==0) { vrf[i] = 'V'; v = 1; } } if(v == 1) { system("cls"); do{ for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Maestro: "<<obtener[i].profesores.nombre<<std::endl; std::cout<<" Edad: "<<obtener[i].profesores.edad<<std::endl; std::cout<<" País: "<<obtener[i].profesores.pais<<std::endl; std::cout<<" Especialidad: "<<obtener[i].profesores.especialidad<<std::endl<<std::endl; e = i; } } std::cout<<">> 1 Modificar nombre"<<std::endl; std::cout<<">> 2 Modificar edad"<<std::endl; std::cout<<">> 3 Modificar país"<<std::endl; std::cout<<">> 4 Modificar Especialidad"<<std::endl; std::cout<<" Opción: "; std::cin>>opcion; if(opcion<=0 || opcion>4) //En caso de que el usuario ingrese una opción fuera de los parametros. { system("cls"); std::cout<<"Error: Opción fuera de los parametros\n\n"; } }while(opcion<=0 || opcion>4); //Ciclo do...while que se repetirá mientras el usuario elija una opción no válida. std::cin.ignore(10000, '\n'); //Para que pueda leer lo que vamos a escribir en cualquiera de los casos. std::cout<<std::endl; switch(opcion) //Determirá cual dato del maestro se va moficiar. { case 1: //Caso uno para el nombre. std::cout<<"Ingrese el nuevo nombre: "; std::cin.getline(ayuda, 50, '\n'); strcpy(obtener[e].profesores.nombre, ayuda); break; case 2: //Caso dos para la edad. std::cout<<"Ingrese la nueva edad: "; std::cin>>aux; obtener[e].profesores.edad = aux; break; case 3: //Caso tres para el país. std::cout<<"Ingrese el nuevo pais: "; std::cin.getline(ayuda, 50, '\n'); strcpy(obtener[e].profesores.pais, ayuda); break; case 4: //Caso cuatro para la especialidad. std::cout<<"Ingrese la nueva especialidad: "; std::cin.getline(ayuda, 50, '\n'); strcpy(obtener[e].profesores.especialidad, ayuda); break; default: std::cout<<"\nUPS! Error en el sistema"; getch(); break; } system("cls"); //Limpiador de pantalla. std::cout<<"Guardado con exito"; } else std::cout<<"\nID no encontrada"; std::cout<<std::endl<<std::endl; break; case 2: //Caso uno para editar a los cursos. std::cout<<"Ingrese el nombre del curso: "; std::cin.getline(buscar_curso, 50, '\n'); for(int i = 0; i<10; i++) { strcpy(ayuda, obtener[i].clases.curso); if(strcmp(strlwr(buscar_curso), strlwr(ayuda))==0) //Comparará a lo que haya ingresado el usuario sin importar mayúsculas o minúsculas. { vrf[i] = 'V'; v = 1; } } std::cout<<std::endl; if(v == 1) { for(int i = 0; i<10; i++) { if(vrf[i] == 'V') { std::cout<<" Curso: "<<obtener[i].clases.curso<<std::endl; std::cout<<" Maestro: "<<obtener[i].clases.profesionales<<std::endl; std::cout<<" Especialidad: "<<obtener[i].clases.profesion<<std::endl; std::cout<<" Fecha: "<<obtener[i].clases.dia<<"/"<<obtener[i].clases.mes<<"/"<<obtener[i].clases.anio<<std::endl; std::cout<<std::endl; e = i; //e que almacenará la posición de i. } } std::cout<<"Ingrese el nuevo nombre: "; std::cin.getline(ayuda, 50, '\n'); strcpy(obtener[e].clases.curso, ayuda); //Reemplazará el nuevo nombre del curso con el original. system("cls"); std::cout<<"Guardado con exito"; }else{ std::cout<<"Curso no encontrado"; } std::cout<<std::endl<<std::endl; break; default: std::cout<<"\nUPS! Error en el sistema"; //Default en caso de que haya un error en el programa se pueda saber y que no se cierre el programa de golpe. getch(); break; } } else{ std::cout<<"Contraseña incorrecta\n\n"; opcion = 1; } break; default: //Default en caso de que haya un error en el programa se pueda saber y que no se cierre el programa de golpe. system("cls"); std::cout<<"Error: Opción fuera de los parametros\n"; break; } } }while(opcion<=0 || opcion>6); }while(opcion>0 && opcion<5); //Ciclo do...while que se repetirá mientras se haya elejido una opción diferente de salir (6). return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue