jueves, 14 de noviembre de 2013

Programación en C by expreso #15 Taquilla sin depurar

La refactorización es una labor importante dentro de la programación. Así sin profundizar mucho podríamos decir que la refactorización sería reorganizar un código, editar un código ya existente para mejorarlo, dotarle de mas funcionalidades, adaptarlo a lo que necesitamos etc. La refactorización también es una manera de introducirte en el mundo de la programación aprendiendo sobre programas ya construidos.

Pues bien, en este tutorial presentamos un programa que está, por así decirlo, a medias y que necesita mejoras y sobre el cual podemos hacer modificaciones, viendo así su funcionamiento de una manera más práctica. De esta forma aquí tenemos una taquilla que todavía no está terminada y que tiene muchas cosas que se le pueden añadir y mejorar. Debajo del vídeo está todo el código fuente en C debidamente comentando para que lo podáis entender mejor.



Código fuente:

//programa taquilla sencillo sin elaborar
#include <stdio.h>

int main() {
  const float PrecioBase = 6.0;
  int butacas = 0;
  int edad;
  float totalEuros = 0.0;
  float precio;
  char opcion = ' ';
  char tecla = ' ';

  while (opcion != 'F') {
    printf( "Opción (Ticket, Resumen o Fin) ? ");
    opcion = ' ';
    while ((opcion != 'T') && (opcion != 'R') && (opcion != 'F')) {
      scanf( "%c", &opcion );
    }

  if (opcion == 'T') {
    tecla = 'S';
    while (tecla == 'S') {
      printf( "Edad? " );
      scanf( "%d", &edad );
      butacas++;
      printf( ".-----------------------.\n" );
      printf( "|   TICKET DE ENTRADA   |\n" );
      if (edad < 6) {
        printf( "|Gratis ");
        precio = 0.0;
      } else if (edad < 18) {
        printf( "|Joven " );
        precio = PrecioBase / 2.0;
      } else if (edad < 65) {
        printf( "|Adulto ");
        precio = PrecioBase;
      } else {
        printf( "|Jubilado" );
        precio = PrecioBase / 4.0;
      }
      totalEuros = totalEuros + precio;
      printf( "        Precio: %4.2f\n", precio );
      printf( "'---------------------------'\n\n" );
      printf( "Otro Ticket(S/N)? " );
      tecla = ' ';
      while ((tecla != 'S') && (tecla != 'N')) {
        scanf( "%c", &tecla );
      }
    }
  }

if (opcion == 'R') {
  printf( "    RESUMEN DE VENTAS \n" );
  printf( "    ----------------- \n" );
  printf( "%d Butacas \n", butacas );
  printf( "Total Recaudado = %10.2f\n\n", totalEuros );
  }
  }
}

No hay comentarios:

Publicar un comentario