import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; /** * Replace this JavaDoc comment for the purpose of this class */ public class Negocio2 { /** * Gets data from standard input */ private Scanner input = null; private Sucursal[] sucursales = null; /** * Start the execution of the solution * @param args Command line arguments */ public static void main(String args[]) { Negocio2 negocio2 = new Negocio2(); negocio2.run(); } /** * Run the solution. This method is called from main() */ public void run() { try { // Create object to read data from standard input this.input = new Scanner( new File("datos2.csv") ); } catch ( FileNotFoundException excepcion ) { //System.err.println( excepcion ); this.input = new Scanner( System.in ); } this.crearSucursales(); this.leerDatos(); this.imprimirEstadisticas(); // Close the standard input this.input.close(); } public void crearSucursales() { int cantidadSucursales = this.input.nextInt(); this.sucursales = new Sucursal[cantidadSucursales]; for ( int indice = 0; indice < this.sucursales.length; ++indice ) { this.sucursales[indice] = new Sucursal(); } this.input.nextLine(); } public void leerDatos() { // 1 28/06/2017 Carrillo 12490 this.input.useDelimiter("[\\s/]+"); while ( this.input.hasNextInt() ) { int idSucursal = this.input.nextInt(); this.sucursales[idSucursal - 1].leerDatos(this.input); } } public void imprimirEstadisticas() { // TIENDA BAJA ALTA // =============== =============== =============== // Carrillo 20,745.00 0.00 // Liberia 0.00 196,455.00 // Sardinal 0.00 159,454.25 System.out.println("TIENDA BAJA ALTA"); System.out.println("=============== =============== ==============="); for ( int indice = 0; indice < this.sucursales.length; ++indice ) { this.sucursales[indice].imprimirEstadisticas(); } } } class Sucursal { private String ubicacion = null; // Para calcular el promedio en temporada baja private double sumaBaja = 0.0; private long vecesBaja = 0; // Para calcular el promedio en temporada alta private double sumaAlta = 0.0; private long vecesAlta = 0; public Sucursal() { } public Sucursal(String ubicacion) { this.ubicacion = ubicacion; } public void leerDatos(Scanner input) { // 28/06/2017 Carrillo 12490 int dia = input.nextInt(); int mes = input.nextInt(); int anno = input.nextInt(); String ubicacion = input.next(); if ( this.ubicacion == null ) { this.ubicacion = ubicacion; } double cierreCaja = input.nextDouble(); this.agregarCierreCaja(mes, cierreCaja); } public void agregarCierreCaja(int mes, double cierreCaja) { if ( mes == 5 || mes == 6 || ( mes >= 8 && mes <= 11 ) ) { // un cierre de caja en temporada baja this.sumaBaja += cierreCaja; ++this.vecesBaja; } else { // un cierre de caja en temporada alta this.sumaAlta += cierreCaja; ++this.vecesAlta; } } public void imprimirEstadisticas() { // Carrillo 20,745.00 0.00 if ( this.ubicacion != null ) { System.out.printf("%-15s %,15.2f %,15.2f%n" , this.ubicacion, this.promedioBaja(), this.promedioAlta()); } } public double promedioBaja() { if ( vecesBaja == 0 ) return 0.0; else return this.sumaBaja / this.vecesBaja; } public double promedioAlta() { if ( vecesAlta == 0 ) return 0.0; else return this.sumaAlta / this.vecesAlta; } }