Java - Ayuda para desarrollar un código para una Inmobiliaria

 
Vista:

Ayuda para desarrollar un código para una Inmobiliaria

Publicado por Maria Pérez (1 intervención) el 29/09/2017 17:04:26
Hola Buen día, soy estudiante y mi profesor me dio un problema para desarrollarlo el ejercicio es el siguiente:

Una inmobiliaria necesita por medio del valor del predio y de los metros cuadrados el estrato al que corresponde el predio, ademas debo mostrarle al usuario el valor del predio que ingreso, el valor del incremento con el porcentaje, el valor total, y el estrato

El ejercicio me da estos rangos:
Estrato 1:
Metros cuadrados de 1 a 30
Valor del predio de 0 a 4 millones
Porcentaje 0%

Estrato2:
Metros cuadrados de 23 a 55
Valor del predio de 4 a 6 millones
Porcentaje 10%

Estrato 3:
Metros cuadrados de 45 a 78
Valor del predio de 5.5 a 8 millones
Porcentaje 15%

Estrato 4:
Metros cuadrados de 58 a 95
Valor del predio de 7 a 9 millones
Porcentaje 25%

Estrato 5:
Metros cuadrados de 85 en adelante
Valor del predio de 9 millones en adelante
Porcentaje 35%

Mi código ya muestra el valor del predio, el incremento, el valor total y el estrato. Sin embargo mi profesor me pidió que si los valores ingresados sirven para mas de un estrato yo debo pedirle al usuario que eliga que estrato desea y es ahí donde necesito ayuda, nose como hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package inmobiliaria;
import java.util.Scanner;
 
public class Inmobiliaria {
 
    public static void main(String[] args) {
        double Vp,Inc,Suma;
        int Metro;
        int Estrato = 0;
        double Porcentaje1 = 1.00;
        double Porcentaje2 = 1.10;
        double Porcentaje3 = 1.15;
        double Porcentaje4 = 1.25;
        double Porcentaje5 = 1.35;
        Scanner Leer = new Scanner(System.in);
        System.out.println("Ingrese el valor del predio");
        Vp = Leer.nextDouble();
        System.out.println("Ingrese el tamaño del terreno");
        Metro = Leer.nextInt();
 
 
        //while(Estrato){
 
                if (Metro>=1 && Metro<=30 && Vp>=0 && Vp<=4){
                    Estrato=1;
                    Inc = Porcentaje1*Vp;
                    Suma= Vp+Inc;
                    System.out.println("El valor del predio es:"+Vp);
                    System.out.println("El incremento es:"+Inc);
                    System.out.println("El valor total es:"+Suma);
                    System.out.println("El estrato es:"+Estrato);
                }
 
                if (Metro>=23 && Metro<=55 && Vp>=4 && Vp<=6){
                    Estrato=2;
                    Inc = Porcentaje2*Vp;
                    Suma= Vp+Inc;
                    System.out.println("El valor del predio es:"+Vp);
                    System.out.println("El incremento es:"+Inc);
                    System.out.println("El valor total es:"+Suma);
                    System.out.println("El estrato es:"+Estrato);
                }
 
                if (Metro>=45 && Metro<=78 && Vp>=5.5 && Vp<=8){
                    Estrato=3;
                    Inc = Porcentaje3*Vp;
                    Suma= Vp+Inc;
                    System.out.println("El valor del predio es:"+Vp);
                    System.out.println("El incremento es:"+Inc);
                    System.out.println("El valor total es:"+Suma);
                    System.out.println("El estrato es:"+Estrato);
                }
 
                if (Metro>=58 && Metro<=95 && Vp>=7 && Vp<=9){
                    Estrato=4;
                    Inc = Porcentaje4*Vp;
                    Suma= Vp+Inc;
                    System.out.println("El valor del predio es:"+Vp);
                    System.out.println("El incremento es:"+Inc);
                    System.out.println("El valor total es:"+Suma);
                    System.out.println("El estrato es:"+Estrato);
                }
 
                if (Metro>=85 && Vp>=9){
                    Estrato=5;
                    Inc = Porcentaje5*Vp;
                    Suma= Vp+Inc;
                    System.out.println("El valor del predio es:"+Vp);
                    System.out.println("El incremento es:"+Inc);
                    System.out.println("El valor total es:"+Suma);
                    System.out.println("El estrato es:"+Estrato);
                }
        //}
 
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda para desarrollar un código para una Inmobiliaria

Publicado por Costero (148 intervenciones) el 30/09/2017 04:48:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.util.*;
 
 
public class Inmobiliaria {
 
    public static void main(String[] args) {
 
        List<Estrato> estratoList = new ArrayList<>(5);
        estratoList.add(new Estrato(1, 1, 30, 0, 4, 0));
        estratoList.add(new Estrato(2, 23, 55, 4, 6, 10));
        estratoList.add(new Estrato(3, 45, 78, 5.5, 8, 15));
        estratoList.add(new Estrato(4, 58, 95, 7, 9, 25));
        estratoList.add(new Estrato(5, 85, Integer.MAX_VALUE, 9, Double.MAX_VALUE, 35));
 
        Scanner Leer = new Scanner(System.in);
        System.out.println("Ingrese el valor del predio");
        double valueIn = Leer.nextDouble();
        System.out.println("Ingrese el tamaño del terreno");
        int sqMeterIn = Leer.nextInt();
 
        Map<Integer,Estrato> foundEstratoMap = new HashMap<>();
 
        for(Estrato estrato: estratoList) {
            if(estrato.areValuesInRange(sqMeterIn, valueIn)) {
                foundEstratoMap.put(estrato.id, estrato);
            }
        }
 
        if(foundEstratoMap.size() > 1) {
            selecioneUna(foundEstratoMap, Leer, valueIn);
        } else if(foundEstratoMap.size() == 1) {
            foundEstratoMap.get(0).printSummary(valueIn);
        } else {
            System.out.println("No estrado fue encontrado");
        }
    }
 
    private static void selecioneUna(Map<Integer,Estrato> foundEstratoMap,
                                     Scanner Leer,
                                     double valueIn) {
        System.out.printf("El numero de estrado encontrado fue: %d. Selecione una\n", foundEstratoMap.size());
        for (Map.Entry<Integer, Estrato> entry : foundEstratoMap.entrySet()) {
//                entry.getValue().printSummary(valueIn);
            System.out.printf("Estrato id: %d\n", entry.getKey());
        }
        while(true) {
            int id = Leer.nextInt();
            if(foundEstratoMap.containsKey(id)) {
                foundEstratoMap.get(id).printSummary(valueIn);
                break;
            } else {
                System.out.println("Selecion incorrecta. Opciones son: " + foundEstratoMap.keySet());
            }
        }
    }
 
    private static class Estrato {
        final int id, sqMeterLow, sqMeterHigh;
        final double valueLow, valueHigh, percentage;
 
        public Estrato(int id,
                       int sqMeterLow,
                       int sqlMeterHigh,
                       double valueLow,
                       double valueHigh,
                       double percentage) {
            this.id = id;
            this.sqMeterLow = sqMeterLow;
            this.sqMeterHigh = sqlMeterHigh;
            this.valueHigh = valueHigh;
            this.valueLow = valueLow;
            this.percentage = percentage;
        }
 
        public boolean areValuesInRange(int sqMeterIn, double valueIn) {
            boolean isSqMeterRange = sqMeterIn >= sqMeterLow && sqMeterIn <= sqMeterHigh;
            boolean isValueRange =  valueIn >= valueLow && valueIn <= valueHigh;
            return isSqMeterRange && isValueRange;
        }
 
        private double getInc(double valueIn) {
            return this.percentage * valueIn;
        }
 
        private double getSum(double valueIn) {
            return valueIn + getInc(valueIn);
        }
 
        public void printSummary(double valueIn) {
            System.out.println("El valor del predio es: " + valueIn);
            System.out.println("El incremento es: " + getInc(valueIn));
            System.out.println("El valor total es: " + getSum(valueIn));
            System.out.println("El estrato es: " + this.id);
            System.out.println();
        }
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar