Dear 各位同學
學期成績已經出來,
每位同學都加分非常多。
請大家好好努力,沒有通過的同學也請勿氣餒,
學好學懂才是最重要的。
祝福大家!
Score : [ View ]
Translate
2010年6月21日 星期一
2010年6月15日 星期二
中台 - 98-2 物件導向程式設計 - 期末考
注意事項:
範例 [ View ]
1. 輸入使用者名稱,直到使用者確認才通過,若不確認則重新輸入 (10%)
5. 影像讀取,請使用image進行影像顯示 (20%)
6. 請用for迴圈,畫出以下圖型(15%)
8. 請至以下網頁回答幾個問題 (10%)
●加分題: Chasing & Run Away 按鈕 (30%)
- 下列任一行為以零分計算
- 開啟通訊軟體 (如:MSN , Yahoo即時通)
- 開啟E-Mail
- 插入USB隨身碟
- 兩位同學以上程式碼相同
- 繳交時請注意:
- 將資料夾取名為你的 <學號><姓名>
- 確認當中含有所有程式內容(包含.exe)、Viso活動圖
- 將整個資料夾壓縮為 .zip檔
- 請利用以下網址上傳並確認是否成功
- 考試時間:1小時30分鐘
- 總分: 130 分
範例 [ View ]
1. 輸入使用者名稱,直到使用者確認才通過,若不確認則重新輸入 (10%)
- 使用procedure 撰寫輸入名稱副程式
- 使用 Inputbox
- 輸入後將名稱顯示於Edit中
2. 提供Edit與按鈕,讓使用者能結束程式或依10個字元的格式輸入出生日期,如 1982/06/02
3. 計算生日數字,算法請參考 http://hkluck.com/kn/a04-02.php (20%)
例 如 : 出 生 年 月 日 是 一 九 七 四 年 十 月 二 十 日 。生 命 秘 數 就 是 : 1974/10/23( 將 所 有 數 字 加 起 來 ) 1+9+7+4+1+0+2+3=27 2+7=9 9 就 是 您 的 生 命 秘 數 。 ( 如 果 是 1 0 , 2 0 那 就再相加為 1 , 2 )
- 請使用 function 撰寫計算生日數字副程式,並回傳生日數字 (Integer)
- 使用字串陣列操作
- 於Edit上顯示數字
4. 將生日數字所屬的意含依計算出來的號碼顯示在Memo上 (10%)
- 每個號碼顯示內容請參考 http://hkluck.com/kn/a04-02.php
- 僅取每個號碼的一小段即可,勿超過255字元(含空格)
- 如1號:這 是 個 熱 愛 生 命 , 喜 歡 開 創 新 奇 事 物 的 表 徵 。 數 字 1 代 表 的 正 面 特 質 : 領 袖 氣 質 , 創 意 , 勇 氣 , 能 量 , 慷 慨 大 方 , 勤 奮 , 獨 立 自 主 , 險 性 , 熱 情 和 直 覺 性 。 你 通 常 會 設 立 一 個 偉 大 的 計 畫
5. 影像讀取,請使用image進行影像顯示 (20%)
- 使用Image物件顯示圖片
- 於程式目錄中新建一 pics資料夾
- 使用GetCurrentDir() 取得現在路徑下pics中,讀取一張圖片並顯示於image上 (圖片請自行上網抓)
6. 請用for迴圈,畫出以下圖型(15%)
*7. 請新增一個主程式,並加入Panel與一個按紐並達成以下功能(15%)
* *
* * *
* * * *
* * *
**
*
- 當按下鍵盤上下左右時,按鈕會上下左右移動
- Key對應碼提示:
- 37 : 左
- 38 : 上
- 39 : 右
- 40 : 下
- 請解決按鈕會鎖定Focus的問題
8. 請至以下網頁回答幾個問題 (10%)
- 不用當場回答,最晚06/16(三)回答完畢即可
- http://ppt.cc/0YAK
●加分題: Chasing & Run Away 按鈕 (30%)
- 起始為Chasing,會追著滑鼠游標跑
- 當碰到滑鼠游標後,按鈕改為Run Away狀態
- 當按紐為Run Away時,會逃離滑鼠游標
- Run Away按一下便改為Chasing狀態
- 游標碰到按鈕的偵測可以游標位址是否存在按鈕面積內判斷
BP:請同學加油!
2010年6月8日 星期二
中台 - 98-2 物件導向程式設計 - 抓取螢幕的方法
使用Delphi做出如PrintScreen鍵的效果,
程式碼參考如下:
這樣就可以抓取了。
程式碼參考如下:
procedure getScreen();
var
DesktopBitmap : TBitmap;
begin
//存放螢幕圖 (bitmap)
DesktopBitmap := TBitmap.Create;
with DesktopBitmap do begin
Width := Screen.Width;
Height := Screen.Height;
end;
//呼叫windows函式,取出圖後放入bitmap
BitBlt(DesktopBitmap.Canvas.Handle,
0,0,Screen.Width,Screen.Height,
GetDC(GetDesktopWindow),0,0,SrcCopy);
//把Bitmap放到image中
Image1.Picture.Bitmap := DesktopBitmap;
end;
這樣就可以抓取了。
中台 - 98-2 物件導向程式設計 - 期末考與專題繳交
期末考與專題繳交
專題繳交
- 期末考時間為: 2010.06.15 AM 08:30 ~ AM 10:00
- 做專題的同學一樣要參與考試
專題繳交
- 專題繳交期限為:2010.06.16
- 專題繳交請將所有檔案壓縮成一個zip 或rar檔後,上傳至你的Google 文件並提供連結在本文章中。
- 請附上一個說明與操作手冊
- 請確保你的連結能在未登入下使用
BP:請同學加油!!!!!
2010年5月31日 星期一
中台 - 98-2 物件導向程式設計 05/31練習
鍵盤控制練習
影像物件輸入與本地位址截取
範例: [ Download ]
- Form 物件的OnKeyDown, OnKeyPress差異
- FormKeyDown的使用
- Key: Word
- 37 : 左
- 38 : 上
- 39 : 右
- 40 : 下
- 使用Additional / Speed Button便不會搶Focus
- 相關內容請見課本: 12-1 , 12-2
動態物件產生
- 以 array of TButton; 宣告按鈕陣列
- 以setLength()函式設定大小
- 以setLength()建立新的物件
- 事件指定方式:
- 在Type中TForm1下新增函式 Ex:
- 撰寫函式
- 使用函式
procedure btn_event(Sender: TObject);
procedure TForm1.btn_event(Sender: TObject); begin (sender as TButton).Visible := false; end;
btnarr[1].OnClick := btn_event;
影像物件輸入與本地位址截取
範例: [ Download ]
- 使用Image物件顯示圖片
- Image1.Picture.LoadFromFile( 檔案路徑 ) 載入圖片
- 若要使用jpg檔,記得在uses中加入 jpeg 函式庫
- 使用OpenPictureDialog1取的檔案路徑
- 使用GetCurrentDir() 取得現在路徑
- 使用Win3.1 \ FileListBox 物件取的目錄中的檔案清單
- 設定目錄路徑為 FileListBox1.Directory (注意不要重覆設定)
- FileListBox1.Items.Count 取得目錄中的檔案數
- FileListBox1.Items[ N] 取得目錄中第N個檔案名稱
- 相關內容請見課本: 10-8
2010年5月20日 星期四
中台 - 98-2 物件導向程式設計 - 個人專題書面
個人專題書面
內容如下:
內容如下:
- 小組成員
- 題目
- 製作動機
- 製作目的
- 程式操作方式
- 預計遭遇的挑戰
- 時程規劃
依目前時程進行每週進度設定,如: - 2010.05.25
- 加入起始動畫
- 加入鍵盤操作
- ......
- 2010.06.02
- 加入..........
- 加入..........
- 加入..........
- 2010.06.09
- 加入..........
- 加入..........
- 目前進度:
- 2010.05.25
- 加入動畫顯示效果
於程式開頭放上一動畫影片做為開場...............................
截取圖片如下:
(圖1)
- 加入鍵盤操作
針對物件移動,加入鍵磐控制語法...............
截取圖片如下:
(圖1)
- 2010.06.02
- XXOXOXOXX
.................................
截取圖片如下:
(圖1)
- XXOXOXOXX
.................................
截取圖片如下:
(圖1)
請依以上格式製作,
並將檔案上傳至Google Docs,並將共用聯結開啟後將連結貼在本文章中。
BP:各位同學加油啦。
2010年5月7日 星期五
UML繪圖工具軟體
Dear 各位同學
UML匯圖工具不一定要用收費的Visio
以下推薦幾個軟體:
網路版:
UML匯圖工具不一定要用收費的Visio
以下推薦幾個軟體:
網路版:
- Creately - http://creately.com/
- Lovelycharts - http://lovelycharts.com/
- 以上兩網站的介紹:研究生2.0: 兩款免費線上繪圖/畫流程圖的網站
單機板:
- Diagram Designer - http://meesoft.logicnet.dk/DiagramDesigner/
- Dia - http://projects.gnome.org/dia/
BP
2010年5月5日 星期三
注意交通安全與安全帽的重要性
請同學注意交通安全與安全帽的重要性,
給大家看老師課堂講的案例。
本文轉自東吳機研:
http://scumotor.com.tw:8080/gemmore/Protection&F1179SDJ&33
請大家要多注意自己的人身安全。
不要再讓老師聽到痛心的消息!!
謝謝
BP
給大家看老師課堂講的案例。
本文轉自東吳機研:
http://scumotor.com.tw:8080/gemmore/Protection&F1179SDJ&33
請大家要多注意自己的人身安全。
不要再讓老師聽到痛心的消息!!
謝謝
BP
2010年5月2日 星期日
2010年4月20日 星期二
2010年3月23日 星期二
中台 - 98-2 物件導向程式設計 03/23練習
身份證檢查程式
範例:[ Download ]
學習重點
- Procedure 設計
- Function 設計
- Array 陣列使用與操作
- 字串、字元、ASCII 碼轉換
身份證認證公式
驗證規則 ( Source:戶證事務所) :
身份證統一編號共計10 位,其中第一位為英文字母,後共有九個數字;
而最後一位數字為檢查碼( Check Digit ) ,表示如下表:
L1 D1 D2 D3 D4 D5 D6 D7 D8 D9
L1: 英文字母, 代表出生地的縣/市代號
A=10 台北市 J=18 新竹縣 S=26 高雄縣
B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣
D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 * W=32 金門縣
F=15 台北縣 * O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山
H=17 桃園縣 Q=24 嘉義縣 * Z=33 連江縣
* I=34 嘉義市 R=25 台南縣
D1: 性別,1=男, 2=女
D2~D9: 檢查碼
L1 對照表:
字母A B C D E F G H J K L M N
代號10 11 12 13 14 15 16 17 18 19 20 21 22
-------------------------------------------
字母P Q R S T U V X Y W Z I O
代號23 24 25 26 27 28 29 30 31 32 33 34 35
令其十位數為X1 ,個位數為X2 ;( 如A=10:X1=1 , X2=0 )
依其公式計算結果:
Y= X1 + 9*X2 + 8*D1 + 7*D2 + 6*D3 + 5*D4 + 4*D5 + 3*D6 + 2*D7 + D8 + D9
驗證
假如Y能被10 整除,則表示該身份證號碼為正確,否則為錯誤。
即如以10 為模數,檢查號碼為( 10 - Y- D9 ) / 10 的餘數,
如餘數為0 時,則檢查碼為0 。
即如以10 為模數,檢查號碼為( 10 - Y- D9 ) / 10 的餘數,
如餘數為0 時,則檢查碼為0 。
製作流程
○ 建立專案
○ 製作按鈕與Label、Edit元件
○ 建立全域一維陣列: NumberArray 大小為26 (NumberArray : array[0.. 25] of Integer ; )
○ 建立初使化程序 procedure initArray;
- 進行NumberArray 初始化,其值以查表方式建立
EX: NumberArray[0] := 10 ; //A
○ 建立輸入字串檢查函式驗證是否符合格式
function CheckErr( idnum : String): Boolean;
function CheckErr( idnum : String): Boolean;
- 判斷是否長度相同 (使用Length()找出字串長度)
- 判斷第一字母是否為大寫英文 (使用 if not( idnum[1] in ['A' .. 'Z']) then 判斷 )
- 判斷第二個字是否為1(男),2(女)
- 判段輸入是否為數字 (使用 if not(idnum[x] in ['0' .. '9']) then 判斷)
○ 建立身份證檢查函式
function CheckID( IDstr : String): boolean
- 取出第一個字母對應到NumberArray 的值 (以ASCII code 判斷做對照,byte(IDstr[1]) - byte('A');)
- 取出該字母於array的對應值
- 取出X1, X2值
- 套入公式 :Y= X1 + 9*X2 + 8*D1 + 7*D2 + 6*D3 + 5*D4 + 4*D5 + 3*D6 + 2*D7 + D8 + D9
- 若可被10除盡表該身份證為對
○ 輸出結果
BP: 這次的題目比較難,各位同學挑戰看看! 加油
2010年3月22日 星期一
中台 - 98-2 物件導向程式設計 03/29期末專題題目報告
Dear 同學
03/29 要請各組報告你們想做的程式題目,報告請使用Google Docs投影片,
內容如下:
03/29 要請各組報告你們想做的程式題目,報告請使用Google Docs投影片,
內容如下:
- 小組成員
- 題目
- 製作動機
- 製作目的
- 程式操作方式
- 預計遭遇的挑戰
03/29請由一位同學上台報告(報告人有加分),
投影片請使用Google Docs投影片製作,並將連結貼到本篇文章回覆中
各組題目請勿重覆,回覆範例如下:
小 組:No.0
成 員:學號, 姓名
學號, 姓名
學號, 姓名
題 目:XXXXX
投影片:
http://docs.google.com/present/edit?id=0AcoQevXXmTncZGQ4Mm56ZzdfMTE2ZDlzZzk0amo&hl=zh_TW
http://docs.google.com/present/edit?id=0AcoQevXXmTncZGQ4Mm56ZzdfMTE2ZDlzZzk0amo&hl=zh_TW
BP:各位同學加油吧!
2010年3月19日 星期五
中台 - 98-2 物件導向程式設計 03/22 作業繳交
Dear 同學
03/22 課堂要登記分數的作業有以下兩個:
03/22 課堂要登記分數的作業有以下兩個:
- 以BMI計算為範本的個人設計程式
- 實作Click Game
而以Click Game為範本的個人設計程式,
則在03/29 繳交。
請同學別忘了。
加油。
BP
2010年3月15日 星期一
中台 - 98-2 物件導向程式設計 03/15練習
Click Game
範例下載:[ Link ]
學習重點
製作流程與提示項目
範例下載:[ Link ]
學習重點
- Mouse Event
- 座標截取
- Timer 元件
- Random() 函式
製作流程與提示項目
○ 建立專案
○ 建立結束按鈕
○ 建立全域變數
- total_time : 整數 ,做為倒數計時用
- click_score : 整數 ,紀錄擊點分數
○ 建立 " 座標顯示 " Label與Edit 元件 ( Edit_xy )
○ 建立 " 分數 " Label與Edit 元件 (Edit_score)
○ 建立 " 倒數計時 " Label與Edit 元件 (Edit_time)
○ 建立 Panel 元件
○ 在Panel 內 OnMouseMove事件中撰寫程式,將滑鼠座標指定到Edit_xy
(使用 OnMouseMove事件中預設 X, Y 變數即可取得)
(使用 OnMouseMove事件中預設 X, Y 變數即可取得)
○ 在Panel內建立一Button物件(Button_clickme)並設定顯示標題
○ 設定Button_clickme 的click事件
- 擊點分數加一 並顯示於 Edit_score
- 設定一個亂數座標變數 RndLeft ,目的在產生按紐的Left值
- 設定一個亂數座標變數 RndTop ,目的在產生按紐的Top值
- 使用Random()函式設定RndLeft,並限制不得超出Panel大小
- 使用Random()函式設定RndTop,並限制不得超出Panel大小
- 將Button_clickme 位址設定為新的座標 ( Left, Top)
- 將Button_clickme 大小改變 ( Width , Height )
○ 增加一個Timer元件,時間單位設為1秒 (設定單位為毫秒),預設為不啟動
○ 撰寫Timer中的OnTimer事件
- 全域變數時間加1
- 將更新的時間設定到Edit_time上.
- 時間為 0 時( If then 判斷 )
- 停止遞減
- 將按紐功能關閉
- 將Timer功能關閉
- 使用showMessage()顯示得分數
○ 修改Button_clickme ,於按下時啟動Timer
○ 增加招呼語,於程式起始時使用InputBox() 讓使用者設定遊戲時間
○ 增加提示訊息,告知使用者按下按鈕後開始計時
○ 完成!
BP:這算是將上學期學過的做一個基本整合,請同學加油,務必成功做出來而且瞭解!
2010年3月9日 星期二
中台 - 98-2 物件導向程式設計 03/09 作業
請以
『中台 - 98-2 物件導向程式設計 03/09練習 』
為範本,設計出屬於你自己的程式。
需要使用元件與函式:
請於2010.03.16 上課給老師評分。
BP
『中台 - 98-2 物件導向程式設計 03/09練習 』
為範本,設計出屬於你自己的程式。
需要使用元件與函式:
- 元件
- Label
- Edit
- Memo
- GroupBox
- Button
- 函式
- showmessage()
- Inputbox()
- MessageBox()
- PChar()
- StrToInt() 轉型系列
- IF then else
- 迴圈 ( while, for皆可)
- 創意
- 函式與元件使用程度
- 美觀度
請於2010.03.16 上課給老師評分。
BP
2010年3月8日 星期一
中台 - 98-2 物件導向程式設計 03/09練習
BMI Caculator
請同學製作出一個 BMI值計算程式,版面與操作過程如範例,
範例下載:[ Download ]
製作流程與提示項目
○新增專案
○撰寫分析Button程式
請同學製作出一個 BMI值計算程式,版面與操作過程如範例,
範例下載:[ Download ]
製作流程與提示項目
○設定Form底色
○設定Form的Events中的OnActive事件 (此為讀取該form時自動引發)
○撰寫歡迎程序
- ShowMessage() 顯示歡迎頁面
- InputBox) 輸入使用者名稱 (利用一個全域變數儲存)
- MessageBox() 確認使用者名稱( 請使用PChar()函式進行名稱確認))
- 若正確,即進入頁面
- 若錯誤,回到InputBox重新輸入
- (使用While進行迴圈確認)
- 設定標題Label並編輯內容
- 設定Edit 以輸入身高體重
- 製作Button做為分析與結束使用
- 設定一個GroupBox元件做為輸出
- 製作Label並設定標題內容,label有以下幾個:
- 打招呼標題
- BMI值顯示
- (預設一開始看不見 Visible = false )
- 製作一個Memo元件做為結果判斷使用 (預設一開始看不見 Visible = false )
○撰寫分析Button程式
- 建立全域變數 :
- result : String;
- bmi : Real;
- 判斷兩個Edit元件是否有輸入值 (使用IF ELSE 判斷式)
- 若無,便以showmessage()告知
- 若有,便繼續
- 取得兩個Edit元件中的值並將文字型態轉為Float型態(StrToFloat() )
- 計算BMI值,公式如下:
- BMI = 體重 (KG) / 身高 (M^2)
- Hints:
- M為公尺,故輸入為公分必須先除以100
- 平方請用 sqr() 函式
- 打開GroupBox中的Label招呼元件,並顯示出使用者名稱招呼 ( 要加上username)
- 打開BMI顯示Label,並顯示BMI值 (需將Float轉回Str才能輸出)
- 打開招呼Label與Memo
- 依據BMI值設定輸出於Memo的文字,(使用IF判斷,並以一個string變數儲存):
- bmi < 15 ,Memo顯示:'過於飢餓 Starvation'
- bmi > =15 且 bmi < 18.5,Memo顯示:'體重不足 Underweight'
- bmi >= 18.5 且 bmi < 24 ,Memo顯示:'一般體重 Normal'
- bmi >= 24 且 bmi < 30 ,Memo顯示:'超重 Overweight'
- bmi >= 30 且 bmi < 40 ,Memo顯示:'嚴重超重 Obese'
- bmi >= 40 ,Memo顯示:'極度超重 Morbidly Obese'
- 將String變數設定至Memo元件
- 完成! 請找老師登記
BP:
這算是將上學期學過的做一個基本整合,
請同學加油,務必成功做出來而且瞭解!
2010年3月2日 星期二
中台 - 98-2 物件導向程式設計 03/02練習
中台 - 98-2 物件導向程式設計 03/02 練習
Motivation: 練習使用以下三個函式:
BP
Motivation: 練習使用以下三個函式:
- ShowMessage()
- InputBox()
- MessageBox()
BP
2010年2月22日 星期一
中台 - 98-2 物件導向程式設計 課程大綱
課程名稱:物件導向程式設計
教師名稱:潘人豪
聯絡資料:bp.teach@m2k.com.tw
授課時數: 2
授課時間:(週二) 08:20~10:05 , 13:20~14:10
課程目標
- 使同學瞭解物件導向程式語言之原理與實作方式,
並透過基礎UML分析與專題製作熟悉系統開發與專案進行方式。
課程目標
- 針對Delphi程式語言,本課程除了進行基礎語法練習外,將進一步探討副程式、 類別與物件導向概念、多執行緒與進階元件介紹等等進階物件導向語言程序。並透過UML介紹,使同學學習如何針對程式語言進行分析描述。最後,透過專題製作,使同學開進一步懂的軟體開發之程序與過程。
課程內容
- 01. 課程介紹與覆習
- 02. Delphi 基本語法回顧
- 03. Delphi 基本語法回顧
- 04. UML 介紹
- 05. 副程式
- 06. 副程式
- 07. 類別與物件導向概念
- 08. 類別與物件導向概念
- 09. 期中考試
- 10. 多執行緒
- 11. 進階元件介紹(一)
- 12. 進階元件介紹(一)
- 13. 專題計畫報告
- 14. 進階元件介紹(二)
- 15. 進階元件介紹(二)
- 16. 隨堂測驗
- 17. 期末專題DEMO
- 18. 期末專題DEMO
課程資訊
- 成績評量
期中考 (20%)
小考 (10%)
出席率及課堂表現 (30%)
期末專題 (40%)
- 課程需求
小組討論
課堂發問:10 次 / 學期
教科書及參考資料
訂閱:
意見 (Atom)