Mi código es una agenda, tiene un menú de 6 opciones.... mi case 4 la función llama a los datos que están guardados, pero en el campo del teléfono lo imprime raro.
#include<iostream>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<fstream>
#include<cstring>
using namespace std;
Estas son las librerias que he utilizado, si alguna esta de más me seria de mucha utilidad que me lo dijeran o que la este empleando mal.
struct spersonas{
char nombre[25];
string apellido;
double telefono;
string direccion;
string correo_elec;
}agenda[50];
Estos son los prototipos que estoy usando, para después llamarlos al menú
void agregar_personas();
void buscar_contacto();
void modificar(int nm);
void imprimir();
void eliminaContacto();
int numper=0;
int tele;
int even;
int numE=0;
char nombre[25];
int nm;
int ce;
int ne;
int main(){
int opc;
do {
cout<<"\t\t______________________________\n";
cout<<"\t\t Agenda electronica \n";
cout<<"\t\t______________________________ \n";
cout<<"1. Agregar contacto \n";
cout<<"2. Buscar contacto \n";
cout<<"3. Modificar datos \n";
cout<<"4. Imprimir listado \n";
cout<<"5. Eliminar contacto \n";
cout<<"6. Salir \n";
cout<<"Ingrese la opcion deseada \n";
cin>>opc;
system("cls");
Aquí empienzan los cases del programa, en el numero 4 es donde tengo el error
switch(opc){
En el caso número 1, cuando corro el programa no me arroja ningún error de que algo este mal. Sino que se captura perfectamente, sin ningún problema de lo que capturo, no se si el error se en la función o sea error del menú.
case 1:
agregar_personas();
break;
Cuando quiero realizar la búsqueda, igualmente me arroja el mismo error del número de teléfono que he ingresado en la opción de capturar.
case 2:
buscar_contacto();
break;
case 3:
cout<<"Se va a realizar una busqueda con respecto al telefono, la agenda le mostrara los datos de este contacto\n";
cout<<"Digite el telefono de la persona a la que va a modificar ";
cin>>nm;
modificar(nm);
break;
En este case de mi menú es donde yo mando a llamar la función que previamente hice. El error que me arroja es de que el número de teléfono me lo imprime mal.
case 4:
imprimir();
break;
El case número 5 funciona sin ninguno problema case 5:
eliminaContacto();
break;
case 6:
cout<<"Hasta pronto.";
break;
}
} while(opc!=6);
getch();
return (0);
}
Este es el prototipo de la función donde capturo los datos, y donde el número de teléfono me lo imprime después mal. No se porque me arroje ese dato mal, si este usando la función mal o algo.
void agregar_personas(){
cout<<"Digite el nombre: ";
cin>>agenda[numper].nombre;
cout<<"Digite el apellido: ";
cin>>agenda[numper].apellido;
cout<<"Digite el numero de telefono: ";
cin>>agenda[numper].telefono;
cout<<"Digite direccion: ";
cin>>agenda[numper].direccion;
cout<<"Digite correo electronico: ";
cin>>agenda[numper].correo_elec;
numper++;
cout<<"\n\n Los datos se guardaron con exito.\n\n";
ofstream out("contactos.txt");
for(int i=0; i<numper; i++){
out<<"Número de Registro: "<<i+1<<endl;
out<<"Nombre ==>:"<<agenda[i].nombre<<endl;
out<<"Télefono ==>:"<<agenda[i].telefono<<endl;
out<<"Dirección ==>:"<<agenda[i].direccion<<endl;
out<<"Correo ==>:"<<agenda[i].correo_elec<<"\n\n"<<endl;
}
system("pause");
system("cls");
}
void buscar_contacto(){
int i, j, op ;
char nom[25];
int encontrado=0;
cout<<"Desea buscarlo por: \n1.Nombre \n2.Telefono \n";
cin>>op;
switch(op){
case 1:
cout<<"Escriba el nombre que va a buscar \n";
cin>>nom;
for(i=0;i<numper;i++){
if(strcmp(agenda[i].nombre, nom)== 0){
if (agenda[i].telefono!=0){
cout<<"Numero de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<agenda[i].nombre<<endl;
cout<<"Telefono ==>:"<<agenda[i].telefono<<endl;
cout<<"Direccion ==>:"<<agenda[i].direccion<<endl;
cout<<"Correo ==>:"<<agenda[i].correo_elec<<endl;
cout<<"-----------------------------------------"<<endl;
j=1;
system("pause");
system("cls");
}
}
}
if(j!=1){
cout<<"No existe esa persona en la lista de contactos."<<endl;
system("pause");
system("cls");
}
break;
case 2:
cout<<"Ingrese el telefono de la persona que va a buscar: \n";
cin>>tele;
for (i=0;i<numper;i++){
if(agenda[i].telefono == tele){
encontrado=1;
j=i;
break;
}
}
if (encontrado==1){
cout<<"Numero de Registro: "<<i<<endl;
cout<<"Nombre ==>:"<<agenda[j].nombre<<endl;
cout<<"Telefono ==>:"<<agenda[j].telefono<<endl;
cout<<"Direccion ==>:"<<agenda[j].direccion<<endl;
cout<<"Correo ==>:"<<agenda[j].correo_elec<<endl;
cout<<"-----------------------------------------"<<endl;
}
else
cout<<"No existe ese telefono."<<endl;
system("pause");
system("cls");
}
}
void modificar (int nm){
int i, j;
int encontrado=0;
for (i=0;i<numper;i++){
if(agenda[i].telefono==nm){
encontrado=1;
j=i;
break;
}
}
if (encontrado==1){
cout<<"Numero de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<agenda[j].nombre<<endl;
cout<<"Telefono ==>:"<<agenda[j].telefono<<endl;
cout<<"Direccion ==>:"<<agenda[j].direccion<<endl;
cout<<"Correo ==>:"<<agenda[j].correo_elec<<endl;
cout<<"-----------------------------------------"<<endl;
int qw;
cout<<"Que desea modificar de la persona \n";
cout<<"1.Nombre \n"<<"2.Telefono \n"<<"3.Dirección \n"<<"4.Correo electronico \n";
cin>>qw;
switch(qw){
case 1:
cout<<"Digite el nombre:";
cin>>agenda[j].nombre;
break;
case 2:
cout<<"Digite el numero de telefono:";
cin>>agenda[j].telefono;
break;
case 3:
cout<<"Digite Direccion:";
cin>>agenda[j].direccion;
break;
case 4:
cout<<"Digite correo electronico:";
cin>>agenda[j].correo_elec;
break;
}
cout<<"Completado.\n ";
ofstream out("contactos.txt");
for(int i=0; i<numper; i++){
out<<"Número de Registro: "<<i+1<<endl;
out<<"Nombre ==>:"<<agenda[i].nombre<<endl;
out<<"Télefono ==>:"<<agenda[i].telefono<<endl;
out<<"Dirección ==>:"<<agenda[i].direccion<<endl;
out<<"Correo ==>:"<<agenda[i].correo_elec<<"\n\n"<<endl;
}
}
else
cout<<"No exíste ese numero."<<endl;
system("pause");
system("cls");
}
void imprimir(){
int i, t=0;
cout<<"\t Listado de contactos"<<endl;
for(i=0; i<numper; i++)
{
if(agenda[i].telefono!=1){
cout<<"No. del contacto \t"<<t+1<<"\nNombre del contacto \t"
<<agenda[i].nombre<<"\nApellido"<<agenda[i].apellido<<"\nTelefono \t"<< agenda[i].telefono<<"\nDireccion \t"<<agenda[i].direccion<<"\nCorreo electronico\t"<<agenda[i].correo_elec <<"\n\n"<<endl;t++;
}
}
system("pause");
system("cls");
}
void eliminaContacto(){
int i, r, k;
do{
cout<<"Digite el numero de telefono de la persona que va a eliminar, se le va mostrar\n los datos de las personas y verificara si es el que esta buscando\n";
cin>>ce;
for(i=0; i<numper; i++){
if(ce==agenda[i].telefono){
cout<<"Numero de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<agenda[i].nombre<<endl;
cout<<"Telefono ==>:"<<agenda[i].telefono<<endl;
cout<<"Direccion ==>:"<<agenda[i].direccion<<endl;
cout<<"Correo ==>:"<<agenda[i].correo_elec<<endl;
cout<<"-----------------------------------------"<<endl;
i=ne;
do{
cout<<"Esta seguro que desea eliminar el contaco? 1:Si 2:No";
cin>>r;
if(r<1 || r>2){
cout<<"Error, intente de nuevo";
system("pause");
system("cls");
}
else {
agenda[ne].telefono=0;
}
}while(r<1 || r>2);
system("cls");
break;
}else {cout<<"El contacto no existe o no tiene ese numero\n Desea intentar de nuevo? 1:Si 2:No \n";
cin>>k;
system("cls");
}
}
}while(k==1);
}