Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD MILITAR NUEVA GRANADA DEPARTAMENTO DE TECNOLOGÍAS DEL CONOCIMIENTO PROGRAMACIÓN II TIPO DE DATOS ABSTRACTOS – TDA Andrea Victoria Oviedo Camacho – 5600467 Ejercicio 2. Elaborar un programa en C++, que le permita a un teatro almacenar los datos de las reservas. Para ello, debe tener en cuenta los siguientes aspectos: · Se debe aplicar el concepto de Archivos. · Los datos de cada reserva son: código de la película, cédula del cliente, número de cupos, ubicación (centro, lateral izquierda, lateral derecha, centro arriba, centro abajo). · Se deben almacenar los datos de cada reserva en un archivo. · Al ejecutar el programa se debe mostrar un menú con las siguientes opciones: o Ingresar una reserva. o Ubicar una reserva con la cédula del usuario. o Eliminar (cancelar) una reserva #include<iostream> //incluye bibliotecas #include<fstream> #include<string> using namespace std; struct reserva //Datos de la reserva { int codipeli; char cedula[20]; int cupos; string ubic; }res; void ingresar_reserva(); //Funciones para determinar el menu void Buscar_reserva(); void eliminar_reserva(); int main() { int opcion = 0; do { system("cls");//Limpia la pantalla cout << "\n\n\n\t\t\t******************** MENU ********************" << endl << endl; //Muestra en pantalla el menú cout << "\n\n\t\t 1.INGRESE LA RESERVA"; cout << "\n\n\t\t 2.BUSCAR RESERVA"; cout << "\n\n\t\t 3.ELIMINAR LA RESERVA"; cout << "\n\n\t\t 4.SALIR"; cout << "\n\n\t\t DIGITE LA OPCION: "; cin >> opcion; //lee la opcion que el usuario quiere switch (opcion) //Abre solucion al menu { case 1: ingresar_reserva();//Llama a la funcion para ingresar reserva break; case 2: Buscar_reserva();//Llama a la funcion para buscar la reserva break; case 3: eliminar_reserva();//Llama a la funcion para eliminar reserva break; case 4: break; default: cout << "\n\n\t\t OPCION NO VALIDA!!" << endl; system("pause"); break; } } while (opcion != 4); } void ingresar_reserva() //Funcion para ingresar reserva { ofstream salida("Datos.txt", ios::app); //(se envia el dato) incluye datos sin borrar los anteriores cout << "\n\t\tIngresar Cedula: ";//Pide el dato cin >> res.cedula; //guarda en la variable cout << "\n\t\tIngresar Codigo pelicula: "; cin >> res.codipeli; cout << "\n\t\tIngresar Numero de cupos: "; cin >> res.cupos; cout << "\n\t\tIngresar Ubicacion: "; cin >> res.ubic; salida << res.cedula;//Llena los datos en el archivo salida << " "; salida << res.codipeli; salida << " "; salida << res.cupos; salida << " "; salida << res.ubic << " "; salida << endl; salida << endl; } void Buscar_reserva()//funcion para buscar reserva { system("cls"); //borra la pantalla ifstream entrada;//flujo de entrada entrada.open("Datos.txt", ios::in); //leer if (entrada.fail()) //si entrada falla { cout << "Hubo un error al abrir el archivo Datos.txt"; system("pause"); } else { char aux[20];//guarda el dato a buscar cout << "\n\n\n\t\t Introduzca la cedula del usuario: ";//ingresa dato a buscar cin >> aux; bool se_encontro = true; entrada >> res.cedula;//trae el primer dato y lo guarda en cedula while (!entrada.eof()) //mientras no sea el final del archivo { entrada >> res.codipeli >> res.cupos >> res.ubic;// guarda los demas datos if (strcmp(aux, res.cedula) == 0) //compara los datos { cout << "\n\n\n\t\t RESERVA No. " << res.cedula << endl;//muestra en pantalla los datos encontrados cout << "\t\t CODIGO PELICULA No. " << res.codipeli << endl; cout << "\t\t CUPOS : " << res.cupos << endl; cout << "\t\t UBICACION : " << res.ubic << endl; se_encontro = true; system("pause"); break; //rompe el ciclo } else se_encontro = false;// si es diferente a el dato entrada >> res.cedula;//trae el sigueinte dato } if (se_encontro == false) cout << "NO EXISTE EL REGISTRO !!" << endl;// si no se encontro la cedula entrada.close();//cierra el archivo system("pause"); } } void eliminar_reserva() { system("cls");//limpia pantalla ifstream entrada2;//flujo de entrada entrada2.open("Datos.txt", ios::in);//leer ofstream salida;//flujo de salida salida.open("temp.txt", ios::out);//permite la salida if (entrada2.fail())// si falla el archivo de entrada { cout << "Hubo un error al abrir el archivo empleados.txt";//mostrar en pantalla system("pause"); } else { char aux2[20];// inicializa vector para cedula cout << "\n\n\n\t\tIngresar Cedula para eliminar la reserva: ";//pide cedula cin >> aux2;//lee cedula entrada2 >> res.cedula;// trae cedula y la guarda while (!entrada2.eof())//mientras no sea el final del archivo { entrada2 >> res.codipeli >> res.cupos >> res.ubic;//guarda los demas datos if (strcmp(aux2, res.cedula) == 0)//compara { cout << "El registro se ha eliminado";//mostrar en pantalla system("pause"); } else { salida << res.cedula << " " << res.codipeli << " " << res.cupos << " " << res.ubic << endl;//vuelve a escribir los datos diferentes al comparado } entrada2 >> res.cedula;//guarda el siguiente dato en cedula } salida.close();//cierra el archivo de salida entrada2.close();//cierra el archivo de entrada rename("temp.txt", "Datos.txt");//cambia el nombre remove("Datos.txt");//borra el archivo datos system("pause"); } Ejercicio 3. Elaborar un programa en C++, que permita almacenar los datos en una competencia ciclística. Para ello, debe tener en cuenta los siguientes aspectos: · Se debe aplicar el concepto de archivos. · Los datos de la competencia son: número del ciclista, el número de la etapa y el tiempo utilizado por el ciclista en esa etapa. · Se deben almacenar los datos en un archivo. · Al ejecutar el programa se debe mostrar el tiempo total empleado en la competencia por cada uno de los ciclistas, indicando cuál fue el ciclista ganador. #include <iostream> //incluye las bibliotecas #include <fstream> #include <string> using namespace std; struct ciclistas // estructura { int num_ciclista; int num_etapa; int tiempo; }; int main() { ofstream salida("Datos.txt");//flujo de salida int n, etapas;//inicializar variables int acum = 0; cout << "Ingrese la cantidad de ciclistas: " << endl;//datos para el primer for cin >> n; cout << "Ingrese la cantidad de etapas de la competencia: " << endl;//datos para el segundo for cin >> etapas; int* Tiempo_Total = new int[n];//determinar cuantos ciclistas ciclistas* ciclista = new ciclistas[n]; for (int i = 0; i < n; i++)//primer ciclo { cout << "Ciclista " << i + 1 << endl; //con numero del ciclista cout << "Ingrese numero del ciclista: "; cin >> ciclista[i].num_ciclista; salida << "Ciclista No. " << ciclista[i].num_ciclista << endl; // se graba en datos el num. del ciclista cout << endl; for (int j = 0; j < etapas; j++)//Segundo ciclo (anidado) con numero de etapa { cout << "Ingrese tiempo de la etapa No. " << j + 1 << ": "; cin >> ciclista[i].tiempo; acum = acum + ciclista[i].tiempo;//Guarda el tiempo en un acumulador salida << "Etapa No. " << j + 1 << endl; salida << "Tiempo: " << ciclista[i].tiempo << " min" << endl; salida << "Tiempode la carrera: " << acum << " min" << endl; cout << endl; } Tiempo_Total[i] = acum; acum = 0;//reinicia el acumulador } int menor = Tiempo_Total[0]; int NumGanador = ciclista[0].num_ciclista; for (int i = 0; i < n; i++) //determinar el ganador (tiempo menor) { if (Tiempo_Total[i] < menor) { menor = Tiempo_Total[i]; NumGanador = ciclista[i].num_ciclista;//asigna el numero del ciclista } } cout << endl; for (int i = 0; i < n; i++) { cout << "Ciclista No. " << i + 1 << endl; cout << "Numero del ciclista: " << ciclista[i].num_ciclista << endl; cout << "Tiempo de la competencia: " << Tiempo_Total[i] << endl; cout << endl; } cout << endl; cout << endl << "EL GANADOR FUE EL CICLISTA No.: " << NumGanador << " CON UN TIEMPO DE " << menor << " min."; system("pause"); return 0; }
Compartir