Добавлена первое, второе и часть третьего задания ЛР №2

This commit is contained in:
Victor 2013-10-01 11:47:56 +03:00
parent 461a2b2dee
commit 3705ef1078
6 changed files with 190 additions and 4 deletions

View File

@ -1,5 +1,8 @@
package tse;
import tse.lr2.CompareArrays1D;
import tse.lr2.CompareArrays2D;
/**
* @author aNNiMON
*/
@ -17,10 +20,10 @@ public class LR_2 implements ILabRab {
public void execute(int index) {
switch(index) {
case 0:
CompareArrays1D.main();
break;
case 1:
CompareArrays2D.main();
break;
case 2:
@ -41,7 +44,7 @@ public class LR_2 implements ILabRab {
@Override
public String getDescription(int index) {
return Util.readDescription(1, index);
return Util.readDescription(2, index);
}
}

View File

@ -44,7 +44,7 @@ public class Main extends JFrame {
}
private final ILabRab[] labs = new ILabRab[] {
new LR_1()
new LR_1(), new LR_2()
};
private JButton executeButton;

18
src/tse/lr2/Circle.java Normal file
View File

@ -0,0 +1,18 @@
package tse.lr2;
/**
*
* @author aNNiMON
*/
public class Circle extends Ellipse {
public boolean isConsist() {
return false;
}
@Override
public String toString() {
return "This is circle!\n" + super.toString();
}
}

View File

@ -0,0 +1,44 @@
package tse.lr2;
import java.util.Arrays;
/**
*
* @author aNNiMON
*/
public class CompareArrays1D {
public static void main() {
String[] a = {"1","2","3"};
String[] b1 = a;
String[] b2 = a.clone();
String[] b3 = Arrays.copyOf(a, a.length);
String[] b4 = {"1","2","3"};
printRow("b=a\t\t\t", getValues(a, b1));
printRow("b=a.clone()\t\t", getValues(a, b2));
printRow("b=Arrays.copyOf(a)\t", getValues(a, b3));
printRow("b4 = {\"1\",\"2\",\"3\"}\t", getValues(a, b4));
}
private static void printRow(String col1, boolean[] values) {
System.out.println();
System.out.print(col1 + "\t");
for (boolean val : values) {
System.out.print(val + "\t");
}
}
private static boolean[] getValues(String[] a, String[] b) {
boolean[] values = new boolean[] {
b == a,
b.equals(a),
Arrays.equals(a, b),
Arrays.deepEquals(a, b),
b[0] == a[0]
};
return values;
}
}

View File

@ -0,0 +1,43 @@
package tse.lr2;
import java.util.Arrays;
/**
*
* @author aNNiMON
*/
public class CompareArrays2D {
public static void main() {
String[][] a = { {"1","2","3"}, {"4", "5", "6"}, {"7", "8", "9"}};
String[][] b1 = a;
String[][] b2 = a.clone();
String[][] b3 = Arrays.copyOf(a, a.length);
String[][] b4 = { {"1","2","3"}, {"4", "5", "6"}, {"7", "8", "9"}};
printRow("b=a\t\t\t", getValues(a, b1));
printRow("b=a.clone()\t\t", getValues(a, b2));
printRow("b=Arrays.copyOf(a)\t", getValues(a, b3));
printRow("b4 = {\"1\",\"2\",\"3\"}, {\"4\",\"5...", getValues(a, b4));
}
private static void printRow(String col1, boolean[] values) {
System.out.println();
System.out.print(col1 + "\t");
for (boolean val : values) {
System.out.print(val + "\t");
}
}
private static boolean[] getValues(String[][] a, String[][] b) {
boolean[] values = new boolean[] {
b == a,
b.equals(a),
Arrays.equals(a, b),
Arrays.deepEquals(a, b),
b[0] == a[0]
};
return values;
}
}

78
src/tse/lr2/Ellipse.java Normal file
View File

@ -0,0 +1,78 @@
package tse.lr2;
import java.awt.Point;
import java.util.Arrays;
/**
*
* @author aNNiMON
*/
public class Ellipse {
private static final int POINTS = 4;
protected final Point[] points;
public Ellipse() {
points = new Point[POINTS];
}
public Ellipse(Point p1, Point p2, Point p3, Point p4) {
points = new Point[] {
p1, p2, p3, p4
};
}
public Ellipse(Ellipse ellipse) {
points = Arrays.copyOf(ellipse.points, POINTS);
}
public Point getCenterPoint() {
int cx = (points[1].x - points[0].x) / 2 + points[0].x;
int cy = (points[2].y - points[0].y) / 2 + points[0].y;
Point center = new Point(cx, cy);
return center;
}
public double getSquare() {
Point center = getCenterPoint();
double hor = center.x - points[0].x;
double ver = center.y - points[0].y;
return Math.PI * hor * ver;
}
public double getDistanceOfCentres(Ellipse ellipse) {
return (getCenterPoint().distance(ellipse.getCenterPoint()));
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Ellipse) {
Ellipse ellipse = (Ellipse) obj;
return (ellipse.points).equals(obj);
}
return super.equals(obj);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < POINTS; i++) {
sb.append(points[i].toString()).append('\t');
}
sb.append("\nSquare: ").append(getSquare());
sb.append("\nCenter: ").append(getCenterPoint().toString());
return sb.toString();
}
}