老樣子九點到十二點
要參加的就回覆一下吧~
公告區
Work Harder!!!!
2009年4月30日 星期四
2009年4月29日 星期三
JAVA HW04
想法一:讓POOBoard、POODirectory及POOSLine都inherit POOItem
並在POOItem裡宣告三者
想法二:和想法一雷同,不過base class只有輸出名字的功能
想法三:不用extend,直接用陣列
首先
我們先在POODirectory中宣告
POOBoard[] Board = new POOBoard[MAX];
POODirectory[] Dir = new POODirectory[MAX];
我們先在POODirectory中宣告一個"二維的整數陣列"
int[][] A;
A = new int[MAX];
for(int i = 0 ; i<>
A[i] = new int[2];
這個陣列是1024*2的
陣列中的第一個值(A[i][0])代表"類型"
第二個值(A[i][1])代表"位置"
比如說
如果當"類型"的值為0時為splitline、1時為board、2時為directory
那有一二維陣列A[2][1024];
當A[0][0]=1 && A[0][1]=11 時
表示這個Directory的第一個(第零個)位置為一個board,而且是board[11]的內容。
並在POOItem裡宣告三者
public class POOItem {
public static final int BOARD = 1;
public static final int DIR = 2;
public static final int SLINE = 3;
public POOBoard Board;
public POODirectory Dir;
public POOSplitLine SLine;
int typeID;
}
//POOBoard的一部分
public class POOBoard extends POOItem {
private static final int MAXARTICLES = 1024;
public String Name;
private int nArticles;
private POOArticle[] Articles;
public POOBoard(String name){
this.Name = name;
super.Board = this; //<-這裡
super.typeID = POOItem.BOARD; //<-還有這裡
Articles = new POOArticle[MAXARTICLES];
nArticles = 0;
}
}想法二:和想法一雷同,不過base class只有輸出名字的功能
public class POOParent {
private String name;
public String getName(){return name;}
public void changeName(String name){this.name = name;}
}想法三:不用extend,直接用陣列
首先
我們先在POODirectory中宣告
POOBoard[] Board = new POOBoard[MAX];
POODirectory[] Dir = new POODirectory[MAX];
我們先在POODirectory中宣告一個"二維的整數陣列"
int[][] A;
A = new int[MAX];
for(int i = 0 ; i<>
A[i] = new int[2];
這個陣列是1024*2的
陣列中的第一個值(A[i][0])代表"類型"
第二個值(A[i][1])代表"位置"
比如說
如果當"類型"的值為0時為splitline、1時為board、2時為directory
那有一二維陣列A[2][1024];
當A[0][0]=1 && A[0][1]=11 時
表示這個Directory的第一個(第零個)位置為一個board,而且是board[11]的內容。
//簡單寫個範例
if(A[i][0]==0)
System.out.println("----------");
else if(A[i][0]==1)
Board[A[i][1]].show();
else if(A[i][0]==2)
Dir[A[i][1]].show();
2009年4月26日 星期日
ACM482\ACM484檢討-2
過了
(解決未初始化)
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?2nUWyE
(解決多了全形空白)
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?iW5i81
(大師範例)
/*No.484, Author: Anfranion */
http://src.wtgstudio.com/?X93re4
Anfranion大師講解:
sscanf() & strtok()法:
假設有一個複雜的輸入沒有跟你講長度,可以用sscanf()和strtok()搭配存取
char *ptr;
char input[1000];
double num[1000];
int N;
gets(input);
N = 0;
ptr = strtok(input, " ");
do
{
sscanf(ptr, "%lf", num[N]);
N++;
}while( ( ptr = strtok(NULL, " ") ) );
這樣input就會直接以double存在num[]了
/*
發問:
可是就482的狀況來看
用字串的方式存起來不是會方便些?
回答:
應該都可以
或者是不要存double改成char[]
回應:
嗯嗯
*/
(解決未初始化)
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?2nUWyE
(解決多了全形空白)
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?iW5i81
(大師範例)
/*No.484, Author: Anfranion */
http://src.wtgstudio.com/?X93re4
Anfranion大師講解:
sscanf() & strtok()法:
假設有一個複雜的輸入沒有跟你講長度,可以用sscanf()和strtok()搭配存取
char *ptr;
char input[1000];
double num[1000];
int N;
gets(input);
N = 0;
ptr = strtok(input, " ");
do
{
sscanf(ptr, "%lf", num[N]);
N++;
}while( ( ptr = strtok(NULL, " ") ) );
這樣input就會直接以double存在num[]了
/*
發問:
可是就482的狀況來看
用字串的方式存起來不是會方便些?
回答:
應該都可以
或者是不要存double改成char[]
回應:
嗯嗯
*/
ACM482\ACM484檢討
團練參考網址:
http://www.csie.ntnu.edu.tw/~u91029/Indexing.html
練習Indexing
題目ACM482 , ACM484
以下程式碼上傳皆RE,暫時找不出原因,有待查證
/*No.482, Author: JeromeWu */
http://src.wtgstudio.com/?j7I9Ac
/*No.482, Author: ApplerMan */
http://src.wtgstudio.com/?uBQngv
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?W0um0f
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?5e3F7V
另外ACM484解法參考網址
http://www.yalin.tw/acm/index.php?index=484 (作法為時間與空間的取捨)
探討ACM482題目:
1.儲存資料時必須使用字串,若用double處理格式化輸出出現問題
比如說 5.0 -2 2.00 -> 格式化 5.000 -2.000 2.000
2. linux下用gets會有warning,用fgets安全些,
使用gets的時候和scanf互用時會有問題,加個\n可以解決 ,
比如說
int N;
scanf("%d",&N);
char S[1024];
gets(S);
會有非預期的錯誤
解決方法如下
int N;
scanf("%d\n",&N);
char S[1024];
gets(S);
http://www.csie.ntnu.edu.tw/~u91029/Indexing.html
練習Indexing
題目ACM482 , ACM484
以下程式碼上傳皆RE,暫時找不出原因,有待查證
/*No.482, Author: JeromeWu */
http://src.wtgstudio.com/?j7I9Ac
/*No.482, Author: ApplerMan */
http://src.wtgstudio.com/?uBQngv
/*No.484, Author: JeromeWu */
http://src.wtgstudio.com/?W0um0f
/*No.484, Author: ApplerMan */
http://src.wtgstudio.com/?5e3F7V
另外ACM484解法參考網址
http://www.yalin.tw/acm/index.php?index=484 (作法為時間與空間的取捨)
探討ACM482題目:
1.儲存資料時必須使用字串,若用double處理格式化輸出出現問題
比如說 5.0 -2 2.00 -> 格式化 5.000 -2.000 2.000
2. linux下用gets會有warning,用fgets安全些,
使用gets的時候和scanf互用時會有問題,加個\n可以解決 ,
比如說
int N;
scanf("%d",&N);
char S[1024];
gets(S);
會有非預期的錯誤
解決方法如下
int N;
scanf("%d\n",&N);
char S[1024];
gets(S);
2009年4月19日 星期日
Vim學習資料整理
關於 vim 是什麼的『中文』說明:
http://sites.google.com/site/jeromewufiles/data/features.zh.txt
大家來學 vim:
http://info.sayya.org/~edt1023/vim/
連結失效的話可以載作者的pdf
http://sites.google.com/site/jeromewufiles/data/vim.pdf
Learning Vi/Vim editor:
http://sites.google.com/site/jeromewufiles/data/O%27Reilly%27s-LearningtheviEditor%2C6thEdition.pdf
我自己的.vimrc:
http://sites.google.com/site/jeromewufiles/data/.vimrc
----------------------------------------------------------------
其實長久以來
我一直在觀望說要學Vim(完整地)還是emacs(從頭)
今天查了不少資料
最後還是決定認真學Vim了
目標是Vim的達人!!
上面整理了不少資料
有興趣學的就看看吧
http://sites.google.com/site/jeromewufiles/data/features.zh.txt
大家來學 vim:
http://info.sayya.org/~edt1023/vim/
連結失效的話可以載作者的pdf
http://sites.google.com/site/jeromewufiles/data/vim.pdf
Learning Vi/Vim editor:
http://sites.google.com/site/jeromewufiles/data/O%27Reilly%27s-LearningtheviEditor%2C6thEdition.pdf
我自己的.vimrc:
http://sites.google.com/site/jeromewufiles/data/.vimrc
----------------------------------------------------------------
其實長久以來
我一直在觀望說要學Vim(完整地)還是emacs(從頭)
今天查了不少資料
最後還是決定認真學Vim了
目標是Vim的達人!!
上面整理了不少資料
有興趣學的就看看吧
2009年4月18日 星期六
2009年4月17日 星期五
UML - NetBean
算是很不錯的工具了
//重點是跨平臺XDDDD
下載點:
http://www.netbeans.org/downloads/index.html
//似乎在寫JAVA時也可以用
UML plugins 的介紹:
http://www.netbeans.org/features/uml/index.html
簡易安裝方法
選tools->plugins
接著選available plugins
在右上角的search打uml
會找到一個結果
打勾
之後選左下角的install就好了
簡單的展示及教學:
http://www.netbeans.org/kb/trails/uml.html
別人使用後的心得:
-----------------------------------------------------------------
用了幾天Netbeans UML,除了時不常的沒法生成代碼之外,其餘都還好。
寫點我的體會出來,也算做個總結
優點
1.類圖插入屬性屬性後可以自動產生getter和setter方法,刪除屬性也會自動把getter和setter方法刪除,很方便。
2.很好的代碼生成功能,如果修改了類圖之後重新生成類代碼,已經寫的代碼不會被錯誤的覆蓋,非常智能。
3.導入功能很不錯,不用把所有的類都放在一個uml 工程裏了。
4.生成報表功能很棒,可以直接生成javadoc,方便無比。
5.鍵盤操作支持的很好,幾乎和rose一樣好用。
優點就這麼些了,下面談談缺點
1.代碼生成功能動不動就不好使了,只有把用戶數據刪除才可以繼續使用(windows下的用戶數據在documents and setting/application data目錄下,linux的用戶數據在~/.Netbeans目錄下)
2.導入功能不支持循環導入,比如A工程導入了B工程,那麼B工程就不能再導入A工程了。
3.導入功能做的不夠人性化,折騰了半天我才知道原來是用拖拽來實現導入的,怎麼也沒個菜單項??!!
4.要是支持導入jdk的幾個包就好了,也許有這功能,但我沒找到罷了。
5.幫助文檔太簡單了,都是廢話,明顯是對付,網上的資料也少,只能靠著自己摸索。
6.重構功能太弱,像是圖例改名功能太弱了,模型名字倒是改了,工程目錄裏的xml文件為什麼不改呢?
7.圖例遷移功能太弱,從舊工程遷移到新工程的話,一些對象間的關系就丟失了,還得手工重建,我的建議是再這個功能完善之前,最好工程建好之後就不要再遷移了,否則很累人的。
8.報表功能應該提供RTF格式報表啊,如果客戶需要一份設計文檔,難道要把javadoc風格的文檔給客戶嗎?客戶還不得瘋掉。
9.保存的時候Netbeans容易死掉,我的建議是最好能做一點就存一點,這樣可以減小損失。
10.根據類圖生成java代碼的時候,注釋中的中文都成了Unicode字符。
------------------------------------------------------------------
在youtube上打「netbeans uml」可以找到不少教學影片
//重點是跨平臺XDDDD
下載點:
http://www.netbeans.org/downloads/index.html
//似乎在寫JAVA時也可以用
UML plugins 的介紹:
http://www.netbeans.org/features/uml/index.html
簡易安裝方法
選tools->plugins
接著選available plugins
在右上角的search打uml
會找到一個結果
打勾
之後選左下角的install就好了
簡單的展示及教學:
http://www.netbeans.org/kb/trails/uml.html
別人使用後的心得:
-----------------------------------------------------------------
用了幾天Netbeans UML,除了時不常的沒法生成代碼之外,其餘都還好。
寫點我的體會出來,也算做個總結
優點
1.類圖插入屬性屬性後可以自動產生getter和setter方法,刪除屬性也會自動把getter和setter方法刪除,很方便。
2.很好的代碼生成功能,如果修改了類圖之後重新生成類代碼,已經寫的代碼不會被錯誤的覆蓋,非常智能。
3.導入功能很不錯,不用把所有的類都放在一個uml 工程裏了。
4.生成報表功能很棒,可以直接生成javadoc,方便無比。
5.鍵盤操作支持的很好,幾乎和rose一樣好用。
優點就這麼些了,下面談談缺點
1.代碼生成功能動不動就不好使了,只有把用戶數據刪除才可以繼續使用(windows下的用戶數據在documents and setting/application data目錄下,linux的用戶數據在~/.Netbeans目錄下)
2.導入功能不支持循環導入,比如A工程導入了B工程,那麼B工程就不能再導入A工程了。
3.導入功能做的不夠人性化,折騰了半天我才知道原來是用拖拽來實現導入的,怎麼也沒個菜單項??!!
4.要是支持導入jdk的幾個包就好了,也許有這功能,但我沒找到罷了。
5.幫助文檔太簡單了,都是廢話,明顯是對付,網上的資料也少,只能靠著自己摸索。
6.重構功能太弱,像是圖例改名功能太弱了,模型名字倒是改了,工程目錄裏的xml文件為什麼不改呢?
7.圖例遷移功能太弱,從舊工程遷移到新工程的話,一些對象間的關系就丟失了,還得手工重建,我的建議是再這個功能完善之前,最好工程建好之後就不要再遷移了,否則很累人的。
8.報表功能應該提供RTF格式報表啊,如果客戶需要一份設計文檔,難道要把javadoc風格的文檔給客戶嗎?客戶還不得瘋掉。
9.保存的時候Netbeans容易死掉,我的建議是最好能做一點就存一點,這樣可以減小損失。
10.根據類圖生成java代碼的時候,注釋中的中文都成了Unicode字符。
------------------------------------------------------------------
在youtube上打「netbeans uml」可以找到不少教學影片
訂閱:
意見 (Atom)