Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2013, 23:39
WinderJerter
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 14 años, 8 meses
Puntos: 5
cambiar valor de return

Hola que tal, estoy haciendo una clase para registrar empleados y para iniciar sesión, y lo que quiero hacer es que si el nombre de usuario y contraseña con correctos me muestre varias opciones, la verdad no se como hacerlo bien pero yo lo estoy intentado de esta manera pero no me funciona, les dejo el código abajo haber si me pueden ayudar a resolver mi problema.

Saludos y gracias de antemano : adios:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. class Empleado {
  8.     public:
  9.         void registrar();
  10.         void iniciar_sesion( char *, char * );
  11.         int estado() { return 0; }
  12.        
  13.     private:
  14.         char usuario[ 22 ], contrasena[ 22 ];
  15. } e;
  16.  
  17. void Empleado::registrar() {
  18.     int bandera = 0;
  19.     char comprobar_usuario[ 22 ];
  20.    
  21.     ifstream leer_empleados( "empleados.txt", ios::in | ios::app );
  22.    
  23.     if( leer_empleados.fail() ) {
  24.         cout << "\nError al leer el archivo empleados.txt" << endl;
  25.     } else {
  26.         cout << "Usuario: "; cin >> comprobar_usuario;
  27.        
  28.         while( !leer_empleados.eof() ) {
  29.             leer_empleados.read( (char*)&e, sizeof( e ) );
  30.            
  31.             if(leer_empleados.eof()) {
  32.                 break;
  33.             }
  34.            
  35.             if( strcmp( usuario, comprobar_usuario ) == 0 ) {
  36.                 bandera = 1;
  37.             }
  38.         }
  39.         leer_empleados.close();
  40.        
  41.         if( bandera == 1 ) {
  42.             cout << "\nEl nombre de usuario ya esta en uso" << endl;
  43.         } else {
  44.             ofstream escribir_empleados( "empleados.txt", ios::binary | ios::app );
  45.            
  46.             strcpy( usuario, comprobar_usuario );
  47.             cout << "Contraseña: "; cin >> contrasena;
  48.            
  49.             escribir_empleados.write( (char *) &e, sizeof( e ) );
  50.             escribir_empleados.close();
  51.         }
  52.     }
  53. }
  54.  
  55. void Empleado::iniciar_sesion( char comprobar_usuario[ 22 ], char comprobar_contrasena[ 22 ] ) {
  56.     int bandera = 0, opcion;
  57.    
  58.     ifstream leer_empleados( "empleados.txt", ios::in );
  59.    
  60.     if( leer_empleados.fail() ) {
  61.         cout << "\nError al leer el archivo empleados.txt" << endl;
  62.     } else {
  63.         while( !leer_empleados.eof() ) {
  64.             leer_empleados.read( (char*)&e, sizeof( e ) );
  65.            
  66.             if(leer_empleados.eof()) {
  67.                 break;
  68.             }
  69.            
  70.             if( strcmp( usuario, comprobar_usuario ) == 0 ) {
  71.                 if( strcmp( contrasena, comprobar_contrasena ) == 0 ) {
  72.                     //CAMBIAR VALOR DEL RETURN A 1
  73.  
  74.                 }
  75.             }
  76.         }
  77.         leer_empleados.close();
  78.     }
  79. }
  80.  
  81.  
  82. main() {
  83.     char comprobar_usuario[ 22 ], comprobar_contrasena[ 22 ];
  84.    
  85.     cout << "NOMBRE DE USUARIO: "; cin >> comprobar_usuario;
  86.     cout << "CONTRASEÑA: "; cin >> comprobar_contrasena;
  87.    
  88.     e.iniciar_sesion( comprobar_usuario, comprobar_contrasena );
  89.  
  90.  
  91.     //Si el valor de return es 1 miestra opciones
  92.     if( e.estado() == 1 ) {
  93.         cout << "\nSe ha iniciado sesion correctamente" << endl;
  94.                 cout << "\nOpcion 1" << endl;
  95.                 cout << "Opcion 2" << endl;
  96.  
  97.     } else {
  98.         cout << "\nError al iniciar sesion" << endl;
  99.     }
  100.    
  101.     return 0;
  102. }