Generation

generate functionFri, 15 Nov 2024

Diseñar un programa que simule una agenda telefónica que permita gestionar los datos de contactos: Nombre Apellido Paterno Apellido Materno Número telefónico (Fijo) Número de celular (Whatsapp) Perfil de Facebook Calle Número Colonia Localidad Municipio 12.Estado El programa deberá permitir realizar lo siguiente: 1. Agregar un nuevo contacto 2. Consultar un contacto por: - nombre ó - apellido paterno 3. Ordenar la agenda para visualizarla por: - nombre ó - apellido paterno ó - número de celular 4. Modificar un dato de un contacto 5. Eliminar un contacto de la agenda.

Aquí te presento un ejemplo de cómo podrías implementar la agenda telefónica en C++: ```cpp #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; // Estructura para representar un contacto struct Contacto { string nombre; string apellidoPaterno; string apellidoMaterno; string numeroFijo; string numeroCelular; string perfilFacebook; string calle; string numero; string colonia; string localidad; string municipio; string estado; }; // Clase para gestionar la agenda telefónica class AgendaTelefonica { private: vector<Contacto> contactos; public: // Agregar un nuevo contacto void agregarContacto() { Contacto contacto; cout << "Ingrese el nombre del contacto: "; cin >> contacto.nombre; cout << "Ingrese el apellido paterno del contacto: "; cin >> contacto.apellidoPaterno; cout << "Ingrese el apellido materno del contacto: "; cin >> contacto.apellidoMaterno; cout << "Ingrese el número fijo del contacto: "; cin >> contacto.numeroFijo; cout << "Ingrese el número de celular del contacto: "; cin >> contacto.numeroCelular; cout << "Ingrese el perfil de Facebook del contacto: "; cin >> contacto.perfilFacebook; cout << "Ingrese la calle del contacto: "; cin >> contacto.calle; cout << "Ingrese el número del contacto: "; cin >> contacto.numero; cout << "Ingrese la colonia del contacto: "; cin >> contacto.colonia; cout << "Ingrese la localidad del contacto: "; cin >> contacto.localidad; cout << "Ingrese el municipio del contacto: "; cin >> contacto.municipio; cout << "Ingrese el estado del contacto: "; cin >> contacto.estado; contactos.push_back(contacto); cout << "Contacto agregado con éxito." << endl; } // Consultar un contacto por nombre o apellido paterno void consultarContacto() { string criterio; cout << "Ingrese el criterio de búsqueda (nombre o apellido paterno): "; cin >> criterio; for (const auto& contacto : contactos) { if (contacto.nombre == criterio || contacto.apellidoPaterno == criterio) { cout << "Nombre: " << contacto.nombre << endl; cout << "Apellido paterno: " << contacto.apellidoPaterno << endl; cout << "Apellido materno: " << contacto.apellidoMaterno << endl; cout << "Número fijo: " << contacto.numeroFijo << endl; cout << "Número de celular: " << contacto.numeroCelular << endl; cout << "Perfil de Facebook: " << contacto.perfilFacebook << endl; cout << "Calle: " << contacto.calle << endl; cout << "Número: " << contacto.numero << endl; cout << "Colonia: " << contacto.colonia << endl; cout << "Localidad: " << contacto.localidad << endl; cout << "Municipio: " << contacto.municipio << endl; cout << "Estado: " << contacto.estado << endl; return; } } cout << "Contacto no encontrado." << endl; } // Ordenar la agenda para visualizarla por nombre, apellido paterno o número de celular void ordenarAgenda() { int opcion; cout << "Ingrese la opción de ordenamiento (1. Nombre, 2. Apellido paterno, 3. Número de celular): "; cin >> opcion; switch (opcion) { case 1: sort(contactos.begin(), contactos.end(), [](const Contacto& a, const Contacto& b) { return a.nombre < b.nombre; }); break; case 2: sort(contactos.begin(), contactos.end(), [](const Contacto& a, const Contacto& b) { return a.apellidoPaterno < b.apellidoPaterno; }); break; case 3: sort(contactos.begin(), contactos.end(), [](const Contacto& a, const Contacto& b) { return a.numeroCelular < b.numeroCelular; }); break; default: cout << "Opción inválida." << endl; return; } for (const auto& contacto : contactos) { cout << "Nombre: " << contacto.nombre << endl; cout << "Apellido paterno: " << contacto.apellidoPaterno << endl; cout << "Apellido materno: " << contacto.apellidoMaterno << endl; cout << "Número fijo: " << contacto.numeroFijo << endl; cout << "Número de celular: " << contacto.numeroCelular << endl; cout << "Perfil de Facebook: " << contacto.perfilFacebook << endl; cout << "Calle: " << contacto.calle << endl; cout << "Número: " << contacto.numero << endl; cout << "Colonia: " << contacto.colonia << endl; cout << "Localidad: " << contacto.localidad << endl; cout << "Municipio: " << contacto.municipio << endl; cout << "Estado: " << contacto.estado << endl; cout << endl; } } // Modificar un dato de un contacto void modificarContacto() { string criterio; cout << "Ingrese el criterio de búsqueda (nombre o apellido paterno): "; cin >> criterio; for (auto& contacto : contactos) { if (contacto.nombre == criterio || contacto.apellidoPaterno == criterio) { cout << "Ingrese el nuevo nombre del contacto: "; cin >> contacto.nombre; cout << "Ingrese el nuevo apellido paterno del contacto: "; cin >> contacto.apellidoPaterno; cout << "Ingrese el nuevo apellido materno del contacto: "; cin >> contacto.apellidoMaterno; cout << "Ingrese el nuevo número fijo del contacto: "; cin >> contacto.numeroFijo; cout << "Ingrese el nuevo número de celular del contacto: "; cin >> contacto.numeroCelular; cout << "Ingrese el nuevo perfil de Facebook del contacto: "; cin >> contacto.perfilFacebook; cout << "Ingrese la nueva calle del contacto: "; cin >> contacto.calle; cout << "Ingrese el nuevo número del contacto: "; cin >> contacto.numero; cout << "Ingrese la nueva colonia del contacto: "; cin >> contacto.colonia; cout << "Ingrese la nueva localidad del contacto: "; cin >> contacto.localidad; cout << "Ingrese el nuevo municipio del contacto: "; cin >> contacto.municipio; cout << "Ingrese el nuevo estado del contacto: "; cin >> contacto.estado; cout << "Contacto modificado con éxito." << endl; return; } } cout << "Contacto no encontrado." << endl; } // Eliminar un contacto de la agenda void eliminarContacto() { string criterio; cout << "Ingrese el criterio de búsqueda (nombre o apellido paterno): "; cin >> criterio; for (auto it = contactos.begin(); it != contactos.end(); ++it) { if (it->nombre == criterio || it->apellidoPaterno == criterio) { contactos.erase(it); cout << "Contacto eliminado con éxito." << endl; return; } } cout << "Contacto no encontrado." << endl; } }; int main() { AgendaTelefonica agenda; while (true) { cout << "Menú de opciones:" << endl; cout << "1. Agregar un nuevo contacto" << endl; cout << "2. Consultar un contacto" << endl; cout << "3. Ordenar la agenda" << endl; cout << "4. Modificar un contacto" << endl; cout << "5. Eliminar un contacto" << endl; cout << "6. Salir" << endl; int opcion; cin >> opcion; switch (opcion) { case 1: agenda.agregarContacto(); break; case 2: agenda.consultarContacto(); break; case 3: agenda.ordenarAgenda(); break; case 4: agenda.modificarContacto(); break; case 5: agenda.eliminarContacto(); break; case 6: return 0; default: cout << "Opción inválida." << endl; } } return 0; } ``` Este programa crea una clase `AgendaTelefonica` que gestiona una lista de contactos. La clase tiene métodos para agregar, consultar, ordenar, modificar y eliminar contactos. El programa principal utiliza un bucle infinito para mostrar un menú de opciones y ejecutar la acción correspondiente según la opción seleccionada por el usuario.

Questions about programming?Chat with your personal AI assistant