lencinasalejo

ejercicio5000ALUMNOS

Jun 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct{
  6.     int dia;
  7.     int mes;
  8.     int anio;
  9. }TFecha;
  10.  
  11. typedef struct{
  12.     int dni;
  13.     char apyn[30];
  14.     char domicilio[30];
  15.     char sexo;
  16.     TFecha nac;
  17.     int cma;
  18.     float prom;
  19.  
  20. } TAlumno;
  21.  
  22. int ValidarDni ();
  23. char ValidarSexo();
  24. int ValidarMaterias();
  25. float ValidarProm();
  26. void IngresoDeDatos(TAlumno[], int);
  27. int EsFechaValida (int, int, int);
  28. int bisiesto (int);
  29. int cantidadDiasDelMes(int, int);
  30. void burbuja2(TAlumno[], int);
  31. void MostrarEstructura (TAlumno[], int);
  32.  
  33. int main()
  34. {
  35.  
  36.     return 0;
  37. }
  38. int ValidarDni(){
  39. int d, x;
  40. do{printf ("Ingrese DNI: ");
  41. scanf ("%d", &d);
  42. if (d>=0 && d<=99999999){
  43.     x=1;
  44. } else{x=0;}}while (x=0);
  45. return d;
  46. }
  47. char ValidarSexo(){
  48. char s; int x;
  49. do{printf ("Ingrese sexo (F/M): ");
  50. scanf ("%c", &s);
  51. if (s=='F'||s=='M'){
  52.     x=1;
  53. }else {x=0;}
  54. }while(x=0);
  55. return s;
  56. }
  57. int ValidarMaterias(){
  58. int m,x;
  59. do{printf("Ingrese cantidad de materias aprobadas: ");
  60. scanf ("%d", &m);
  61. if (m>=0){
  62.     x=1;
  63. }else {x=0;}
  64. }while (x=0);
  65. return m;
  66. }
  67. float ValidarProm(){
  68. float prom;
  69. int x;
  70. do{
  71.     printf ("Ingrese promedio: ");
  72.     scanf ("%f", &prom);
  73.     if (prom>0){
  74.         x=1;
  75.     }else{x=0;}
  76. } while (x=0);
  77. return prom;
  78. }
  79.  
  80. void IngresoDeDatos(TAlumno alumno[], int ce){
  81. int i=0,d,m,a,dni;
  82. char nombre[30], domicilio[30];
  83. do{
  84.     dni=ValidarDni()
  85.     alumno[i].dni=dni;
  86.     printf ("Ingrese apellido y nombre: ");
  87.     gets (nombre);
  88.     alumno[i].apyn=nombre;
  89.     printf ("Ingrese domicilio: ");
  90.     gets (domicilio);
  91.     alumno[i].domicilio=domicilio;
  92.     alumno[i].sexo=ValidarSexo();
  93.     printf ("Ingrese dia, mes y anio separados por un espacio: ");
  94.     scanf ("%d", &d);
  95.     scanf ("%d", &m);
  96.     scanf ("%d", &a);
  97.     if (EsFechaValida(d,m,a)==1){
  98.         alumno[i].nac.dia=d;
  99.         alumno[i].nac.mes=m;
  100.         alumno[i].nac.anio=a;
  101.         alumno[i].prom=ValidarProm();
  102.         i++;
  103.     }else {printf ("Fecha invalida");}
  104. }while (i<ce && dni!=0);
  105. }
  106. int esFechaValida(int d,int m, int a)
  107. {   int r;
  108.     r=0;
  109.  
  110.  
  111.         if (a>=1950 && a<= 2018)
  112.         {
  113.             if (m>=1 && m<=12)
  114.             {
  115.                 if(d>=1 && d<=cantidadDiasDelMes(m,a))
  116.                 {
  117.                     r=1;
  118.                 }
  119.             }
  120.         } return r;
  121. }
  122.  
  123. int cantidadDiasDelMes(int m, int a)
  124. {   int cdm;
  125.     if (m==4 || m==6 || m==9 || m==11)
  126.     {
  127.         cdm=30;
  128.     }
  129.     else
  130.     {
  131.         if (m==2)
  132.         {
  133.             cdm=28+bisiesto(a);
  134.         }
  135.         else
  136.         {
  137.             cdm=31;
  138.         }
  139.     }
  140. }
  141.  
  142. int bisiesto(int a)
  143. {
  144.     if (a%4==0 && a%100!=0 || a%400==0)
  145.     {
  146.         return 1;
  147.     }
  148.     else
  149.     {
  150.         return 0;
  151.     }
  152. }
  153. void burbuja2(TAlumno alumno[], int a){
  154. int i=0, hubocambio, j;
  155. TAlumno aux;
  156. do {
  157.     hubocambio=0;
  158.     for (j=1; j<a-1; j++){
  159.         if (alumno[j-1].prom < alumno[j].prom){
  160.             aux=alumno[j-1];
  161.             alumno[j-1]=alumno[j];
  162.             alumno[j]=aux;
  163.             hubocambio=1;
  164.         }
  165.     }
  166.     i++;
  167. } while(hubocambio);
  168.  
  169. }
  170. void MostrarEstructura (TAlumno alumno[], int ce){
  171.     printf ("DNI \t\t NOMBRE \t\t DOMICILIO \t\t SEXO \t\t NACIMIENTO \t\t PROMEDIO\n");
  172. for (int i=0; i<ce; i++){
  173.  
  174. }
  175. }
Add Comment
Please, Sign In to add comment