Descarga la aplicación para disfrutar aún más
Lea materiales sin conexión, sin usar Internet. Además de muchas otras características!
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; }
Materiales Generales
Materiales Generales
Materiales Generales
Santiago Valladares
Iara Echegaray
Compartir