Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #define SALTO cout<<endl<<endl;
- using namespace std;
- struct Date_burn {
- string year,
- month,
- day;
- };
- struct Student {
- string name,
- paternal_s,
- maternal_s;
- char gender;
- char titular;
- Date_burn date;
- };
- void datos();
- string concatenar(struct Student);
- inline int longitud(string);
- void subcadena(struct Student);
- int main()
- {
- datos();
- return 0;
- }
- //Solicita los datos al usuario
- void datos(){
- Student alumno;
- cout<<"Proporciona los siguientes datos";
- SALTO;
- cout<<"Nombre: ";
- getline(cin, alumno.name);
- cout<<"Apellido paterno: ";
- cin>>alumno.paternal_s;
- cout<<"Apellido materno: ";
- cin>>alumno.maternal_s;
- cout<<"Genero (H/M): ";
- cin>>alumno.gender;
- cout<<"Fecha de nacimiento."<<endl<<"Anio (aaaa): ";
- cin>>alumno.date.year;
- cout<<"Mes (mm): ";
- cin>>alumno.date.month;
- cout<<"Dia (dd): ";
- cin>>alumno.date.day;
- cout<<"Es titular del seguro (Y/N)? ";
- cin>>alumno.titular;
- subcadena(alumno);
- }
- //Solicita y muestra la cadena de la clave
- void subcadena(struct Student alumno){
- string clave = concatenar(alumno);
- SALTO;
- cout<<"La clave del alumno "<<alumno.name<<" es "<<clave;
- SALTO;
- }
- //Define el contenido de la clave
- string concatenar(struct Student alumno){
- string clave;
- //Fecha nac
- clave = alumno.date.year + alumno.date.month + alumno.date.day;
- //Género
- if( alumno.gender == 'H' || alumno.gender == 'h')
- clave += '1';
- else
- clave += '2';
- //Apellido paterno
- if( longitud(alumno.paternal_s)>=4 ){
- clave += toupper(alumno.paternal_s[0]);
- clave += toupper(alumno.paternal_s[3]);
- }
- else{
- clave += toupper(alumno.paternal_s[0]);
- clave += toupper(alumno.paternal_s[longitud(alumno.paternal_s)-1]);
- }
- //Apellido materno
- if( longitud(alumno.maternal_s)>=4 ){
- clave += toupper(alumno.maternal_s[0]);
- clave += toupper(alumno.maternal_s[3]);
- }
- else{
- clave += toupper(alumno.maternal_s[0]);
- clave += toupper(alumno.maternal_s[longitud(alumno.maternal_s)-1]);
- }
- //Nombre
- clave += toupper(alumno.name[0]);
- //Titular o dependiente
- if( alumno.titular == 'Y' || alumno.titular == 'y' )
- clave += "001";
- else
- clave += "002";
- return clave;
- }
- inline int longitud(string cad){
- return ( cad.length() );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement