2006年07月21日

[資結]程式的堅持,作業一流程

作業一:解二多項式相加、減之問題的程式設計歷程

問題瞭解及分析 

1.當你看到這個程式設計題目,直接反應為何?
(A)太難了,不想做。
(B)不知如何進行,然後沈思,…。
(C)有一點難,想接受挑戰。
(D)跟以前做過題目相似,因此開始回憶過去經驗…。
(E)其他…。

(C)
大概知道如何著手,不過jar包裝部分不熟悉…還要找相關資料來看。
花多久時間: 15 (mins)

2.瞭解題目之功能需求及核心技術
(A)看題目即徹底瞭解。
(B)看題目,經分析後才瞭解。
(C)看題目且與其他同學、學長討論。
(D)沈思一段時間,大約多久?

(B)
一開始先想到GUI、檔案處理、字串處理;寫的過程中還用到排序跟搜尋。

3.分析細部功能
(A)分析所需模組、method
(B)分析語法、物件類別
(C)分析輸入輸出

我把檔案拆成
MainApp.java(main檔案)
TheFileReader.java(文字檔案讀取)
GUIFrame.java(GUI介面)
DataDealer.java(主要的資料處理)
五個檔案

4.收集相關程式片斷,查閱語法(由先前設計過的程式網站、書藉光碟、或直接求救他人…。)

GUI和文字檔案存取部分有去找之前的書本參考。


設計演算

5.已瞭解問題後,如何進行多項式運算?
(A)如何處理輸入資料(如讀檔)
(B)如何剖析資料
(C)如何儲存資料,以利於運算?
(D)如何運算?
(E)如何顯示結果? 說明如何以程式進行多項式運算之詳細方法

檔案讀入時我以兩個字串的形式來存放多項式一和二。
剖析時先建立一個polynomial的資料型態(DataDealer.java)存放多項式每一單獨”項”的係數跟次方數,再將字串中的數字兩兩一組以polynomial的格式存在nomialarray[]陣列中。為了區別多項式一跟二,我再他們之間插入個一個null的物件
□□□□□□□□■□□□□□□□□□
多項式一   null 多項式二
加減運算時我先宣告一個polynomial格式的空陣列,從第一組多項式開始將每一項(polynomial物件)依次放入,放入的同時並搜尋之前有沒有出現過相同的冪次項,如果有,就直接加(減)值,如果沒有就排到目前資料的最後一個。但是這樣的資料並不會照冪次高低排列,所以還要另外排序。

程式設計階段

6.撰寫程式時,會採取步驟及順序為何?
(A)設計重要(必要)的method或模組
(B)撰寫主程式
(C)輸入、出介面
(D)修改先前之程式片斷,做為本題目之用

(C)
先寫GUI介面、還有檔案讀取
(B)
再來開始寫主要的資料處理部份,中間(A)與(D)互相穿插

7.測試程式功能策略,
(A)全部寫完,才測試
(B)寫部份功能,立即測試
(C)其他

(B)
寫一些測一些,通常是以一個method為單位…

8.撰寫程式
(A)先將題目簡化再寫程式,或再依題目修改以符合作業需求
(B)直接依題目基本要求撰寫
(C)直接依「進階要求」方向撰寫
(D)其他

(C)
仔細想過後發現自己的想法正符合進階要求,就直接開始照進階要求寫了。

驗証

9.Debug過程採用何種策略
(A)詳細閱讀錯誤訊息,再修改程式
(B)先看少部份錯誤訊息,立即修改程式,再檢視其他錯誤訊息
(C)不看錯誤訊息,憑直覺修改可能的錯誤
(D)其他

(A)看行數跟錯誤名稱去找錯誤。

10. Debug過程,最常遇到的問題
(A)看不懂英文錯誤訊息
(B)看了英文錯誤訊息,仍不瞭解錯誤在何處
(C)Bug有連環作用,讓我不知從何下手 (C)
遇上一次很大量的連環Bug很頭大…

 11.功能驗証方法及順序
(A)用例子(自己條列之例子)
(B)用邊界或極端例子測試
(C)用作業所舉的例子測試
(D)請他人測試
(E)其他

(A)、(C)、(D)都有

12.當完成作業且繳交後,你會
(A)仍想繼續把程式修改得更好
(B)鬆了一口氣,不再理它
(C)覺得很有成就感
(D)回想撰寫過程,及檢討撰寫程式之優點和缺點,做為日後改進參考

(A)、(C)
通常會開始給程式加註解…下次要看的時候可以很快進入狀況。

省思階段

13.回想一下這個作業撰寫過程中,
(A)那些語法或method,你變得比較熟悉
(B)變數,物件或陣列運用技巧有何成長?
(C)整體程式之分析、規劃能力,有何成長?
(D)撰寫程式之信心是否提升?
(E)遭遇到最困難的部分為何?

對複雜的字串處理有比較熟練,也有藉機會練習到陣列的處理、排序跟搜尋。

14.還有那些感想?心得?

因為檔案規格中0次方的最後面沒有逗號,所以要另外寫對應的修正…還有就是之前寫的版本加減搜尋中有之前沒出現過的冪次項時,會出現0次項被後面的項數蓋掉的情形,也花了很多的時間修改程式…
第一次寫這麼大的程式,還蠻有成就感的>w<


Posted by kevingao814 at 樂多Roodo! │11:05 │回應(0)引用(0)├學知識
樂多分類:日記/一般 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/1913330