Page 1

Universidad Politecnica salesiana ManUal del Proyecto de PrograMacion integrantes: •

Andrés Bohorquez

Andrea Quiñonez

Raysa Solano

Andrea Villalta

Profesor: ing. Joe llerena


Proyecto de Programación I Fecha de entrega:

primer día de clases (Viernes 29 de julio del 2011)

Estudiantes:

(máximo 4 integrantes, NO INDIVIDUAL)

Docente:

Ing. Joe Llerena I., Msig.

Requerimientos Una administradora de un estadio de la ciudad, solicita a los estudiantes de programación I de la UPS realizar programa que resuelva el siguiente problema: “Calcular el número de entradas vendidas, a qué localidad pertenecen y el monto de la taquilla que un recaudador o cajero ingresara” El cajero o recaudador de taquilla del estadio, digitará el tipo de localidad (1=general, 2=tribuna, 3=palco, 4= suite y 0=salir) Cada una con un respectivo precio: (General=$10.00, tribuna=$55.00, palco=$125.50, suite=$300.50) Si es mayor de edad paga completo, pero si es menor de edad (18 años) pagará la mitad. (1 = Adulto, 2 = Edad) El algoritmo tendrá el siguiente funcionamiento Paso 1. Bienvenido al SistemaUPS-taquilla Paso 2. Ingrese el tipo de localidad Paso 3. cajero: 2 Paso 4. Ingrese si es adulto o menor de edad Paso 5. cajero:1 Paso 6. Ingrese la cantidad de entradas Paso 7. cajero: 2 Paso 8. Gracias. Su pago es: 2 x $ 55.00 = $110.00 Y el algoritmo vuelve al paso 2 hasta que ingrese 0 Paso 9: ¿Desea imprimir un reporte? 1=si, 0= no


Paso 10:

cajero: 1 1 realiza el reporte, 0 va al paso 11 Se vendieron 200 general con un monto de 200 x $10.00 = $2000 Se vendieron 55 tribunas con un monto de 55 x $55.00 = $3025. Se vendieron 15 palcos con un monto de 15 x $125.50 =$1882.50 Se vendieron 7 suites con un monto de 7 x $ 300.50 = $1502.5 Asisten al estadio 277, 200 adultos y 77 menores de edad, espectadores con una taquilla $8410.00

Paso 11:

¿Desea volver a realizar el algoritmo? 1=si, 0=no

Paso 12:

cajero: 1 1 vuelve a hacer el algoritmo-paso 1. 0 finaliza el algoritmo paso 13

Paso 13:

Gracias por usar el algoritmo UPS-taquilla P1

El algoritmo debe hacer validación de los datos ingresados, mostrando un mensaje “Ingrese un número válido”. Puede ser en paso 3, paso 5, paso7, paso 10, paso 12. Considere que los precios de las entradas están fijados. Es decir no hay que ingresarlos Entregables: Usted, puede innovar respecto a los requerimientos mínimos solicitados. Se calificará innovación. • • •

Diagrama de flujoen raptor y codificación en Java, alineado el código. Manual digital con integrantes del grupo incluye:subido a http://issuu.com/ En CD: Manual digital, archivo en raptor.

IMPORTANTE:Cualquier indicio de copia de código, diseño o similitud respecto a otros, será sancionado con cero en la evaluación del proyecto. Buen trabajo. Ing. Joe Llerena I., Msig


código en Java package prueba; import java.io.*; import java.text.*; // importe la librería text para poder usar el DecimalFormat public class prueba { public static void main(String[] ar)throws IOException{ BufferedReader ka = new BufferedReader (new InputStreamReader (System.in)); // línea de código para entrada de datos por consola con la librería io DecimalFormat k=new DecimalFormat("$#.##"); // línea de código para formatear números con 2 decimales y un signo adelante int r; do{ //este do while es para validar la repetición del algoritmo... int m=0,ed=0,n=0,cant=0,cg=0,ct=0,cp=0,cs=0,cn=0,ca=0; // declaración de variables double ge=0,tri=0,pa=0,suite=0; // declaración de variables //Presenta Menú System.out.println("********************MENU********************"+"\n* Tenemos los siguientes tipos de entradas *"+"\n*\t1. General\t\t\t*"+"\n*\t2. Tribuna\t\t\t*"+"\n*\t3. Palco\t\t\t *"+"\n*\t4. Suite\t\t\t *"+"\n*\t0. Salir\t\t\t *"+"\n* Tenemos los siguientes tipos de edades: *"+"\n*\t1.Adulto\t\t\t *"+"\n*\t2.Niño\t\t\t *"+"\n********************************************"); do { // este do while controla la repetición del proceso, en caso que no deseemos imprimir el reporte repetimos el proceso hasta que se imprima el reporte do { // este do while controla el menú de la taquilla es decir si vamos a comprar una entrada o salir del algoritmo y si el usuario no ingresa correcto los datos vuelve a pedir que ingrese System.out.print("\tIngrese el tipo de entrada :"); /* try { Aquí el código que puede fallar } catch (Exception e)


{ Aquí el código para tratar el fallo } */ try{m=Integer.parseInt(ka.readLine());// controla los errores en caso de que la variable tenga errores como problemas al coincidir los tipos } catch (Exception e){ m=-1;// si ocurre algún error m va a valer -1 }if(m>4 || m<0){ //condiciona para dar un mensaje de error System.out.println ("ERROR ingrese un numero del 0-4"); } else if(m!=0){ // si el menú es diferente de cero do{ //do while que controla el ingreso de la edad es decir si el usuario ingresa un numero que no sea el solicitado vuelve a pedir que ingrese System.out.print("\tIngrese el tipo de edad : "); try{ed=Integer.parseInt(ka.readLine()); // controla los errores en caso de que la variable tenga errores como problemas al coincidir los tipos }catch(Exception e){ed=-1;// si ocurre algún error ed va a valer -1 } if (ed!=1 && ed!=2) System.out.println("ERROR ingrese un numero del 1-2"); //condiciona para dar un mensaje de error }while(ed!=1 && ed!=2); n=1;//n se le asigna uno para que recupere su valor original y no afecte los procesos de división que están mas adelantes do{//do while que controla el ingreso de la cantidad de entradas es decir si el usuario ingresa un numero que no sea el correcto (números negativos o caracteres) vuelve a pedir que ingreses System.out.print("\tIngrese la cantidad de entradas a comprar: "); try{ cant=Integer.parseInt(ka.readLine()); // controla los errores en caso de que la variable tenga errores como problemas al coincidir los tipos }catch(Exception e){ cant=-1; // si ocurre algún error cant va a valer -1 }if(cant<=0) System.out.println("ERROR ingrese un numero entero positivo"); //condiciona para dar un mensaje de error }while(cant<=0); if(ed==1 || ed==2){ // condiciona la edad para que el usuario solo pueda elegir dos opciones


if(ed==2){ n=2;/*di edad vale 2 (menor de edad) entonces n vale 2 para sacarle la mitad del precio al valor de las entradas*/ cn=cn+cant; /*contador de los menores de edad */ }switch(m){ // selecciona las posibles opciones del menĂş y las valida case 1: ge = ge+((10/n)*cant);/*acumulador de el valor de las entradas vendidas en esta localidad*/ cg=cg+cant; //contador de las entradas vendidas en esta localidad System.out.println("Gracias por su compra, Su pago es: " +cant+" x "+(10/n)+" = +k.format((10/n)*cant)); break; case 2: tri = tri+((55/n)*cant);/*acumulador de el valor de las entradas vendidas en esta localidad*/ct=ct+cant; //contador de las entradas vendidas en esta localidad System.out.println("Gracias por su compra, Su pago es: " +cant+" x "+(55/n)+" = "+k.format((55/n)*cant)); break; case 3: pa = pa+ (125.50/n);/*acumulador de el valor de las entradas vendidas en esta localidad*/cp=cp+cant; //contador de las entradas vendidas en esta localidad System.out.println("Gracias por su compra, Su pago es: " +cant+" x "+(125.5/n)+" = "+k.format(((125.5/n)*cant))); break; case 4: suite = suite+(300.5/n);/*acumulador de el valor de las entradas vendidas en esta localidad*/cs=cs+cant;//contador de las entradas vendidas en esta localidad System.out.println ("Gracias por su compra, Su pago es: " +cant+" x "+ (300.5/n)+" = "+k.format ((300.5/n)*cant)); break; }ca=ca+cant; //contador de los mayores de edad }} }while(m!=0);


do{//do while que controla el ingreso de la cantidad de entradas la respuesta del usuario es decir si el usuario ingresa un numero que no sea el correcto (números negativos o caracteres) vuelve a pedir que ingreses System.out.print("\n¿Desea imprimir un reporte? "+"\n1. Si"+"\n2. No"+"\nRespuesta : "); try{ r=Integer.parseInt(ka.readLine());// controla los errores en caso de que la variable tenga errores como problemas al coincidir los tipos }catch(Exception e){ r=-1; // si ocurre algún error r va a valer -1 } if (r!=1 && r!=2) System.out.println("ERROR ingrese un numero del 1-2"); //condiciona para dar un mensaje de error }while(r!=1&&r!=2); }while(r!=1); Presentar El reporte System.out.println("Se vendieron "+cg+" General "+k.format(ge)+"\nSe vendieron "+ct+" Tribuna "+k.format(tri)+"\nSe vendieron "+cp+" Palco "+k.format(pa)+"\nSe vendieron "+cs+" Suite "+k.format(suite)+"\nAsisten al estadio "+(cg+ct+cp+cs)+" personas,"+(ca-cn)+" adultos y "+cn+" menores de edad"+"\nEspectadores con una taquilla de: "+k.format((ge+tri+pa+suite))); do{//do while que controla el ingreso de la cantidad de entradas la respuesta del usuario es decir si el usuario ingresa un numero que no sea el correcto (números negativos o caracteres) vuelve a pedir que ingreses System.out.print("\n¿Desea volver a realizar el algoritmo? "+"\n0. No"+"\n1. Si"+"\nRespuesta: "); try{ r=Integer.parseInt(ka.readLine()); // controla los errores en caso de que la variable tenga errores como problemas al coincidir los tipos } catch (Exception e){ r=-1; // si ocurre algún error r va a valer -1 } if (r!=0 && r!=1) System.out.println("ERROR ingrese un numero del 0-1"); //condiciona para dar un mensaje de error }while(r!=0&&r!=1); }while(r!=0); System.out.println ("Gracias por usar nuestro programa...."); System.exit (0); // línea de código que sirva para salir del programa } }

Manual  

Proyecto de programacion