online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
//Importanción de las librerías necesarias para el programa. #include<iostream> #include<locale.h> #include<string.h> #include<stdlib.h> #include<conio.h> /* Azul Web acaba de sacar una nueva plataforma de video, donde se van a publicar películas. Las películas tiene los siguientes atributos; Nombre de la película y Fecha de lanzamiento. autor: Kevin Elián Valarezo Guamán date: 14/03/2024 */ int main(){ setlocale(LC_CTYPE, "Spanish"); //Variable de la cantidad máxima de películas a ingresar. int n = 0; std::cout<<"Ingrese la cantida de películas que va ingresar: "; std::cin>>n; std::cin.ignore(10000, '\n'); system("cls"); //Limpiador de pantalla. //Variables 'char' a utilizar /* movies: Sirve para almacenar las peliculas que quiera ingresar el usuario. orden: Sirve para ordenar a las películas para luego elegir si queremos presentarlas de manera ascendente o descendente. movies2: Almacenará los valores de las películas, pero solo servirá para ordenarlas. */ char movies[n][20], movies2[n][20]; //Cadenas char orden[n] = "", buscar[20] = "", buscar2[20] = ""; //Variables 'int' a utilizar /* date: Sirve para almacenar el año de las películas ingresadas. date2: Almacenerá los valores de 'date' para solo ordenarlos. option: Permitirá al usuario salir o seguir en el programa menu: Se usa para elegir una de las opciones del programa. pos: Será la posición que cambiará de las peliculas almacenadas en 'movies'. aux: Servirá para ordenar a las películas. dateM: Sirve para buscar a una película por su año. vrf: Verifica si se ha encontrado o no la película. k: Servirá para que el usuario si o si elija una película entre 1896 y el año actual (En este caso 2024). j: Sirve para la posición de las películas y así no hayas errores en la posición. */ int date[n] = {}, date2[n] = {}; //Vectores int option = 0, menu = 0, pos = 0, aux = 0, dateM = 0, vrf = 0, k = 0, j = 0; //Ingreso de películas por parte del usuario. std::cout<<"INGRESO DE PELÍCULAS\n"; for(int i = 0; i<n; i++){ k = i-1; j = i; std::cout<<"\nPelícula N°"<<i+1<<"\n Nombre\n -"; std::cin.getline(movies[i], 20, '\n'); strcpy(movies2[i], movies[i]); while(k<i){ std::cout<<"Año de lanzamiento\n -"; std::cin>>date[j]; if(date[j]<1896 || date[j]>2024){ std::cout<<"Ingrese el año de una película existente"; std::cout<<"\n"; } else{ date2[pos] = date[j]; k = i; } } std::cin.ignore(10000, '\n'); //Corrije error para que se pueda ingresar otra pelicula con su nombre. pos++; } //Ordenar a las películas por el año. Sirve tanto para de manera Asecendente como Descendente. for(int i = 0; i<n; i++){ strcpy(orden, movies2[i]); aux = date2[i]; int pos = i; while((date2[pos-1]>aux) && pos > 0){ date2[pos] = date2[pos - 1]; strcpy(movies2[pos], movies2[pos-1]); pos--; } date2[pos] = aux; strcpy(movies2[pos], orden); } system("cls"); //Limpiador de pantalla. do{ //Menú de opciones del programa. do{ //En una sola línea el menú de opciones del programa para no usar tantas líneas de código. std::cout<<"Menú de opciones\n 1 - Mostrar peliculas\n 2 - Mostrar películas desde las más viejas a las más nuevas\n 3 - Mostrar películas desde las más nuevas a las más viejas\n 4 - Mostrar películas de un año en concreto\n 5 - Salir del programa\n\nOpción: "; std::cin>>menu; if(menu<=0 || menu>5){ //if para mostrar un mensaje de error en caso de que el usuario elija una opción menor que 0 o mayor a la cantidad de opciones máximas del programa. system("cls"); //Limpiador de pantalla. std::cout<<"Opcion no disponible\n"; } else if(menu == 5){ //else if para salir del programa. std::cout<<"\nGracias por usar este programa :D"; getch(); return 0; } else{ //else que sirve para cuando el usuario haya elegido unas de las opciones. system("cls"); //Limpiador de pantalla. } }while(menu<=0 || menu>5); //do while siempre y cuando el usuario elija una opción no establecida en el parametro de opciones disponibles. En este caso máximo tiene 5 opciones donde no esta disponible el 0 o menor a este. pos = 0; switch(menu){ //switch que permite entrar en una de las opciones elegidas por el usuario. case 1: //Presenta las películas ingresadas. std::cout<<"PELÍCULAS\n"; //Ciclo 'for' en una sola línea que preseentará todas le películas ingresadas con su respectivo año. for(int i = 0; i<n; i++) std::cout<<"\nPelícula N°"<<i+1<<"\n Nombre\n -"<<movies[pos++]<<"\n Año de lanzamiento\n -"<<date[i]<<"\n"; break; case 2: //Presenta las películas de manera ascendente. std::cout<<"Películas en orden Ascendente:\n"; for(int i = 0; i<n; i++){ std::cout<<movies2[pos]; std::cout<<": "<<date2[i]; pos++; std::cout<<"\n"; } break; case 3: //Presenta las películas de manera descendente. std::cout<<"Películas en orden Descendente:\n"; for(int i = n-1; i>=0; i--){ pos = i; std::cout<<movies2[pos]; std::cout<<": "<<date2[i]; pos++; std::cout<<"\n"; } break; case 4: //Permite la búsqueda de películas. do{ std::cout<<"Métodos de búsqueda\n 1 - Literal\n 2 - Nombre\n 3 - Fecha\n\nOpción: "; std::cin>>dateM; if(dateM<=0 || dateM>3){ system("cls"); //Limpiador de pantalla. std::cout<<"Error: Opción no disponible\n"; //if para mostrar un mensaje de error en caso de que el usuario elija una opción no existente. } else{ system("cls"); //Limpiador de pantalla. } }while(dateM<=0 || dateM>3); vrf = 0; switch(dateM){ case 1: dateM = 0; std::cout<<"Ingrese el literal de la película\nLiteral: "; std::cin>>dateM; for(int i = 0; i<n; i++){ if(dateM == (i+1)){ pos = i; //Se toma la posición encontrada de la búsqueda que hizo el usuario. vrf = 1; //Si se encuentra se verifica con la variable 'vrf'. i = n; //Hará detener búsqueda innecesarias. } } break; case 2: j = 0; pos = 0; std::cin.ignore(10000, '\n'); std::cout<<"Ingrese el nombre de la película\nNombre: "; std::cin.getline(buscar, 20, '\n'); for(int i = 0; i<n; i++){ strcpy(buscar2, movies[j]); if(strcmp(buscar, buscar2) == 0){ pos = i; //Se toma la posición encontrada de la búsqueda que hizo el usuario. vrf = 1; //Si se encuentra se verifica con la variable 'vrf'. i = n; //Hará detener búsqueda innecesarias. } j++; } break; case 3: dateM = 0; std::cout<<"Ingrese el año de la película\nFecha: "; std::cin>>dateM; for(int i = 0; i<n; i++){ if(dateM == date[i]){ pos = i; //Se toma la posición encontrada de la búsqueda que hizo el usuario. vrf = 1; //Si se encuentra se verifica con la variable 'vrf'. i = n; //Hará detener búsqueda innecesarias. } } break; default: //Default en caso de que haya un problema con el programa se cerrerá inmediatamente. std::cout<<"\nERROR: Opcion no disponible"; return 0; break; } //Se presentará en pantalla la película encontrada, si no, saldrá que no se ha encontrado. if(vrf == 1){ std::cout<<movies[pos]; std::cout<<": "<<date[pos]; } else{ std::cout<<"Pelicula no encontrada."; } std::cout<<std::endl; break; default: //Default en caso de que haya un problema con el programa se cerrerá inmediatamente. std::cout<<"\nERROR: Opcion no disponible"; return 0; break; } //Menú de opciones para salir o volver al menú de inicio. do{ std::cout<<"\nVolver al menú de inicio[1] || Salir del programa[2]\nOpcion: "; std::cin>>option; if(option<=0 || option>2) std::cout<<"\nError: Opción no disponible\n"; //if para mostrar un mensaje de error en caso de que el usuario elija una opción no existente. else if(option == 2){ //else if para salir del programa. std::cout<<"\nGracias por usar este programa :D"; getch(); return 0; } else{ //else que permite volver al menú de opciones de manera limpia system("cls"); //Limpiador de pantalla. } }while(option<=0 || option>2); //do while siempre y cuando el usuario elija una opción no establecida en el parametro de opciones disponibles. En este caso solo tenemos la opción de volver (1) o salir (2). }while(option==1); //El menú de opciones solamente se presentará si el usuario elijo la primera opción el segundo ciclo do while 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