2007年11月9日 星期五

961109期中考試檔案

第三題
/*import java.io.FileInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.io.FileOutputStream;
*/
import java.io.*;
import java.util.*;
class StringFileIO {

public static void main (String args[]) {
String thisLine;
//Loop across the arguments
for (int i=0; i < args.length; i++) {
//Open the file for reading try {
FileInputStream fin = new FileInputStream(args[i]);
FileOutputStream fout = new FileOutputStream("outdata.txt");
// now turn the FileInputStream into a DataInputStream
try {
//DataInputStream myInput = new DataInputStream(fin);
BufferedReader myInput =new BufferedReader(new InputStreamReader(fin));
PrintStream myOutput = new PrintStream(fout);

try {
while ((thisLine = myInput.readLine()) != null) {
System.out.println(thisLine);
myOutput.println(thisLine);
StringTokenizer st = new StringTokenizer(thisLine);
while (st.hasMoreTokens()){
System.out.println(st.nextToken());
}
} // while loop ends here
}
catch (Exception e) {
System.err.println("Error: " + e);
}
} // end try catch (Exception e) { System.err.println("Error: " + e); }
} // end try
catch (Exception e) {
System.err.println("failed to open file " + args[i]);
System.err.println("Error: " + e);
}
} // for end here
} // main ends here
}


第四題
import java.awt.geom.Point2D;
class ComputeDist {
public static void main (String args[]) {
Point2D.Double p1=new Point2D.Double(2779116.392 ,385217.552);
Point2D.Double p2=new Point2D.Double(2778674.629 ,381081.620);
Point2D.Double p3=new Point2D.Double(2780121.714 ,378903.459);
Point2D.Double p4=new Point2D.Double(2779282.398 ,372668.312);
Point2D.Double p5=new Point2D.Double(2782071.517 ,371974.519);

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));
//System.out.println("p5到p6的距離: "+ p1.distance(p2));
}
}

第五題
import java.io.*;
import java.awt.geom.Point2D;
public class Five {
public static void main(String[] args) throws IOException {
BufferedReader keyin;
keyin = new BufferedReader(new InputStreamReader(System.in));
double p1n, p1e, p2n, p2e, p3n, p3e, p4n, p4e, p5n, p5e, sum;
System.out.println("輸入第一點北緯UTM: ");
String n1 = keyin.readLine();
p1n = Double.parseDouble(n1);
System.out.println("輸入第一點東經UTM: ");
String e1 = keyin.readLine();p1e = Double.parseDouble(e1);
System.out.println("輸入第二點北緯UTM: ");
String n2 = keyin.readLine();
p2n = Double.parseDouble(n2);System.out.println("輸入第二點東經UTM: ");
String e2 = keyin.readLine();
p2e = Double.parseDouble(e2);
System.out.println("輸入第三點北緯UTM: ");
String n3 = keyin.readLine();
p3n = Double.parseDouble(n3);
System.out.println("輸入第三點東經UTM: ");
String e3 = keyin.readLine();
p3e = Double.parseDouble(e3);

Point2D.Double p1 = new Point2D.Double(p1n, p1e);
Point2D.Double p2 = new Point2D.Double(p2n, p2e);
Point2D.Double p3 = new Point2D.Double(p3n, p3e);
System.out.println("P1到P2的距離: " + p1.distance(p2));
System.out.println("P2到P3的距離: " + p2.distance(p3));
sum = p1.distance(p2) + p2.distance(p3) ;
System.out.println("3點距離總和: " + sum);
}
}

第六題
import java.io.*;
import java.util.*;
import java.awt.geom.Point2D;
/*此程式使用datain.txt輸入*/
class Five {
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.io.*;import java.util.*;import java.awt.geom.Point2D;/*此程式使用datain.txt輸入*/class ComputeFootageDatain {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);}}}}

沒有留言: