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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  !! Ayuda ¡¡ Programa en C
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: !! Ayuda ¡¡ Programa en C  (Leído 5,461 veces)
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: !! Ayuda ¡¡ Programa en C
« Respuesta #10 en: 18 Julio 2010, 19:12 pm »


El problema pasa porque scanf() ensucia el buffer, eso se arregla limpiandolo :P o usando alguna otra funcion que no lo ensucie...

Salu10.

Y también que el input sea un char.

Saludos :P


« Última modificación: 26 Agosto 2010, 00:34 am por Horricreu » En línea

NeedToKill

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: !! Ayuda ¡¡ Programa en C
« Respuesta #11 en: 19 Julio 2010, 05:31 am »

Bueno, me e demorado bastante con este programa pero en fin, esto es lo que tengo hasta el momento:


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


int main(){
           int opcion;
           float monto_inicial,deposito,retiro_dinero,giro=1,monto=0;
          
           do{
              printf("       :: BIENVENIDO AL BANCO ::\n");
              printf("\n         //////Cuenta De Ahorro//////\n");
              printf("\n");
              printf("\t       1-. Activar Cuenta.\n");
              printf("\t       2-. Girar Dinero.\n");
              printf("\t       3-. Depositar Dinero.\n");
              printf("\t       4-. Consulta de Saldo.\n");
              printf("\t       5-. Salir.\n");
              printf("\n\t           Ingrese Opcion: ");
              scanf("%d", &opcion);
          
              switch (opcion) {
                              case 1:
                                
                                   system("cls");
                                   printf("       El Monto Inicial Debe Ser Igual o Superorior a $10.000\n\n");
                                   printf("       Ingrese Monto: $");
                                   scanf("%f",&monto_inicial);
                                   printf("\n");
                                   if(monto_inicial >= 10000){
                                                              monto = monto_inicial;
                                                              printf("       Su Cuenta a Sido Activada Exitosamente.\n\n");
                                                              printf("       usted cuenta con $%.0f",monto);
                                                              }
                                   else{
                                        printf("       El monto Minimo Para Realizar Esta Operacion Es De $10.000\n");
                                        }
                                   getch();
                                   system("cls");
                                   break;
                                
                              case 2:
                                   system("cls");
                                   printf("EL MONTO MINIMO PARA GIRAR ES DE $2.000 Y EL MAXIMO ES DE $200.000\n\n");
                                   if(giro<=6){
                                              giro=giro+1;
                                              printf("ingrese el monto que quiere retirar: $");
                                              scanf("%f",&retiro_dinero);
                                              if(monto>=retiro_dinero){
                                              if((retiro_dinero>=2000) && (retiro_dinero<=200000)){
                                                                       monto=monto-retiro_dinero;
                                                                       printf("usted a retirado: $%.0f",retiro_dinero);
                                                                       }
                                                                          else{
                                                   printf("el monto ingresado no esta permitido");
                                                   }                    
                                                                      
                                              }
                                              else{
                                                   printf("el monto ingresado no esta permitido");
                                                   }  
                                              }
                                   else{
                                        printf("solo se permiten como maximo 6 giros");
                                        }
                                   getch();
                                   system("cls");
                                   break;
                                
                              case 3:
                                   system("cls");
                                   printf("\tEL DEPOSITO DEVE SER MAYOR A $5000\n\n");
                                   printf("ingrese monto que desea depositar: $");
                                   scanf("%f",&deposito);
                                   if(deposito>=5000){
                                   monto=monto + deposito;
                                   printf("el estado actual de su cuenta es de: $%.0f",monto);
                                   }
                                   else{
                                        printf("\tmonto insuficiente para hacer un deposito");
                                        }
                                   getch();
                                   system("cls");
                                   break;
                              case 4:
                                   system("cls");
                                   printf("usted cuenta con: $%.0f",monto);
                                   getch();
                                   system("cls");
                                   break;
                                  
                              case 5:
                                   break;
                                        
                              default:
                                      printf("       Opcion Invalida");
                                      getch();
                                      system("cls");
                              }
              }while(opcion!=5);
              system("exit");
           }
                                
Esta casi listo solo me faltan dos puntos importantes que considerar, que son los siguientes:

1.- No se puede realizar las opciones 2,3 y 4 sin haber activado una cuenta.

2.- Si se activa la cuenta por segunda vez, el saldo y los giros realizados deben ser inicializados a cero.

 Esto es lo que me a tenido toda la tarde complicado, si alguien me pudiera ayudar en esto lo antes posible por favor.


« Última modificación: 19 Julio 2010, 06:08 am por NeedToKill » En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: !! Ayuda ¡¡ Programa en C
« Respuesta #12 en: 19 Julio 2010, 05:46 am »

Código:
system("cls");

Código:
getch();

Código:
system("exit");

NeedToKill, seria bueno que revises varios de los comentarios anteriores que se hicieron en este post...

Esta casi listo solo me faltan dos puntos importantes que considerar, que son los siguientes:

1.- No se puede realizar las opciones 2,3 y 4 sin haber activado una cuenta.

2.- Si se activa la cuenta por segunda vez, el saldo y los giros realizados deben ser inicializados a cero.

Podrias usar una variable donde llevas el estado de la activacion de cuenta

Código:
int cuentaActivada = 0; // inicializacion 0 (false)

Una vez activada le asignas el valor de 1 (true)

Con respecto a las opciones 2, 3 y 4 podrias hacer un if donde se compruebe que este activada

Código:
if ( cuentaActivada == 1 )
{
    ...
}

Obviamente que esto lo tendrias que hacer dentro de los labels del switch

Un poco rustica la idea pero valedera ;)

Salu10.
En línea

NeedToKill

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: !! Ayuda ¡¡ Programa en C
« Respuesta #13 en: 19 Julio 2010, 06:07 am »

Código:
system("cls");

Código:
getch();

Código:
system("exit");

NeedToKill, seria bueno que revises varios de los comentarios anteriores que se hicieron en este post...

Esta casi listo solo me faltan dos puntos importantes que considerar, que son los siguientes:

1.- No se puede realizar las opciones 2,3 y 4 sin haber activado una cuenta.

2.- Si se activa la cuenta por segunda vez, el saldo y los giros realizados deben ser inicializados a cero.

Podrias usar una variable donde llevas el estado de la activacion de cuenta

Código:
int cuentaActivada = 0; // inicializacion 0 (false)

Una vez activada le asignas el valor de 1 (true)

Con respecto a las opciones 2, 3 y 4 podrias hacer un if donde se compruebe que este activada

Código:
if ( cuentaActivada == 1 )
{
    ...
}

Obviamente que esto lo tendrias que hacer dentro de los labels del switch

Un poco rustica la idea pero valedera ;)

Salu10.

Dale men gracias, me sirvio bastante tu aporte, pero...
¿Como hago eso de que si la cuenta se activa por segunda vez se inicializen el SALDO y LOS GIROS?
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: !! Ayuda ¡¡ Programa en C
« Respuesta #14 en: 19 Julio 2010, 17:54 pm »

Hola NeedToKill , permiteme alguna observación , primero que nada t aconsejaría que agrupes el código en funciones por eje.

Código
  1. int activarCuenta();
  2. int girarDinero();
  3. int depositarDinero();
  4.  

segundo , mejor si posteas tu código entre etiquetas GeSHI
tercero , para darle claridad al código , es muy recomendable agrupar las variables en extructuras , en tu caso yo usaría mínimo estas dos estructuras.
Código
  1. typedef struct{
  2.    char *nombreCliente;
  3.    int edad;
  4.    char *dni;
  5.    char *direccio;
  6. }typeCliente;
  7.  
  8. typedef struct{
  9.    long saldo;
  10.    char *idCuenta;
  11.    typeCliente *cliente;
  12. }typeCuenta;
  13.  
de esa manera cuando quieras crear una cuenta haces
Código
  1.    typeCliente cliente = (typeCliente) malloc(sizeof(typeCliente));
  2.    typeCuenta cuenta = (typeCuenta) malloc(sizeof(typeCuenta));  
  3.  
  4.  

luego asociar a cada cliente con cada cuenta será más sencillo , eje.
Código
  1. int  crearCliente(typeCliente cliente){
  2.     //aqui inicializas los campos del cliente como el nombre , dire. etc
  3.   }
  4.  
  5. int crearCuenta(typeCuenta cuenta, typeCliente cliente){
  6.    //aqui creas la cuenta y la asocias al cliente dado
  7. }
  8.  

al final en el main solo tendrás que meter las llamadas a los procedimientos y listo

Código
  1. do{
  2.              printf("       :: BIENVENIDO AL BANCO ::\n");
  3.              printf("\n         //////Cuenta De Ahorro//////\n");
  4.              printf("\n");
  5.              printf("\t       1-. Activar Cuenta.\n");
  6.              printf("\t       2-. Girar Dinero.\n");
  7.              printf("\t       3-. Depositar Dinero.\n");
  8.              printf("\t       4-. Consulta de Saldo.\n");
  9.              printf("\t       5-. Salir.\n");
  10.              printf("\n\t           Ingrese Opcion: ");
  11.              scanf("%d", &opcion);
  12.  
  13.              switch (opcion) {
  14.                         case 1:
  15.                                    activarCuenta();
  16.                                    break;
  17.                         case 2:
  18.                                    girarDinero();
  19.                                    break;
  20.  
  21. etc........................
  22.  



En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines