2007年11月8日 星期四

第七題

import java.io.*;import java.util.*;import java.awt.geom.Point2D;/*此程式使用datain.txt輸入*/
class 147 {
public static void main (String args[]) {
String thisLine;
for (int i=0; i < args.length; i++) {
try {FileInputStream fin = new FileInputStream(args[i]);
try {DataInputStream myInput = new DataInputStream(fin);
try {while ((thisLine = myInput.readLine()) != null) {StringTokenizer st = new StringTokenizer(thisLine, " ,");double p1n, p1e, p2n, p2e, p3n, p3e, p4n, p4e, p5n, p5e, sum;
p1n = Double.parseDouble(st.nextToken());System.out.println("第一點北緯UTM:" + p1n);p1e = Double.parseDouble(st.nextToken());System.out.println("第一點東經UTM:" + p1e);p2n = Double.parseDouble(st.nextToken());System.out.println("第二點北緯UTM:" + p2n);p2e = Double.parseDouble(st.nextToken());System.out.println("第二點東經UTM:" + p2e);p3n = Double.parseDouble(st.nextToken());System.out.println("第三點北緯UTM:" + p3n);p3e = Double.parseDouble(st.nextToken());System.out.println("第三點東經UTM:" + p3e);p4n = Double.parseDouble(st.nextToken());System.out.println("第四點北緯UTM:" + p4n);p4e = Double.parseDouble(st.nextToken());System.out.println("第四點東經UTM:" + p4e);p5n = Double.parseDouble(st.nextToken());System.out.println("第五點北緯UTM:" + p5n);p5e = Double.parseDouble(st.nextToken());System.out.println("第五點東經UTM:" + p5e);
Point2D.Double p1 = new Point2D.Double(p1n, p1e);Point2D.Double p2 = new Point2D.Double(p2n, p2e);Point2D.Double p3 = new Point2D.Double(p3n, p3e);Point2D.Double p4 = new Point2D.Double(p4n, p4e);Point2D.Double p5 = new Point2D.Double(p5n, p5e);
System.out.println("一英尺=0.3048公尺");System.out.println("P1到P2的距離: " + p1.distance(p2) + "公尺");System.out.println("P1到P2的距離: " + p1.distance(p2)/0.3048 + "英尺");System.out.println("P2到P3的距離: " + p2.distance(p3) + "公尺");System.out.println("P2到P3的距離: " + p2.distance(p3)/0.3048 + "英尺");System.out.println("P3到P4的距離: " + p3.distance(p4) + "公尺");System.out.println("P3到P4的距離: " + p3.distance(p4)/0.3048 + "英尺");System.out.println("P4到P5的距離: " + p4.distance(p5) + "公尺");System.out.println("P4到P5的距離: " + p4.distance(p5)/0.3048 + "英尺");
sum = p1.distance(p2) + p2.distance(p3) + p3.distance(p4) + p4.distance(p5);System.out.println("五點距離總和: " + sum + "公尺");System.out.println("五點距離總和: " + sum/0.3048 + "英尺");
}
}catch (Exception e) {System.err.println("Error: " + e);}}catch (Exception e) {System.err.println("Error: " + e);}
}catch (Exception e) {System.err.println("failed to open file " + args[i]);System.err.println("Error: " + e);}}
}}

第六題

import java.io.*;import java.util.*;import java.awt.geom.Point2D;/*此程式使用datain.txt輸入*/
class ComputeDatain {
public static void main (String args[]) {
String thisLine;
for (int i=0; i < args.length; i++) {
try {FileInputStream fin = new FileInputStream(args[i]);
try {DataInputStream myInput = new DataInputStream(fin);
try {while ((thisLine = myInput.readLine()) != null) {StringTokenizer st = new StringTokenizer(thisLine, " ,");double p1n, p1e, p2n, p2e, p3n, p3e, p4n, p4e, p5n, p5e, sum;
p1n = Double.parseDouble(st.nextToken());System.out.println("第一點北緯UTM:" + p1n);p1e = Double.parseDouble(st.nextToken());System.out.println("第一點東經UTM:" + p1e);p2n = Double.parseDouble(st.nextToken());System.out.println("第二點北緯UTM:" + p2n);p2e = Double.parseDouble(st.nextToken());System.out.println("第二點東經UTM:" + p2e);p3n = Double.parseDouble(st.nextToken());System.out.println("第三點北緯UTM:" + p3n);p3e = Double.parseDouble(st.nextToken());System.out.println("第三點東經UTM:" + p3e);p4n = Double.parseDouble(st.nextToken());System.out.println("第四點北緯UTM:" + p4n);p4e = Double.parseDouble(st.nextToken());System.out.println("第四點東經UTM:" + p4e);p5n = Double.parseDouble(st.nextToken());System.out.println("第五點北緯UTM:" + p5n);p5e = Double.parseDouble(st.nextToken());System.out.println("第五點東經UTM:" + p5e);
Point2D.Double p1 = new Point2D.Double(p1n, p1e);Point2D.Double p2 = new Point2D.Double(p2n, p2e);Point2D.Double p3 = new Point2D.Double(p3n, p3e);Point2D.Double p4 = new Point2D.Double(p4n, p4e);Point2D.Double p5 = new Point2D.Double(p5n, p5e);
System.out.println("P1到P2的距離: " + p1.distance(p2) + "公尺");System.out.println("P2到P3的距離: " + p2.distance(p3) + "公尺");System.out.println("P3到P4的距離: " + p3.distance(p4) + "公尺");System.out.println("P4到P5的距離: " + p4.distance(p5) + "公尺");
sum = p1.distance(p2) + p2.distance(p3) + p3.distance(p4) + p4.distance(p5);System.out.println("五點距離總和: " + sum + "公尺");
}
}catch (Exception e) {System.err.println("Error: " + e);}}catch (Exception e) {System.err.println("Error: " + e);}
}catch (Exception e) {System.err.println("failed to open file " + args[i]);System.err.println("Error: " + e);}}
}}

第五題

import java.awt.geom.Point2D;
class ComputeDistance {
public static void main (String args[]) {double sum;Point2D.Double p1 = new Point2D.Double(13536304.17, 609783.5646);Point2D.Double p2 = new Point2D.Double(13536107.55, 609446.8165);Point2D.Double p3 = new Point2D.Double(13535596.08, 609193.0284);Point2D.Double p4 = new Point2D.Double(13535223.14, 608906.9057);Point2D.Double p5 = new Point2D.Double(13535425.79, 608524.2581);
System.out.println("P1到P2的距離: " + p1.distance(p2));System.out.println("P2到P3的距離: " + p2.distance(p3));System.out.println("P3到P4的距離: " + p3.distance(p4));System.out.println("P4到P5的距離: " + p4.distance(p5));
sum = p1.distance(p2) + p2.distance(p3) + p3.distance(p4) + p4.distance(p5);System.out.println("總距離為: " + sum);
}
}

第四題

import java.awt.geom.Point2D;
class ComputeDistance {
public static void main (String args[]) {double sum;Point2D.Double p1 = new Point2D.Double(13536304.17, 609783.5646);Point2D.Double p2 = new Point2D.Double(13536107.55, 609446.8165);Point2D.Double p3 = new Point2D.Double(13535596.08, 609193.0284);Point2D.Double p4 = new Point2D.Double(13535223.14, 608906.9057);Point2D.Double p5 = new Point2D.Double(13535425.79, 608524.2581);
System.out.println("P1到P2的距離: " + p1.distance(p2));System.out.println("P2到P3的距離: " + p2.distance(p3));System.out.println("P3到P4的距離: " + p3.distance(p4));System.out.println("P4到P5的距離: " + p4.distance(p5));
sum = p1.distance(p2) + p2.distance(p3) + p3.distance(p4) + p4.distance(p5);System.out.println("總距離為: " + sum);
}
}

第三題

import java.io.FileInputStream;import java.io.DataInputStream;import java.io.IOException;import java.io.PrintStream;import java.io.FileOutputStream;import java.io.IOException;/*此檔案使用indata.txt輸入*/class StringFileIO {public static void main (String args[]) {String thisLine;for (int i=0; i < args.length; i++) {try {FileInputStream fin = new FileInputStream(args[i]);FileOutputStream fout = new FileOutputStream("outdata.txt");try {DataInputStream myInput = new DataInputStream(fin);PrintStream myOutput = new PrintStream(fout);try {while ((thisLine = myInput.readLine()) != null) {System.out.println(thisLine);myOutput.println(thisLine);}}catch (Exception e) {System.err.println("Error: " + e);}}catch (Exception e) {System.err.println("Error: " + e);}}catch (Exception e) {System.err.println("failed to open file " + args[i]);System.err.println("Error: " + e);}}}}