Translate

顯示具有 98-2中台資管 - 物件導向程式設計 標籤的文章。 顯示所有文章
顯示具有 98-2中台資管 - 物件導向程式設計 標籤的文章。 顯示所有文章

2010年6月21日 星期一

中台 - 98-2 物件導向程式設計 - 學期成績

Dear 各位同學

學期成績已經出來,
每位同學都加分非常多。

請大家好好努力,沒有通過的同學也請勿氣餒,
學好學懂才是最重要的。

祝福大家!

Score : [ View ]

2010年6月15日 星期二

中台 - 98-2 物件導向程式設計 - 期末考

注意事項:
  • 下列任一行為以零分計算
    • 開啟通訊軟體 (如: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%)


    ●加分題:   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練習

    鍵盤控制練習

    請練習在Panel中放上一個Button,並以鍵盤偵測進行上下左右移動
    範例: [ Download ]

    • Form 物件的OnKeyDown, OnKeyPress差異
    • FormKeyDown的使用
      • Key: Word
      • 37 : 左
      • 38 : 上
      • 39 : 右
      • 40 : 下
    • 使用Additional / Speed Button便不會搶Focus
    • 相關內容請見課本: 12-1 , 12-2



    動態物件產生
    以動態方式產生按鈕,並按一下多一個按紐,且以亂數使其動作於panel中
    範例: [ Download ]
    原始碼:[ Download ]
    • 以 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月5日 星期三

    注意交通安全與安全帽的重要性

    請同學注意交通安全與安全帽的重要性,
    給大家看老師課堂講的案例。

    本文轉自東吳機研:
    http://scumotor.com.tw:8080/gemmore/Protection&F1179SDJ&33


    請大家要多注意自己的人身安全。
    不要再讓老師聽到痛心的消息!!

    謝謝

    BP

    2010年5月2日 星期日

    中台 - 98-2 物件導向程式設計 期中考成績

    Dear 各位同學

    請你們看看自己的期中考成績

    成績: [ View ]

    十分不理想!

    之後我們會改變教課方向。

    請同學加油


    BP

    2010年4月20日 星期二

    中台 - 98-2 物件導向程式設計 - 成績一覽表

    Dear 各位同學


    將來大家的成績都會放在這,
    請大家點閱,

    作業繳交成績: [ View ]


    如果對作業不滿意的,歡迎補交!


    BP

    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 。



    製作流程



    ○ 建立專案
    ○ 製作按鈕與Label、Edit元件
    ○ 建立全域一維陣列: NumberArray 大小為26 (NumberArray : array[0.. 25] of Integer ; )
    ○ 建立初使化程序 procedure initArray;

    • 進行NumberArray 初始化,其值以查表方式建立
      EX: NumberArray[0] := 10 ; //A
    ○ 建立輸入字串檢查函式驗證是否符合格式
       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投影片製作,並將連結貼到本篇文章回覆中
    各組題目請勿重覆,回覆範例如下:


    小 組:No.0
    成 員:學號, 姓名
    學號, 姓名
    學號, 姓名
    題 目:XXXXX
    投影片:
    http://docs.google.com/present/edit?id=0AcoQevXXmTncZGQ4Mm56ZzdfMTE2ZDlzZzk0amo&hl=zh_TW



    BP:各位同學加油吧!

    2010年3月19日 星期五

    中台 - 98-2 物件導向程式設計 03/22 作業繳交

    Dear 同學

    03/22 課堂要登記分數的作業有以下兩個:

    • 以BMI計算為範本的個人設計程式
    • 實作Click Game 

    而以Click Game為範本的個人設計程式,
    則在03/29 繳交。

    請同學別忘了。
    加油。

                     BP

    2010年3月15日 星期一

    中台 - 98-2 物件導向程式設計 03/15練習

    Click Game


    範例下載:[ 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 變數即可取得)

    ○ 在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練習 』

    為範本,設計出屬於你自己的程式。
    需要使用元件與函式:
    • 元件
      • 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 ]


    製作流程與提示項目

    ○新增專案
    ○設定Form底色
    ○設定Form的Events中的OnActive事件 (此為讀取該form時自動引發)
    ○撰寫歡迎程序
    1. ShowMessage() 顯示歡迎頁面
    2. InputBox) 輸入使用者名稱 (利用一個全域變數儲存)
    3. MessageBox() 確認使用者名稱( 請使用PChar()函式進行名稱確認))
      1. 若正確,即進入頁面 
      2. 若錯誤,回到InputBox重新輸入 
      3.  (使用While進行迴圈確認)
    ○製作版面項目
    1. 設定標題Label並編輯內容
    2. 設定Edit 以輸入身高體重
    3. 製作Button做為分析與結束使用
    4. 設定一個GroupBox元件做為輸出
      1. 製作Label並設定標題內容,label有以下幾個:
        • 打招呼標題 
        • BMI值顯示
        •  (預設一開始看不見 Visible = false )
      2.  製作一個Memo元件做為結果判斷使用 (預設一開始看不見 Visible = false )
      ○撰寫結束Button程式 (使用close()函式)
      ○撰寫分析Button程式
        1. 建立全域變數 : 
          1. result : String;
          2. bmi : Real;
        2. 判斷兩個Edit元件是否有輸入值 (使用IF ELSE 判斷式)
          1. 若無,便以showmessage()告知
          2. 若有,便繼續
        3. 取得兩個Edit元件中的值並將文字型態轉為Float型態(StrToFloat() )
        4. 計算BMI值,公式如下: 
          • BMI = 體重 (KG) / 身高 (M^2)
          • Hints:
            • M為公尺,故輸入為公分必須先除以100
            • 平方請用 sqr() 函式
        5. 打開GroupBox中的Label招呼元件,並顯示出使用者名稱招呼 ( 要加上username)
        6. 打開BMI顯示Label,並顯示BMI值 (需將Float轉回Str才能輸出)
        7. 打開招呼Label與Memo
        8. 依據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'
        9. 將String變數設定至Memo元件
        10. 完成!  請找老師登記


          BP:
          這算是將上學期學過的做一個基本整合,
          請同學加油,務必成功做出來而且瞭解!



          2010年3月2日 星期二

          中台 - 98-2 物件導向程式設計 03/02練習

          中台 - 98-2 物件導向程式設計 03/02 練習

          Motivation: 練習使用以下三個函式:
          • ShowMessage()
          • InputBox()
          • MessageBox()
          Objective : 組合上述三個函式設計一段程式


                              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 次 / 學期



          教科書及參考資料