Advertisement
gahz

sp.h

Dec 19th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.50 KB | None | 0 0
  1. /*sp.h*/
  2. void delay(int);
  3.  
  4. int segundaP(void)
  5. {
  6.     int i, j, intentos=0, concorr=1, ccont=0;
  7.     char tc, cad[35], pas[]="ldp";
  8.     clrscr();
  9.     bkfill(1);
  10.    
  11.     textbackground(15);
  12.     textcolor(0);
  13.    
  14.     /*  Se dibuja la caja de la contraseña */
  15.     for(i=10; i<=70; i++)
  16.     {
  17.         for(j=7; j<=9; j++)
  18.         {
  19.             gotoxy(i, j);
  20.             cprintf(" ");
  21.         }
  22.     }
  23.    
  24.     textcolor(0);
  25.     gotoxy(11, 8);
  26.     cprintf("Ingrese la Contrase%ca: ", 164);
  27.    
  28.     do{
  29.         do{
  30.             tc = getch();
  31.        
  32.             if( (int) tc != 13 )
  33.             {    
  34.                 /* Si el caracter recibido es diferente de ENTER
  35.                     se inserta en una cadena de caracteres, y
  36.                     se aumenta el contador solo si no se supera la
  37.                     caja de contraseña ni el caracter ingresado es el de "BORRAR" */
  38.                 cad[ccont]=tc;
  39.                
  40.                 if(ccont<34 && (int) tc != 8 )
  41.                     ccont++;    
  42.                    
  43.             }else{
  44.                 /* Si lo capturado fue enter, se cierra la cadena */
  45.                 cad[ccont] = '\0';
  46.             }
  47.  
  48.             if( (int) tc != 8)
  49.             {
  50.                 /* Si lo capturado es diferente de "BORRAR" y no se ha superado
  51.                    la caja de contraseña, se escribe un asterisco*/
  52.                 if(ccont<34 && (int)tc != 13 )
  53.                     printf("*");
  54.                    
  55.             }else{
  56.            
  57.                 /* Si lo capturado ha sido "BORRAR" y si se ha escrito algo
  58.                   disminuimos la contadora, y sustituimos el caracter ingresado
  59.                   anteriormente por un espacio, destruyendolo asi.
  60.                   despues se borra en pantalla /b representa un retroceso,
  61.                   se imprime un espacio y vuelve a retroceder*/
  62.                 if(ccont >0)
  63.                 {
  64.                     ccont--;
  65.                     cad[ccont]=' ';
  66.                     cprintf("\b");
  67.                     cprintf(" ");
  68.                     cprintf("\b");
  69.                    
  70.                 }
  71.             }
  72.            
  73.         }while( (int) tc != 13 );
  74.        
  75.         /* strcmp compara dos cadenas y devuelve 0 si son iguales. */
  76.         if(strcmp(cad, pas) == 0 )
  77.         {
  78.             concorr=0;
  79.         }else{
  80.        
  81.             /*Si las cadenas son diferentes, borro todo, tanto en la cadena, como en pantalla */
  82.             gotoxy(34, 8);
  83.             for(i=0; i<=ccont; i++)
  84.             {
  85.                 cprintf(" ");
  86.                 cad[i] = ' ';
  87.             }
  88.            
  89.             gotoxy(20, 4);
  90.             cprintf("Incorrecto! %d Intentos Restantes", (2-intentos));
  91.            
  92.             gotoxy(34, 8);
  93.             intentos++;
  94.             ccont=0;
  95.         }
  96.    
  97.     }while(intentos<3 && concorr!=0);
  98.    
  99.     gotoxy(20, 4);
  100.     textbackground(1);
  101.     textcolor(0);
  102.    
  103.     /*Se valora si se ha finalizado porque se ingreso la contraseña
  104.       correcta, o porque se acabaron los intentos */
  105.     if(concorr==0)
  106.     {
  107.         cprintf(" Contrase%ca Correcta!. Iniciando Carga.", 164);
  108.     }
  109.     else
  110.     {
  111.         cprintf(" Contrase%ca Incorrecta. Finalizando", 164);
  112.     }
  113.    
  114.     delay(1700);
  115. return concorr;              
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement