學習程式設計簡單來說就是要把握幾個原則,
邏輯上要正確,接著要符合電腦做事的方法,
這學期在學習Java程式語言遇到了不少問題,
首先就是程式的邏輯上並沒有問題,
但電腦卻無法執行,
這其中發現了許多問題,
其中一個問題是字型上的問題,
直接從網路上複製下來的資料貼到Wordpad中,
可能會在編譯時會發生問題,
或者是在讀檔時發生問題,
其中一個解決方式就是把資料先存到記事本存檔,
接著就是資料型態上轉換,
資料轉換有時會無法直接轉換,
必須先行轉成其他形式,
再轉成要呈現的格式,
真的是從錯誤中學習JAVA。
2010年6月3日 星期四
2010年5月28日 星期五
99/5/28 Java-BMI值計算
import java.io.*;
import java.util.*;
public class fivete
{
public static void main(String args[])
{
String s1,s2,s3,bmis;
int i,num;
double h,w,bmi;
num = Integer.parseInt(args[0]);
try
{
FileReader ip=new FileReader("940304.SM");
BufferedReader bip=new BufferedReader(ip);
FileWriter opp=new FileWriter("940304w.SM");
BufferedWriter bopp=new BufferedWriter(opp);
for ( i = 1 ; i < num + 1; i++ )
{
s1=bip.readLine();
StringTokenizer cs =new StringTokenizer(s1,",");
s2=cs.nextToken();
s3=cs.nextToken();
h= Double.parseDouble(s2);
w= Double.parseDouble(s3);
bopp.write("身高:" + s2 +"CM" +" "+ "體重:" + s3 + "KG" + " " );
bmi=w/Math.pow(h/100,2);
bmis=Double.toString(bmi);
bopp.write("BMI:" + bmis + "\n");
if(bmi>25.0)
{
bopp.write("體重過重" );
}
else if(bmi<20.0)
{
bopp.write("體重過輕" );
}
else
{
bopp.write("正常範圍" );
}
bopp.write("\n");
bopp.flush();
}
bopp.close();
System.out.println("計算完成");
}
catch(Exception e)
{
System.out.println("Exception");
}
}
}
注意事項:
1.檔案的值先放入記事本再存入wordpad,避免因字型影響讀取。
2.範例:名稱.close();必須放在迴圈之外,避免迴圈發生錯誤。
3.args[0]為存取人數的變數,務必在執行時輸入。
4.同一行的值必須放入同樣多的變數才能將值全部讀取。
5.型態轉換:String to Double EX:w= Double.parseDouble(s3);
Double to String EX:bmis=Double.toString(bmi);
String to Integer EX:num = Integer.parseInt(args[0]);
6.同一行斷句取值方式:StringTokenizer cs =new StringTokenizer(s1,",");
s2=cs.nextToken();
7.要用StringTokenize,必須先宣告import java.util.*; 。
99/5/21 Java-迴文判斷
import java.io.*;
import java.lang.Long;
import java.util.StringTokenizer;
import java.math.BigInteger;
import java.util.*;
public class fiveto
{
public static void main(String args[])
{
String op ="";
try
{
FileReader ip=new FileReader("940301.SM");
BufferedReader bip=new BufferedReader(ip);
String s1=bip.readLine();
String s2="";
for (int i=s1.length();i>0;i--)
{
char ch =s1.charAt(i-1);
s2=s2+ch;
}
if (s1.equals(s2))
{
op=s1+" is a palindrome.";
}
else
{
op=s1+" is not a palindrome.";
}
FileWriter opp=new FileWriter("op.txt");
BufferedWriter bopp=new BufferedWriter(opp);
bopp.write(op);
bopp.flush();
bopp.close();
}
catch(Exception e)
{
System.out.println("Exception");
}
}
}
2010年5月13日 星期四
99/5/14 Java 長整數運算
import java.io.*;
import java.lang.Long;
import java.util.StringTokenizer;
import java.math.BigInteger;
import java.util.*;
class ffourteen
{
public static void main(String[] args)
{
String line;
long bi1,bi2,total;
try
{
FileReader inputjerry=new FileReader("input.txt");
BufferedReader binputjerry=new BufferedReader(inputjerry);
line=binputjerry.readLine();
StringTokenizer stline=new StringTokenizer(line, " ");
bi1=Long.parseLong(stline.nextToken());
System.out.println(bi1);
bi2=Long.parseLong(stline.nextToken());
System.out.println(bi2);
BigInteger bn1 = new BigInteger(stline.nextToken());
System.out.println(bn1);
BigInteger bn2 = new BigInteger(stline.nextToken());
System.out.println(bn2);
bn1=bn1.remainder(bn2);
System.out.println(bn1);
total =bi1+ bi2;
System.out.println(total);
FileWriter outputjerry=new FileWriter("outputtext.txt");
BufferedWriter boutputjerry=new BufferedWriter(outputjerry);
boutputjerry.write(String.valueOf(total));
boutputjerry.flush();
boutputjerry.close();
}
catch(Exception e)
{
System.out.println("Exception");
}
}
}
2010年5月7日 星期五
99/5/7 Java 檔案取值求和更改副檔名輸出檔案
import java.io.*;
import java.lang.Byte;
import java.util.StringTokenizer;
class HelloJava
{
public static void main(String[] args)
{
String InFile;
String OutFile;
String num;
int i;
double line;
double total = 0.0;
double avg ;
String end;
File mingfile = new File("mf.txt");
try
{
InFile=args[0];
System.out.println(InFile);
FileReader rFile = new FileReader(InFile);
BufferedReader brFile = new BufferedReader(rFile);
for( i = 1 ; i < 12 ; i++)
{
num = brFile.readLine();
System.out.println(num);
line = Double.parseDouble(num);
total = total + line;
}
avg = total / 11;
end = Double.toString(avg);
StringTokenizer tokens = new StringTokenizer( InFile, ".");
OutFile=tokens.nextToken()+ ".w" + tokens.nextToken();
System.out.println(OutFile);
File myfile=new File(OutFile);
FileWriter fos= new FileWriter(OutFile);
BufferedWriter bfos=new BufferedWriter(fos);
bfos.write(end);
bfos.flush();
bfos.close();
}
catch (Exception e)
{
System.out.println("Ming");
}
}
}
2010年4月30日 星期五
99/4/30 Java-型態轉換加總
import java.io.*;
import java.lang.Byte;
class Javaftirty
{
public static void main(String[] args)
{
int a,b,total;
System.out.println("Ming");
File mingfile = new File("mf.txt");
//Byte b = new Byte("1");
a=Integer.parseInt(args[0]);
b=Integer.parseInt(args[1]);
total=a+b;
try
{
FileOutputStream lym = new FileOutputStream(mingfile);
mingfile.createNewFile();
PrintStream lop = new PrintStream(lym);
lop.print(a +"+" + b + "=" + total);
//lym.write(b);
/*BufferedOutputStream yml = new BufferedOutputStream(lym);
PrintStream ps = new PrintStream(yml);
ps.println("12345");
ps.close();
lym.close();
yml.close();*/
}
catch (Exception e)
{
System.out.println("Ming");
}
}
}
資料來源
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html
http://www.tcrc.edu.tw/question/30.pdf
http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileOutputStream.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedOutputStream.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintStream.html
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Byte.html
2010年4月16日 星期五
99/04/16 Java 期中考
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TriangleMethod extends JFrame
implements ActionListener {
private JButton button;
private JPanel panel;
public static int b1,b2;
public static void main(String[] args) {
int a1,a2;
a1 = Integer.parseInt(args[0]);
a2 = Integer.parseInt(args[1]);
b1 = a1;
b2 = a2;
TriangleMethod frame = new TriangleMethod();
frame.setSize(350, 400);
frame.createGUI();
frame.setVisible(true);
}
private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout() );
panel = new JPanel();
panel.setPreferredSize(new Dimension(300, 300));
panel.setBackground(Color.white);
window.add(panel);
button = new JButton("Press me");
window.add(button);
button.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
Graphics paper = panel.getGraphics();
drawLogo(paper, 10, 20);
//drawLogo(paper, 100, 100);
//drawTriangle(paper, 100, 10, 40, 40);
drawTriangle(paper, 10, 100, 20, 60);
}
private void drawLogo(Graphics drawingArea,
int xPos, int yPos) {
drawingArea.drawRect(xPos, yPos, b1, b2);//drawingArea.drawRect(xPos, yPos, 40, 40);
//drawingArea.drawRect(xPos, yPos, 20, 20);
}
private void drawTriangle(Graphics drawingArea,
int xPlace,
int yPlace,
int width,
int height) {
drawingArea.drawLine(xPlace, yPlace,
xPlace, yPlace + b1);
drawingArea.drawLine(xPlace, yPlace + b1,
xPlace + b2, yPlace + b1);
drawingArea.drawLine(xPlace, yPlace,
xPlace + b2, yPlace + b1);}
}
注意事項
1.首先必須先把值改程可以用輸入的。
2.最直接的方法就是放外層共用。
3.並不是直接將值傳入,改程讓程式自動取值。
2010年4月8日 星期四
Java 矩形與三角形面積99/04/09
class Javafn
{
public static void main(String[] args)
{
int a,z,u;
String a1,a2;
a1=args[0];
a2=args[1];
Triangle ming1 = new Triangle();
u = ming1.Triangle(a1,a2);
System.out.println(u);
Rectangle ming2 = new Rectangle();
z = ming2.Rectangle (a1,a2);
System.out.println(z);
}
}
class Triangle
{
Triangle()
{
System.out.println("Triangle Area");
}
static int Triangle(String a1,String a2)
{
int a,b,c;
a=Integer.parseInt(a1);
b=Integer.parseInt(a2);
c=a*b/2;
return c;
}
}
class Rectangle
{
Rectangle()
{
System.out.println("Rectangle Area");
}
static int Rectangle(String a1,String a2)
{
int a,b,c;
a=Integer.parseInt(a1);
b=Integer.parseInt(a2);
c=a*b;
return c;
}
}
2010年4月1日 星期四
Java 99/04/02
class Javaft
{
public static void main(String[] args)
{
int a,z,u,b1,b2;
String a1,a2;
b1 = 3;
b2 = 4;
a1=args[0];
a2=args[1];
u=sum(b1,b2);
z = add (a1,a2);
System.out.println(u);
}
static int add(String a1,String a2)
{
int x,y,z;
x = Integer.parseInt(a1);
y = Integer.parseInt(a2);
z = x + y;
System.out.println(z);
return z;
}
static int sum(int b1,int b2)
{
int c;
c = b1 + b2;
return c;
}
}
注意事項:
1.不要重複宣告。
2.需要運算的變數一定要給值。
3.編譯後有讀值的程式一定要給值。
4.變數資料傳送注意型態的問題。
2010年3月26日 星期五
Java 99/03/26
Java string 轉 int
String → int
int i = Integer.parseInt(str);
或 int i = Integer.parseInt(str[, int radix])
int i = Integer.valueOf(str).intValue();
int → String
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
註:Dobule、Float及Long的轉換方式相同。
參考網址:http://jhkao.blogspot.com/2008/10/javaint-string.html
注意事項:
1.執行時需輸入兩個值存入args[0],args[1]。
String → int
int i = Integer.parseInt(str);
或 int i = Integer.parseInt(str[, int radix])
int i = Integer.valueOf(str).intValue();
int → String
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
註:Dobule、Float及Long的轉換方式相同。
參考網址:http://jhkao.blogspot.com/2008/10/javaint-string.html
注意事項:
1.執行時需輸入兩個值存入args[0],args[1]。
2010年3月18日 星期四
Java-sin&cos99/03/19
class Javauser
{
public static void main(String[] auto)
{
int x,y,i;
double pi,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,k;
pi=Math.PI;
x=1;
y=2;
a1=Math.cos(0);
a2=Math.cos(pi/4);
a3=Math.cos(pi/2);
a4=Math.cos(3*pi/2);
a5=Math.cos(2*pi);
b1=Math.sin(0);
b2=Math.sin(pi/4);
b3=Math.sin(pi/2);
b4=Math.sin(3*pi/2);
b5=Math.sin(2*pi);
System.out.println("Hello World!");
System.out.println("x+y="+(x+y));
System.out.println("PI="+pi);
System.out.println("cos(0)="+a1);
System.out.println("cos(pi/4)="+a2);
System.out.println("cos(pi/2)="+a3);
System.out.println("cos(3pi/2)="+a4);
System.out.println("cos(2pi)="+a5);
System.out.println("sin(0)="+b1);
System.out.println("sin(pi/4)="+b2);
System.out.println("sin(pi/2)="+b3);
System.out.println("sin(3pi/2)="+b4);
System.out.println("sin(2pi)="+b5);
}
}
本週學習使用eclipse編寫JAVA程式。
問題:安裝什麼軟體可以使用DOS編譯JAVA程式?該如何設定?
回答:安裝這套jdk,並且在環境變數的PATH中加入"jdk1.6.0_18"中,"JAVAC"檔案的路徑。
2010年3月12日 星期五
Java-聖誕樹99/03/12
class firstjava
{
public static void main(String[] args)
{
System.out.println("林郁銘");
System.out.println(" *");
System.out.println(" ***");
System.out.println(" *****");
System.out.println(" *******");
System.out.println(" *********");
System.out.println(" ***");
System.out.println(" ***");
System.out.println(" ***");
}
}
2010年2月25日 星期四
訂閱:
文章 (Atom)