Saludos a todos, he desarrollado este código pero no puedo hacerlo funcionar bien quizás la lógica que aplico es errónea, como podría hacer que el código funcione de manera correcta?
Tuve que Desarrollar una pequeña agenda con la siguiente estructura:
id_registro
Nombre
Apellido
Celular
y desarrollar las siguientes funciones para la administración:
ingresarRegistro()
eliminarRegistro()
modificarRegistro()
imprimirTodoRegistro()
Adjunto el código que llevo al momento. De antemano muchas Gracias a los que deseen ayudarme.
#include <iostream>
#include <cstring>
using namespace std;
struct Persona {
char Nombre[65];
char apellido[65];
char numcel[65];
}plantilla[100];
void ingresarRegistro();
void imprimirRegistro();
void modificarRegistro();
void eliminarRegistro();
int camb=0;
int copiar;
int main() {
int opc;
do{
cout<<"MENU"<<endl;
cout<<"1.Agregar Registro"<<endl;
cout<<"2.Eliminar Registro"<<endl;
cout<<"3.Modificar Registro"<<endl;
cout<<"4.Imprimir Registro"<<endl;
cout<<"5.Salir"<<endl;
cin>>opc;
switch(opc){
case 1:
ingresarRegistro();
break;
case 2:
eliminarRegistro;
break;
case 3:
modificarRegistro();
break;
case 4:
imprimirRegistro();
break;
}
}while(opc!=5);
return 0;
}
int cont=0;
void ingresarRegistro(){
int r,f;
r=cont++;
if (camb==1)
{
r--;
f=r+1;
cout<< "Agregue el nombre del nuevo contacto: ";
cin>> plantilla[f].Nombre;
cout<<endl;
cout<< "Agregue el apellido del nuevo contacto: ";
cin>> plantilla[f].apellido;
cout<<endl;
cout<< "Agregue el numero movil del nuevo contacto: ";
cin>> plantilla[f].numcel;
cout<<endl;
strcpy(plantilla[r].Nombre,plantilla[f].Nombre);
strcpy(plantilla[r].apellido,plantilla[f].apellido);
strcpy(plantilla[r].numcel,plantilla[f].numcel);
copiar++;
}
cout<< "Agregue el nombre del nuevo contacto: ";
cin>> plantilla[r].Nombre;
cout<<endl;
cout<< "Agregue el apellido del nuevo contacto: ";
cin>> plantilla[r].apellido;
cout<<endl;
cout<< "Agregue el numero movil del nuevo contacto: ";
cin>> plantilla[r].numcel;
cout<<endl;
}
// Imprime 20 valores inecesarios
void imprimirRegistro(){
int tr, a, r;
cout<< "Lista de Contactos: ";
cout<< endl;
if (cont==0)
{
cout<< "Lista de contactos vacia.";
cout<<endl;
} else {
for(a=0;a<r+1;a++)
{
tr=a;
cout<< tr+1<< ". ";
cout<< plantilla[a].Nombre;
cout<<endl;
}
}
}
void modificarRegistro(){
int a, tr,val, mod,g,r,rep;
cout<< "Lista de Contactos: ";
cout<< endl;
if (cont==0)
{
cout<< "Lista de contactos vacia.";
cout<<endl;
} else {
for(a=0;a<r+1;a++)
{
tr=a;
cout<< tr+1<< ". ";
cout<< plantilla[a].Nombre;
cout<<endl;
}
}
cout<<"Seleccione el numero del contacto que desea modificar: ";
cin>>val;
mod=val-1;
g=r+1;
int op1;
if (val<=g)
{
do
{
cout<<"Contacto:"<<endl;
cout<<"1. Nombre: "<<plantilla[mod].Nombre<<endl;
cout<<"2. Apellido: "<<plantilla[mod].apellido<<endl;
cout<<"3. Numero Movil: "<<plantilla[mod].numcel<<endl;
cout<<"4. Menu anterior."<<endl;
cout<<"Seleccione la opcion que desea modificar: ";
cin>>op1;
switch (op1)
{
case 1:
cout<< "Modifique el nombre del contacto: ";
cin>> plantilla[mod].Nombre;
cout<<endl;
break;
case 2:
cout<< "Modifique el apellido del contacto: ";
cin>> plantilla[mod].apellido;
cout<<endl;
break;
case 3:
cout<< "Modifique el numero de movil del contacto: ";
cin>> plantilla[mod].numcel;
cout<<endl;
break;
case 4:
rep=1;
break;
}
}while (rep==0);
}else {cout<<"El contacto no existe."<<endl;
rep=0;
}
}
void eliminarRegistro(){
int del;
int delm;
int h;
int rsp2;
int copiar;
int a1;
int r, tr, a;
cout<< "Lista de Contactos: ";
cout<< endl;
if (cont==0)
{
cout<< "Lista de contactos vacia.";
cout<<endl;
} else {
for(a=0;a<r+1;a++)
{
tr=a;
cout<< tr+1<< ". ";
cout<< plantilla[a].Nombre;
cout<<endl;
}
}
cout<<"Seleccione el numero del contacto que desea eliminar: ";
cin>>del;
delm=del-1;
h=r+1;
if (del<=h)
{
cout<< "Estas seguro que deseas borar el contacto selecionado?"<<endl;
cout<< "Nombre: "<<plantilla[delm].Nombre<<endl;
cout<< "Apellido: "<<plantilla[delm].apellido<<endl;
cout<< "Numero Movil: "<<plantilla[delm].numcel<<endl;
cout<< "1.Si 2.No"<<endl;
cin>>rsp2;
cout<<endl;
if (rsp2==1)
{
strcpy(plantilla[delm].Nombre,"\0");
strcpy(plantilla[delm].apellido,"\0");
strcpy(plantilla[delm].numcel,"\0");
copiar=delm;
for (a1=delm;a1<r+1;a1++)
{
strcpy(plantilla[copiar].Nombre,plantilla[copiar+1].Nombre);
strcpy(plantilla[copiar].apellido,plantilla[copiar+1].apellido);
strcpy(plantilla[copiar].numcel,plantilla[copiar+1].numcel);
copiar++;
}
r=cont-2;
camb=1;
} else {
}
}else {cout<<"El contacto no existe."<<endl;
}
}