elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16
71  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 21:30 pm
La Salucion es:

Código:
 char opcion[2];//Variable que Guarda la opcion del menu
 

Las opciones siguen siendo 1,2,3,10, pero al ingresar una letra o uno distinto hace lo que quiera que es volver al menu... Gracias a todos =D
72  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:58 pm


No leiste lo que dije


Lo de usar un char y pasarlo a int?? lo probe pero tampoco salio bien
73  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:46 pm
Pero es la opcion mas rentble :S aqui el codigo resumido solo deje lo necesario

estructuras.h

Código:
#ifndef ESTRUCTURAS_H_INCLUDED
#define ESTRUCTURAS_H_INCLUDED

typedef struct datosClientes{ //Datos del nodo
   char RUT[10]; //Variable que contiene el rut
   char Nombre[15]; //Variable que contiene Nombre
   char Apellido[15]; ////Variable que contiene el Apellido
   int Telefono; //Variable que contiene el telefono
   char direccionTipo[10]; //Variable que contiene si es pasaje,avenida o calle
   char direccionCalle[25]; //Variable que contiene la calle
   char direccionComuna[15]; //Variable que contiene la comuna
   char numeroCuenta[8]; //Variable que contiene el numero de la cuenta
   int Saldo; //Variable que contiene el saldo
   int Giro; //Variable que contiene el giro
   int Deposito; //Variable que contiene el deposito
} Datos; //Llamado estructura

typedef struct Nodo { //Creacion del nodo
   Datos Cliente;
   struct Nodo *sgte;
} Nodo;
#endif // ESTRUCTURAS_H_INCLUDED

menuPrincipal.c
Código:
#include <estructuras.h>
#include <stdlib.h>

int menu(Nodo *primero)//Creacion Del Menu
   {
        int opcion=0;//Variable que Guarda la opcion del menu
        system("cls");//Se borra la pantalla
        printf("\n\n\nIngrese El Numero De La Opcion Deseada :\n");//Se despliega el menu
        printf("\n\n1.- Ingresar Una Nueva Cuenta");
        printf("\n2.- Mostrar Cuentas Actuales");
        printf("\n3.- Eliminar Una Cuenta");
        printf("\n10.- Salir");
        printf("\n");
        scanf("%d",&opcion); //Se guarda la opcione eljida

        system("cls");//Se limpia la pantalla

        if(opcion == 1)//Si la opcion es 1 se llama a la funcion agregarCuenta
            {
                agregarCuenta(primero);
            }
        if(opcion == 2)//Si la opcion es 2 se llama a la funcion mostrarCuenta
             {
                mostrarCuenta(primero);
             }
        if(opcion == 3) //Si la opcion es 3 se llama a la funcion eliminarCuenta
             {
                eliminarCuentas(primero);
             }
        if(opcion == 10) //Si la opcion es 10 se cierra el programa
             {
                exit(1);
             }
    }

int  main() //Funcion Main
   {
    Nodo *primero = crearNodo();  //Se crea un nuevo nodo llamado primero
    primero= NULL; //Este nodo apuntara a la lista completa
    menu(primero); //Se pasa como parametro al Menu y se llama
    return 0;
   }

eliminar.c

Código:
#include <estructuras.h>
#include <stdlib.h>
#include <stdio.h>

void eliminarCuentas(Nodo *primero)//Funcion para eliminar una cuenta completamente
   {
     system("cls");
     int opcion;
     int encontrado=0; //Variable que nos servira para saber si encuentra o no coincidencia
     printf("\n\n\nIngrese El Numero De La Opcion Deseada :\n");//Menu para seleccionar parametro por el cual buscar la cuenta
     printf("\n\n1.- Eliminar Por RUT");
     printf("\n10.- Salir");
     printf("\n");
     scanf("%d",&opcion);//Lectura de la opcion elegida por el usuario
     system("cls");

     if(primero==NULL)//Si no existen cuentas se informa de aquello
               {
                 system("cls");
                 printf("\n\n\n\n\n\t\t\tNO HAY CUENTAS REGISTRADAS");
                 getch();
                 eliminarCuentas(primero);
               }

     Nodo *apuntado = crearNodo(); //Se crea un nodo para ir recorriendo la lista
     Nodo *datoBuscado = crearNodo(); //Se crea un nodo que contendra los datos buscados
     Nodo *anterior = crearNodo(); //Se crea un nodo para recorrer la lista un nodo mas atras

     if(opcion == 1) //Se inicia la opcion 1
        {
           printf("\n\n\t\t     ELIMINAR UNA CUENTA POR EL RUT DEL TITULAR");
           printf("\n\t\t\t------------------------------------");
           printf("\n\t\t\t------------------------------------\n\n");
           printf("INGRESE RUT DEL TITULAR DE LA CUENTA A ELIMINAR:"); //Se le pide al usuario que ingrese el RUT de la cuenta a eliminar
           scanf("%s",datoBuscado->Cliente.RUT);fflush(stdin);//Se guarda este valor en el auxiliar datoBuscado
           anterior=NULL; //A anterior le asignamos el valor NULL para ir un paso atras
           apuntado=primero;//A apuntado le asignamos el primer nodo de la lista

           while(apuntado!=NULL)//MIENTRAS apauntado sea distinto de NULL (Existen Datos)
                 {
                   if(strcmp(apuntado->Cliente.RUT,datoBuscado->Cliente.RUT)==0) //SI el dato de la cuenta apuntado es igual al ingresado por el usuario
                     {
                       if(anterior==NULL) //SI anterior es igual a nulo (si solo existe un cliente ingresado)
                         {
                           system("cls");
                           primero=apuntado->sgte;//El inicio de la lista sera el siguiente al antiguo primer nodo
                           printf("\n\n\n\n\n\n\n\t\t\t\tBORRANDO CLIENTE");
                           getch();
                           encontrado=1;//Se le asigna un 1 (se encontro coincidencia)
                           eliminarCuentas(primero); //se retorna al menu
                         }
                       else  //SI NO: Si el dato no esta en el primer nodoCuenta
                          {
                            system("cls");
                            anterior->sgte=apuntado->sgte; //El siguiente de anterior apuntara al siguiente de apuntado en caso de que el dato este en el medio
                            printf("\n\n\n\n\n\n\n\t\t\t\tBORRANDO CUENTA");
                            getch();
                            encontrado=1;//Se le asigna un 1 (se encontro coincidencia)
                            eliminarCuentas(primero); //se retorna al menu
                          }
                     }
                  anterior=apuntado;//Si el dato no esta en el primer Nodo la lista se hace avanzar
                  apuntado=apuntado->sgte; //anterior sera igual al primer Nodo y apuntado avanzara un Nodo
                }//cierra While

              if(encontrado == 0) //Si no se encontro una coincidencia
                {
                  system("cls");
                  printf("\n\n\n\n\n\n\n\t\tNO SE ENCONTRO EL RUT DEL TITULAR DE LA CUENTA A ELIMINAR");
                  getch();
                  encontrado=1;//Se le asigna un 1 (se encontro coincidencia)
                  eliminarCuentas(primero); //se retorna al menu
                }
           }//Cierra opcion 1

          if(opcion == 10) //SI opcion es igual a 10 el programa volvera al menu principal
            {
                menu(primero);
            }
   }

74  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:41 pm
el getch a mi me funciona solo con

#include <stdlib.h>
#include <stdio.h>

no se por que xD

lo que se me ocurrio es hacer mi menu con switch y con case y agregar un default
75  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:32 pm
El problema del codigo es que es demasiado no hara mucho spam? xD
como hago para ponerle barras al codigo para que esto no sea tan extenso?
76  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:25 pm
asi tengo el codigo

Código:
   
 if (opcion>3 || opcion<1 || opcion != 10)
        {
         rintf("\n Porfavor ingrese un valor valido (1-8), presione una tecla para salir:");
         getch();
         menu(primero);//primero es una lista enlazada no tiene importancia aca
        }

Al ingresar la letra sale este printf en una nueva ventana (ventana de c en blanco con ese mensaje), al apretar enter deberia entrar al menu, pero presiono enter muestra el menu en 1 segundo y vuelve a mostrar el mensaje.
77  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:23 pm
Si quieres hago el código entero con el else y demás, pero esperaba que lo hiciese el autor del post, yo sólo te dije que poniendo && no vas bien, porque estás diciendo que cuando ocurra que sea menor que 1 y mayor que tres y distinto de 10 salte la función, ya me dirás tú a mi qué número hay que sea A LA VEZ menor que 1 y mayor que 3, es por eso que en vez de && tienes que usar || (que es or), porque cuando ingreses un número que o bien sea menor que uno, o mayor que tres o distinto de 10 te salte eso,  y los números que cumplen eso son todos menos el 1 2 3 y el 10. Si quieres te busco documentación para que te aclares si con mi explicación no te vale Azn



Porfavor, lo puse con || al hacerlo como no funciono puse && xD pero el problema es el mismo, al poner una letra queda en un bucle infinito entre el menu y el printf, de verdad no lo entiendo por que al poner una letra y leeerlo como int lo pasa a un numero i ese numero no esta dentro de las condiciones
78  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:17 pm
es que mira, si es distinto de esos números por ejemplo entra el IF y si pongo en el if que retorne al menú que es otra función se saldrá del menu, en caso de que no entre al IF hará inmediatamente lo que esta bajo el IF entonces no es necesario poner un else
79  Programación / Programación C/C++ / Re: Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:12 pm
 |Demon|: Si pongo solo un if y que si se cumple se salga creo que no es necesario el     else

 KuraraGNU: con el || se vuelve a caer al ingresar una letra
80  Programación / Programación C/C++ / Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros en: 30 Diciembre 2011, 20:06 pm
Tengo un programa en C, y como todo programa tiene un menu, mi menu tiene la opcion 1,2,3 y 10 salir. Quiero que al ingresar un numero distintos de esos o una letra salga un mensaje avisando de ello y que el programa corra. Tengo este codigo

Código:
  
 if (opcion>3 && opcion<1 && opcion != 10)
    {
        printf("\n Porfavor ingrese un valor valido (1-3  o 10), presione una tecla para salir:");
         getch();
         menu();
        }

pero al ingresar letras se cae :/
Aparte solo debo usar librerias Standar de C
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines