!! Ayuda ¡¡ Programa en C

Iniciado por NeedToKill, 16 Julio 2010, 23:43 PM

0 Miembros y 1 Visitante están viendo este tema.

NeedToKill

Bueno como el Tema lo dice hago este post para pedir ayuda con un programa que tengo que hacer para la U. este es mi primer semestre de Informatica y x eso no es mucho lo que se.

El programa que tiene bastante complicado, Tiene que simular una cuenta de ahorro.

///////Cuenta De Ahorro//////

         1. Activar Cuenta.
         2. Girar Dinero.
         3. Depositar Dinero.
         4. Consulta De Saldo.
         5. Salir.

verificando lo siguiente:

El Numero de giros realizados debe comenzar en 0

El saldo debe comenzar en 0.

Solo se permiten 6 giros.

para depositar dinero se exige como monto minimo $5.000

No se puede girar más dinero de que se cuenta.

El monto minimo para girar es de $2.000 y el maximo de giro es de $200.000

Para activar la Cuenta se debe depositar inicialmente $10.000

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

Si se activa la cuenta por segunda vez, el saldo y los giros realizados deben ser inicializados en 0.


:-[

Littlehorse

NeedToKill, bienvenido/a al foro!. En esta sección no se hacen tareas, dale una leida a las reglas.

Postea lo que llevas hecho a ver si te podemos ayudar.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

NeedToKill

A dale disculpa no sabia eso (reglas)

En cuanto avance un poco mas posteo lo que llevo...

[L]ord [R]NA

Actualmente puedes postear lo que tienes.

capri_2010

Hola, yo igual tengo que hacer ese ejercicio y lo que llevo avanzado es esto...igual no lo e terminado y necesito que me ayuden a terminarlo porque nose como seguir con las funciones.
#include<stdio.h>
main(){
       int opcion,saldo=0,giro=0,deposito=0;
       do{
       printf("   ***CUENTA DE AHORRO***\n");
       printf("\n1. Activar Cuenta.\n");
       printf("2. Girar Dinero.\n");
       printf("3. Depositar Dinero.\n");
       printf("4. Consulta de Saldo.\n");
       printf("5. Salir.\n");
       printf("\ningrese una opcion: ");
       scanf("%d",&opcion);
       
       switch(opcion){
              case 1:
                   system("cls");
                   printf("\n                  *** ACTIVAR CUENTA ***\n");
                   printf("\n  * Estimado cliente le informamos que para activar su cuenta\n");
                   printf("           debe tener un saldo minimo de $10.000 *");
                   scanf("%d",&opcion);
                   if(saldo>=10000){
                            printf("Su cuenta se encuentra activada");
                            }
                   else{
                        printf("No es posible activar su cuenta, no dispone de saldo suficiente");
                        }                                 
                   scanf("%d",&saldo);
                   system("cls");
              case 2:
                   system("cls");
                   printf("\n      *** GIRAR DINERO ***\n");
                   printf("\nIngrese el monto que desea girar: ");
                   scanf("%d",&giro);
                   while(giro<=6){
                         if(giro>=2000 && giro<=200000){
                                printf("Ingrese monto a girar:");}
                         else{
                              printf("No es posible hacer la transaccion");
                              }
                   scanf("%d",&giro);
                   system("cls");
              break;
              case 3:
                   system("cls");
                   printf("\n              *** DEPOSITAR DINERO ***\n");
                   printf("\n   * Estimado cliente le recordamos que el monto minimo\n ");
                   printf("             para depositar es de $5.000 *\n");
                   printf("\nIngrese monto a depositar:");
                   scanf("%d",&deposito);
                   if(deposito>=5000){
                           saldo=saldo+deposito;           
                           printf("\nSu nuevo saldo es: %d\n",saldo);
                           }
                   else{
                        printf("\nEl monto ingresado es inferior a $5.000");
                        }
                   scanf("%d",saldo);
                                               
              case 4:
                   system("cls");
                   printf("\n  *** CONSULTA DE SALDO ***\n");
                   printf("\n  Su saldo es: %d",saldo);
                   scanf("%d",&saldo);
                   system("cls");
              break;                   
                                }
                                         
                   }
       }while(opcion!=5);
       system("cls");
       
       
       system("pause");
       }

nicolas_cof

capri_2010, bienvenid@!

Te recomiendo usar las etiquetas GeSHI o code para postear codigo fuente para que sea mas legible, utiliza el boton modificar

main()

Te invito a que pases por este post...

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

system("cls");

system("pause");

No es recomendable hacer llamadas al sistema para hacer una pausa en el programa, ademas sumandole que no es para nada portable. El limpiar consola tampoco es portable.

Salu10.

Horricreu

#6
A parte de lo que te dijeron, la función system() pertenece a la librería stdlib. Otra cosa, haces el switch() sin el default. Esto provoca que si por ejemplo pulso un número o carácter diferente caigo en un bucle infinito.

Saludos :P

nicolas_cof

#7
Cita de: Horricreu en 18 Julio 2010, 17:26 PMOtra cosa, haces el switch() sin el default. Esto provoca que si por ejemplo pulso un número o carácter diferente caigo en un bucle infinito.

Horricreu, el default: es opcional, no quiere decir que porque no este caigas en un bucle infinito. Simplemente si se ingresa un numero que no este en los labels del switch este no hace nada. Lo que si le estaria faltando es poner los break; en el case 1: y en el case 3:

Otro punto a tener en cuenta es usar menos llamadas al printf() ya que podes juntar muchas de las cadenas en uno solo cuando sean seguidas...

printf( "..."
        "..."
        "..."
        "..." );


Salu10.

Horricreu

#8
Cita de: [NicolaS] en 18 Julio 2010, 18:36 PM
Cita de: Horricreu en 18 Julio 2010, 17:26 PMOtra cosa, haces el switch() sin el default. Esto provoca que si por ejemplo pulso un número o carácter diferente caigo en un bucle infinito.

Horricreu, el default: es opcional, no quiere decir que porque no este caigas en un bucle infinito. Simplemente si se ingresa un numero que no este en los labels del switch este no hace nada. Lo que si le estaria faltando es poner los break; en el case 1: y en el case 3:

Otro punto a tener en cuenta es usar menos llamadas al printf() ya que podes juntar muchas de las cadenas en uno solo cuando sean seguidas...

printf( "..."
       "..."
       "..."
       "..." );


Salu10.

El default es opcional, pero en este programa yo lo incluiría para dar un mensaje de error. Y además, prueba de pulsar una letra, a ver que pasa ;) Aunque esto se arreglaría, haciendo que en vez que el input sea un int, que sea un char.

Saludos :P

nicolas_cof

Cita de: Horricreu en 18 Julio 2010, 18:45 PMEl default es opcional, pero en este programa yo lo incluiría para dar un mensaje de error.

Podria ser...

Cita de: Horricreu en 18 Julio 2010, 18:45 PMY además, prueba de pulsar una letra, a ver que pasa ;) Aunque esto se arreglaría, haciendo que en vez que el input sea un int, que sea un char.

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

Salu10.