#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
class curp
{
private:
char res[15];
char *ap, *ap1;
char apellidop[15];
char apellidom[15];
char nombre1[15];
char sex[2];
char ano[2];
char mes[2];
char dia[2];
char lugar[2];
public:
//inicializar la cadena res[]
curp(){ap=ap1=NULL;}
obtenerdatos();
generarcurp();
imprimirdatos();
};
curp::obtenerdatos()
{
cout<<”\nIntroduzca su primer apellido: “;
cin>>apellidop;
cout<<”\nIntroduzca su segundo apellido”<<endl;
cout<<”Si no tiene segundo apellido escriba XX: “;
cin>>apellidom;
cout<<”\nIntroduzca su primer nombre: “;
cin>>nombre1;
cout<<”\nPresione 1 si se llama Maria o Jose y tiene un segundo nombre,”<<endl<<”2 si no es el caso “;
int a;
cin>>a;
switch(a)
{
case 1:
{
cout<<”\nIntroduzca su 2ndo nombre: “;
cin>>nombre1;
break;
}
case 2:
{
cout<<”\nprosiguiendo…”;
break;
}
default:
{
cout<<”\n\n Opcion incorrecta, terminando programa…”;
getch();
abort ();
break;
}
}
cout<<”\nIntroduzca los dos ultimos numeros de su año de nacimiento: “;
cin>>ano;
cout<<”\nIntroduzca el numero del mes de nacimiento(dos cifras): “<<endl;
cout<<”01 = Enero”<<endl;
cout<<”02 = Febrero”<<endl;
cout<<”03 = Marzo”<<endl;
cout<<”04 = Abril”<<endl;
cout<<”05 = Mayo”<<endl;
cout<<”06 = Junio”<<endl;
cout<<”07 = Julio”<<endl;
cout<<”08 = Agosto”<<endl;
cout<<”09 = Septiembre”<<endl;
cout<<”10 = Octubre”<<endl;
cout<<”11 = Noviembre”<<endl;
cout<<”12 = Diciembre”<<endl;
cin>>mes;
if(mes[0]>49)
{
cout<<”\n\n Ha intgresado mal el dato!!!”;
getch();
abort ();
}
cout<<”\nIntroduzca su dia de nacimiento (dos cifras): “;
cin>>dia;
if (dia[0]>51)
{
cout<<”\n\nEsa fecha no existe”;
getch();
abort ();
}
cout<<”\nIntroduzca su sexo: H = Hombre, M = Mujer ” ;
cin>>sex;
if (sex[0]!=72 && sex[0]!=77 && sex[0]!= 104 && sex[0]!=109)
{
cout<<”\n\nOpcion no valida”;
getch();
abort ();
}
};
curp::generarcurp()
{
curp resultado(curp& res);
ap1=res;
ap=apellidop;
*ap1=*ap;
ap1++;
ap++;
//problemas con while, cilco con if
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
*ap1=*ap;
else
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
*ap1=*ap;
else
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
*ap1=*ap;
ap1++;
ap=apellidom;
*ap1=*ap;
ap1++;
ap=nombre1;
*ap1=*ap;
ap1++;
ap=ano;
*ap1=*ap;
ap1++;ap++;
*ap1=*ap;
ap1++;
ap=mes;
*ap1=*ap;
ap1++;ap++;
*ap1=*ap;
ap1++;
ap=dia;
*ap1=*ap;
ap1++;
ap++;
*ap1=*ap;
ap1++;
ap=sex;
*ap1=*ap;
ap1++;
int b;
cout<<”\nIngrese la clave de la izquierda correspondiente al lugar de nacimiento”<<endl;
cout<<”1 – Aguascalientes”<<”\t17 – Morelos”<<endl;
cout<<”2 – Baja California”<<”\t18 – Nayarit”<<endl;
cout<<”3 – Baja California Sur”<<”\t19 – Nuevo Leon”<<endl;
cout<<”4 – Campeche”<<”\t\t20 – Oaxaca”<<endl;
cout<<”5 – Chiapas”<<”\t\t21 – Puebla”<<endl;
cout<<”6 – Chihuahua”<<”\t\t22 – Queretaro”<<endl;
cout<<”7 – Coahuila”<<”\t\t23 – Quintana Roo”<<endl;
cout<<”8 – Colima”<<”\t\t24 – San Luis Potosi”<<endl;
cout<<”9 – Distrito Federal”<<”\t25 – Sinaloa”<<endl;
cout<<”10 – Durango”<<”\t\t26 – Sonora”<<endl;
cout<<”11 – Guanajuato”<<”\t\t27 – Tabasco”<<endl;
cout<<”12 – Guerrero”<<”\t\t28 – Tamaulipas”<<endl;
cout<<”13 – Hidalgo”<<”\t\t29 – Tlaxcala”<<endl;
cout<<”14 – Jalisco”<<”\t\t30 – Veracruz”<<endl;
cout<<”15 – Mexico”<<”\t\t31 – Yucatan”<<endl;
cout<<”16 – Michoacan”<<”\t\t32 – Zacatecas”<<endl;
cout<<”33 – Extranjero”<<endl;
cin>>b;
switch(b)
{
case 1:
{
*ap1=65;
ap1++;
*ap1=83;
break;
}
case 2:
{
*ap1=66;
ap1++;
*ap1=67;
break;
}
case 3:
{
*ap1=66;
ap1++;
*ap1=83;
break;
}
case 4:
{
*ap1=67;
ap1++;
*ap1=67;
break;
}
case 5:
{
*ap1=67;
ap1++;
*ap1=83;
break;
}
case 6:
{
*ap1=67;
ap1++;
*ap1=72;
break;
}
case 7:
{
*ap1=67;
ap1++;
*ap1=76;
break;
}
case 8:
{
*ap1=67;
ap1++;
*ap1=77;
break;
}
case 9:
{
*ap1=68;
ap1++;
*ap1=70;
break;
}
case 10:
{
*ap1=68;
ap1++;
*ap1=71;
break;
}
case 11:
{
*ap1=71;
ap1++;
*ap1=84;
break;
}
case 12:
{
*ap1=71;
ap1++;
*ap1=82;
break;
}
case 13:
{
*ap1=72;
ap1++;
*ap1=71;
break;
}
case 14:
{
*ap1=74;
ap1++;
*ap1=67;
break;
}
case 15:
{
*ap1=77;
ap1++;
*ap1=67;
break;
}
case 16:
{
*ap1=77;
ap1++;
*ap1=78;
break;
}
case 17:
{
*ap1=77;
ap1++;
*ap1=86;
break;
}
case 18:
{
*ap1=78;
ap1++;
*ap1=84;
break;
}
case 19:
{
*ap1=78;
ap1++;
*ap1=76;
break;
}
case 20:
{
*ap1=79;
ap1++;
*ap1=67;
break;
}
case 21:
{
*ap1=80;
ap1++;
*ap1=76;
break;
}
case 22:
{
*ap1=81;
ap1++;
*ap1=84;
break;
}
case 23:
{
*ap1=81;
ap1++;
*ap1=82;
break;
}
case 24:
{
*ap1=83;
ap1++;
*ap1=80;
break;
}
case 25:
{
*ap1=83;
ap1++;
*ap1=76;
break;
}
case 26:
{
*ap1=83;
ap1++;
*ap1=82;
break;
}
case 27:
{
*ap1=84;
ap1++;
*ap1=67;
break;
}
case 28:
{
*ap1=84;
ap1++;
*ap1=83;
break;
}
case 29:
{
*ap1=84;
ap1++;
*ap1=76;
break;
}
case 30:
{
*ap1=86;
ap1++;
*ap1=90;
break;
}
case 31:
{
*ap1=89;
ap1++;
*ap1=78;
break;
}
case 32:
{
*ap1=90;
ap1++;
*ap1=83;
break;
}
case 33:
{
*ap1=78;
ap1++;
*ap1=69;
break;
}
default:
{
cout<<”\n\n Ha intgresado mal el dato!!!”;
getch();
abort ();
break;
}
};
//ciclos con if
ap1++;
ap=apellidop;
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
{
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
ap++;
if(*ap!=65||*ap!=69||*ap!=73||*ap!=79||*ap!=85||*ap!=97||*ap!=101||*ap!=105||*ap!=111||*ap!=117)
*ap1=*ap;
else
*ap1=*ap;
}
else
*ap1=*ap;
ap1++;
ap=apellidom;
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
{
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
ap++;
if(*ap!=65||*ap!=69||*ap!=73||*ap!=79||*ap!=85||*ap!=97||*ap!=101||*ap!=105||*ap!=111||*ap!=117)
*ap1=*ap;
else
*ap1=*ap;
}
else
*ap1=*ap;
ap1++;
ap=nombre1;
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
{
ap++;
if(*ap==65||*ap==69||*ap==73||*ap==79||*ap==85||*ap==97||*ap==101||*ap==105||*ap==111||*ap==117)
ap++;
if(*ap!=65||*ap!=69||*ap!=73||*ap!=79||*ap!=85||*ap!=97||*ap!=101||*ap!=105||*ap!=111||*ap!=117)
*ap1=*ap;
else
*ap1=*ap;
}
else
*ap1=*ap;
ap1++;
*ap1=0;
}
curp::imprimirdatos()
{
cout<<endl<<”\t”<<res<<”03″;
getch();
}
void main(void)
{
cout<<” Generador de curp”<<endl;
curp a;
a.obtenerdatos();
a.generarcurp();
cout<<” La curp es:”<<endl;
a.imprimirdatos();
}
Etiquetas: apuntadores, C++, clase, curp, orientada a objetos