Advertisement
Miketo_prog

Clave de alumno

Jun 30th, 2020 (edited)
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.33 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. #define SALTO cout<<endl<<endl;
  5. using namespace std;
  6.  
  7. struct Date_burn {
  8.     string year,
  9.              month,
  10.              day;
  11.     };
  12.    
  13. struct Student {
  14.     string name,
  15.                paternal_s,
  16.                maternal_s;
  17.     char gender;
  18.     char titular;
  19.     Date_burn date;
  20. };
  21.  
  22. void datos();
  23. string concatenar(struct Student);
  24. inline int longitud(string);
  25. void subcadena(struct Student);
  26.  
  27. int main()
  28. {
  29.     datos();
  30.    
  31.     return 0;
  32. }
  33.  
  34. //Solicita los datos al usuario
  35. void datos(){
  36.     Student alumno;
  37.    
  38.     cout<<"Proporciona los siguientes datos";
  39.     SALTO;
  40.     cout<<"Nombre: ";
  41.     getline(cin, alumno.name);
  42.     cout<<"Apellido paterno: ";
  43.     cin>>alumno.paternal_s;
  44.     cout<<"Apellido materno: ";
  45.     cin>>alumno.maternal_s;
  46.     cout<<"Genero (H/M): ";
  47.     cin>>alumno.gender;
  48.     cout<<"Fecha de nacimiento."<<endl<<"Anio (aaaa): ";
  49.     cin>>alumno.date.year;
  50.     cout<<"Mes (mm): ";
  51.     cin>>alumno.date.month;
  52.     cout<<"Dia (dd): ";
  53.     cin>>alumno.date.day;
  54.     cout<<"Es titular del seguro (Y/N)? ";
  55.     cin>>alumno.titular;
  56.    
  57.     subcadena(alumno);
  58.        
  59. }
  60. //Solicita y muestra la cadena de la clave
  61. void subcadena(struct Student alumno){
  62.     string clave = concatenar(alumno);
  63.    
  64.     SALTO;
  65.    
  66.     cout<<"La clave del alumno "<<alumno.name<<" es "<<clave;
  67.    
  68.     SALTO;
  69. }
  70.  
  71. //Define el contenido de la clave
  72. string concatenar(struct Student alumno){
  73.     string clave;
  74.    
  75.         //Fecha nac
  76.     clave = alumno.date.year + alumno.date.month + alumno.date.day;
  77.    
  78.     //Género
  79.     if( alumno.gender == 'H' || alumno.gender == 'h')
  80.         clave += '1';
  81.     else
  82.         clave += '2';
  83.    
  84.     //Apellido paterno
  85.     if( longitud(alumno.paternal_s)>=4 ){
  86.         clave += toupper(alumno.paternal_s[0]);
  87.         clave += toupper(alumno.paternal_s[3]);
  88.     }
  89.     else{
  90.         clave += toupper(alumno.paternal_s[0]);
  91.         clave += toupper(alumno.paternal_s[longitud(alumno.paternal_s)-1]);
  92.     }
  93.    
  94.     //Apellido materno
  95.     if( longitud(alumno.maternal_s)>=4 ){
  96.         clave += toupper(alumno.maternal_s[0]);
  97.         clave += toupper(alumno.maternal_s[3]);
  98.     }
  99.     else{
  100.         clave += toupper(alumno.maternal_s[0]);
  101.         clave += toupper(alumno.maternal_s[longitud(alumno.maternal_s)-1]);
  102.     }
  103.    
  104.     //Nombre
  105.     clave += toupper(alumno.name[0]);
  106.    
  107.     //Titular o dependiente
  108.     if( alumno.titular == 'Y' || alumno.titular == 'y' )
  109.         clave += "001";
  110.     else
  111.         clave += "002";
  112.        
  113.     return clave;
  114. }
  115.  
  116.  
  117. inline int longitud(string cad){
  118.     return ( cad.length() );
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement