Punto.java
1 /**
2 * @author Sebastian89
3 * un ejemplo de un punto en el plano cartesiano
4 * hecho para consola, lo mas completo posible
5 */
6 import java.io.*;
7 public class Punto {
8 //Atributos
9 private float posx;
10 private float posy;
11 //constructoras
12 public Punto(){
13 posx = 0;
14 posy = 0;
15 }
16 public Punto(float x, float y){
17 posx = x;
18 posy = y;
19 }
20 //metodos
21 public void mover(float dx, float dy){
22 posx += dx;
23 posy += dy;
24 }
25 public void escalizar(float ex , float ey){
26 posx *= ex;
27 posy *= ey;
28 }
29 public void setx(float x){
30 posx = x;
31 }
32 public void sety(float y){
33 posy = y;
34 }
35 public float getx(){
36 return posx;
37 }
38 public float gety(){
39 return posy;
40 }
41 public float calDistancia(Punto p){
42 float dx = posx-p.posx;
43 float dy = posy-p.posy;
44 float d = (float) Math.abs(Math.sqrt((dx*dx)+(dy*dy)));
45 return d;
46 }
47 public static void main(String[]args) throws IOException{
48 //El objeto p de la clase Punto()
49 p = new Punto();
50 //Un lector que maneja los comandos q se insertan por teclado
51 BufferedReader l = new BufferedReader(new InputStreamReader(System.in));
52 //Inicia el menu
53 System.out.println("[C]crear un punto");
54 System.out.println("[B]borrar el punto");
55 System.out.println("[X]salir");
56 //termina el menu
57 // esta es la otra parte que hace que el lector funcione
58 //esto es lo que realmente hace que podamos captar los comandos del teclado
59 String menu = l.readLine();
60 if(menu.equals("x")){
61 System.exit(0);
62 }
63 if(menu.equals("b")){
64 p.posy = 0;
65 p.posx = 0;
66 }
67 if(menu.equals("c")){
68 float lc;
69 System.out.println("[M]Mover el punto");
70 System.out.println("[E]Escalizar el punto");
71 System.out.println("[SX]Cambiar la posición x en el punto");
72 System.out.println("[SY]Cambiar la posición Y en el punto");
73 System.out.println("[CD]Calcular la distancia un punto p1 y el punto");
74 System.out.println("[GX]Obtener la posición en X del punto");
75 System.out.println("[GY]Obtener la posición en Y del punto");
76 System.out.println("[X]Salir");
77 if(l.equals("m")){
78 System.out.println("Digite la posición X");
79 lc = Float.parseFloat(l.readLine());
80 p.mover(lc,p.posy);
81 System.out.println("Digite la posición Y");
82 lc = Float.parseFloat(l.readLine());
83 p.mover(lc, lc);
84 System.exit(0);
85 }
86 if(l.equals("e")){
87 System.out.println("Digite la escala para el punto");
88 lc = Float.parseFloat(l.readLine());
89 p.escalizar(lc, lc);
90 System.exit(0);
91 }
92 if(l.equals("sx")){
93 System.out.println("Digite la nueva posición de X en el punto");
94 lc = Float.parseFloat(l.readLine());
95 p.setx(lc);
96 System.out.println("La nueva posición en X es: " + p.posx);
97 System.exit(0);
98 }
99 if(l.equals("sy")){
100 System.out.println("Digite la nueva posición de Y en el punto");
101 lc = Float.parseFloat(l.readLine());
102 p.sety(lc);
103 System.out.println("La nueva posición en X es: " + p.posy);
104 System.exit(0);
105 }
106 if(l.equals("cd")){
107 System.out.println("[C]Calcular la distancia desde el origuen");
108 System.out.println("[O]Calcular la distancia desde otro punto");
109 Punto p1 = new Punto(0,0);
110 if(l.equals("c")){
111 p.calDistancia(p1);
112 System.exit(0);
113 }
114 if(l.equals("o")){
115 System.out.println("Digite la coordenada en Y");
116 lc = Float.parseFloat(l.readLine());
117 p1.posx = lc;
118 System.out.println("Digite la coordenada en Y");
119 lc = Float.parseFloat(l.readLine());
120 p1.posy = lc;
121 p.calDistancia(p1);
122 System.exit(0);
123 }
124 }
125 if(l.equals("gx")){
126 System.out.println("La posición en X del punto es :"+ p.posx);
127 System.exit(0);
128 }
129 if(l.equals("gy")){
130 System.out.println("La posición en X del punto es :"+ p.posy);
131 System.exit(0);
132 }
133 if(l.equals("X")){
134 System.exit(0);
135 }
136 }
137 }
138 }
Categorías: CategoryJava | CategoryProgramacion |
