Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Agenda Electrónica en c++

Estas en el tema de Agenda Electrónica en c++ en el foro de C/C++ en Foros del Web. Hola a todos, estoy haciendo una agenda electrónica que guarde 30 contactos, estoy en la parte de añadir contacto. Mi problema es que quiero guardar ...
  #1 (permalink)  
Antiguo 28/11/2015, 20:49
 
Fecha de Ingreso: noviembre-2015
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta Agenda Electrónica en c++

Hola a todos, estoy haciendo una agenda electrónica que guarde 30 contactos, estoy en la parte de añadir contacto.

Mi problema es que quiero guardar toda la información que puse en el programa en un solo contacto y que me deje añadir mas contactos con la misma información, para posteriormente poder verla y editarla.

Mi lógica es ir agregando la información y separarla por bloques, cada bloque seria cada contacto.

Quisiera saber que tengo que hacer para separar toda la información por bloques como mencione y como ver esa información posteriormente.



void Anadir()
{
system("Color F0");


int w = 0;
int l = 0;
int z = 0;
int m = 0;
int Contacto = 0;

int PosContacto;
int PosTelefono;
int PosCorreo;
int PosDireccion;
int PosFecha;

PosContacto = 0;
do
{

cout << "Introduzca el prefijo de nombre del contacto" << endl;
cin >> persona[registro].PrefijoDeNombre;
cin.ignore();

cout << "Introduzca el nombre del contacto" << endl;
getline(cin, persona[registro].Nombre);

cout << "Introduzca los Apellidos" << endl;
getline(cin, persona[registro].Apellidos);

PosTelefono = 0;

do
{
cout << "Introduzca el tipo de telefono del contacto (Casa, Movil, Trabajo, etc)" << endl;
cin >> persona[registro].T[PosTelefono].Tipodetelefono;
cout << "Introduzca el telefono del contacto" << endl;
cin >> persona[registro].T[PosTelefono].Numero;
cout << "¿Desea agregar otro numero?" << endl;
cout << "SI = 1 -- NO = 0" << endl;
cin >> w;

PosTelefono++;

} while (w == 1);


PosCorreo = 0;
do
{
cout << "Introduzca el correo electronico de su contacto" << endl;
cin >> persona[registro].E[PosCorreo].Correo;
cout << "Introduzca el tipo de correo electronico que agrego (Personal, Trabajo, etc)" << endl;
cin >> persona[registro].E[PosCorreo].tipodecorreo;
cout << "¿Desea agregar otro correo electronico?" << endl;
cout << "SI = 1 -- NO = 0" << endl;
cin >> m;
PosCorreo++;

} while (m == 1);


PosDireccion = 0;
do
{
cout << "Introduzca la direecion del contacto" << endl;
cout << "Tipo de direccion (Casa, trabajo...):" << endl;
cin >> persona[registro].D[PosDireccion].TipodeDireccion;
cin.ignore();

cout << "Calle:";
getline(cin, persona[registro].D[PosDireccion].Calle);
cin.ignore();

cout << "Numero:";
cin >> persona[registro].D[PosDireccion].Numero;

cout << "Colonia:";
cin.ignore();
getline(cin, persona[registro].D[PosDireccion].Colonia);


cout << "Codigo Postal:";
cin >> persona[registro].D[PosDireccion].CodigoPostal;

cout << "¿Desea agregar otra direccion?" << endl;
cout << "SI = 1 -- NO = 0" << endl;
cin >> l;

PosDireccion ++;

} while (l == 1);


PosFecha = 0;
do
{
cout << "Introduzca el titulo de la fecha especial" << endl;
cin >> persona[registro].F[PosFecha].Observaciones;
cout << "Introduzca el dia" << endl;
cin >> persona[registro].F[PosFecha].Dia;
cout << "Introduzca el mes" << endl;
cin >> persona[registro].F[PosFecha].Mes;
cout << "Introduzca el anio" << endl;
cin >> persona[registro].F[PosFecha].Anio;
cout << "¿Desea agregar a su contacto fechas especiales?" << endl;
cout << "SI = 1 -- NO = 0" << endl;
cin >> z;

PosFecha++;

} while (z == 1);

{

ofstream archivo;
archivo.open("Agenda.txt", ios::app);
archivo << "Prefijo de Nombre: " << persona[registro].PrefijoDeNombre << endl;
archivo << "Nombre: " << persona[registro].Nombre << endl;
archivo << "Apellido: " << persona[registro].Apellidos << endl;
archivo << "Telefono: " << persona[registro].T[5].Numero << endl;
archivo << "Tipo de Telefono: " << persona[registro].T[5].Tipodetelefono << endl;
archivo << "Correo electronico: " << persona[registro].E[5].Correo << endl;
archivo << "Tipo de Correo electronico: " << persona[registro].E[5].tipodecorreo << endl;
archivo << "Tipo de Direccion del contacto: " << persona[registro].D[5].TipodeDireccion << endl;
archivo << "Calle: " << persona[registro].D[5].Calle << endl;
archivo << "Numero de casa: " << persona[registro].D[5].Numero << endl;
archivo << "Colonia: " << persona[registro].D[5].Colonia << endl;
archivo << "Codigo postal: " << persona[registro].D[5].CodigoPostal << endl;
archivo << "Titulo de Fecha especial: " << persona[registro].F[5].Observaciones << endl;
archivo << "Dia: " << persona[registro].F[5].Dia << endl;
archivo << "Mes: " << persona[registro].F[5].Mes << endl;
archivo << "Anio: " << persona[registro].F[5].Anio << endl;
archivo.close();


registro++;
cout << endl << "Contacto anadido." << endl;
}

cout << "Desea agregar otro contacto" << endl;
cout << "SI = 1 -- NO = 0" << endl;
cin >> Contacto;

PosContacto++;

} while (Contacto == 1);

}
  #2 (permalink)  
Antiguo 30/11/2015, 02:43
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Agenda Electrónica en c++

Deberías mirar el tema de estructuras o structs:

Código C:
Ver original
  1. struct contacto
  2. {
  3.   char nombre[100];
  4.   char apellidos[100];
  5.   int telefono;
  6.   // ...
  7. };

Una vez definida, la estructura se usa prácticamente como una variable normal, por lo que nada te impide crear un array de elementos:

Código C:
Ver original
  1. struct contacto agenda[100]; // agenda permite almacenar 100 contactos

O también puedes crear los contactos sobre la marcha definiendo un array de punteros:

Código C:
Ver original
  1. struct contacto** agenda;

... o incluso montar una lista enlazada:

Código C:
Ver original
  1. struct nodo
  2. {
  3.   struct nodo* siguiente;
  4.   struct contacto contacto;
  5. };

No será por falta de opciones.

Un saludo
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: ayuda!!, c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.