C++語言及其應用」課程網頁 (Last update: 11/22/2017 1:23 PM)

本課程以Dev-C++Visual Studio為主要的編譯環境,除了正課講授的主題而規劃相應的作業之外,另提供任課教師自行設計的應用範例程式碼,希能助益同學統合所學。任何語言的學習都需內化、充分練習方能運用自如,請同學發揮創造力與想像力,利用課後時間多做練習。願大家收穫豐富!

 

同學自製小專題的應知 (简体字版)

1單元

Syllabus

 

FYI2017年熱門程式語言與薪水排行

FYI程序語言受歡迎的程度 (僅參考,毋需過度嚴肅看待)

作業:安裝並使用Visual Studio Dev C ++程式開發環境

2單元

Visual C++程式架構與資料型別

 

* 補充:表單(Windows Form)程式之MessageBox的使用 (葉文德同學提供)

 

[老師補充]

* 製作Windows Form程式,主頁面有PictureBoxLabelButton等元件,當按請按我鈕,程式蹦出另一小視窗,新視窗上有<><><取消>,並顯示招呼語 (執行畫面)

* Dev-C++建置視窗程式

作業:“Hello World!”程式編寫+執行

 

補充:在Visual Studio 2010版以後開發環境新增Windows Form的方式
參考來源

MyForm.cpp應新增的程式碼

影片教學

3單元

流程控制

 

[老師補充]

* 跑馬表(argcargv、字串轉數字、stringstreamcout的使用;另以Sleep()kbhit()函數實作)

* 乘法器I、乘法器II

* 一閃一閃亮晶晶:利用rand()產生若干組座標點,透過gotoxy()函數依座標位置於螢幕顯示‘*’,一段時間後消失,如此重複。可另用time()對隨機數產生器作種子(seed)初值化設定

* Console Functions (主控台函式 by James) http://www.ee.yuntech.edu.tw/IMAGES/new_0001.gif

* vector結構的使用

* 讀取鍵盤按鍵碼

* Command-line interpreter:「命令提示字元」程式製作、多執行緒版本

* 打磚塊小遊戲程式(單執行緒版本、多執行緒版本I、多執行緒版本II)

練習

作業一  (简体字版)

查閱MSDN描述sqrt()pow()log()log10()exp()floor()ceil()等數學函數的用法

4單元

陣列與字串

* 補充:字串(string)

* 補充:字元陣列 (測試檔Weather.txt)

* 補充:指標的應用

 

[老師補充]

* 打字練習程式

* 檔案處理:取得TED演講字幕檔、英中文並陳的方法 (简体字版)

* 利用STL (Standard Template Library)處理資料結構:以vector為例

* 利用STL處理資料結構:以list為例

* 利用STL處理資料結構:以set為例

作業二 (简体字版)

作業三 (简体字版) http://www.ee.yuntech.edu.tw/IMAGES/new_0001.gif

作業四

期中考

5單元

函式

函式進階

 

[老師補充]

* 接啤酒小遊戲:酒保把啤酒滑遞給3個吧檯盡頭的客人,啤酒滑動的速度不一。酒客於吧檯的另一端,利用鍵盤的上下方向鍵控制,移動位置以迎接送來的酒,避免讓其滑落吧檯。當接到第六杯酒,程式結束,並顯示漏接率

* 擴充「接啤酒小遊戲」,使之能應付至多6個吧檯的客人,按Space鍵暫停、按Esc鍵立即中止程式

*「傳址呼叫」(pass by address)改為「傳參考呼叫」(pass by reference)的方式傳遞陣列 (範例)

* 遞迴函數的使用:把畫面塗滿(版本I、版本II)

作業五

練習

作業六

6單元

視窗應用程式基礎操作

 

 

[老師補充]

* 讀機器系統時間的小鬧鐘(版本I、版本II)

* 類動畫程式:運用TimerprogressBar元件實作雲寶寶圖案在視窗內移動,迨progressBar進行到100%,程式自動關閉

* 類動畫程式:移動的彩色光束(模擬開機畫面)版本I、版本II

* 類動畫程式:以Label物件實作的二磚塊於表單畫面中進行2D獨立運動,啟始速度不同,碰觸到邊界或磚塊相互碰撞時將依物理學的方式反彈

* 二圓相交決定弧長程式:就大小兩個圓相交所決定的弧而言,小圓上的弧大於大圓上的弧長,為什麼?半徑r>=l的圓皆可在圓內找到長為2l的弦,此弦對應的弧長f(r)=2r*sin^{-1}(l/r)為遞減函數,以繪圖的形式呈現 (執行畫面)

練習

測驗

7單元

類別與物件

 

[老師補充]

* 貪吃蛇小遊戲:[暖身]熟悉如何利用方向鍵控制小龍的移動

* 二隻貪吃蛇:一隻蛇由使用者操控移動,另一隻由程式決定移動方向。當二隻蛇頭部碰觸到,程式隨即結束。請思考如何將程式擴展成n隻蛇的情形。版本I、版本II、版本III

* 蛇與星星:以隨機的方式在螢幕任一位置顯示‘*’,使用者利用方向鍵控制蛇的移動、避免被星星擊中。一旦被擊中三次,程式顯示這隻可憐的小生物嗚呼哀哉,隨即結束執行

* n隻貪吃蛇:改以類別與物件的機制實作

*鳥兒上飛小遊戲:程式啟動之後,AB二鳥開始受到重力的牽引,須努力拍打翅膀才能避免墜地。努力按鍵盤任意鍵為A鳥加油;按鍵愈快,A鳥將飛得愈來愈高。努力移動滑鼠為B鳥加油;滑鼠移動得愈快,B鳥將飛得愈來愈高。率先抵達天空之頂者為勝

作業八

作業九

8單元

繼承、多型、樣版

作業十

9單元

Managed Extensions for C++語法升級

作業十一:事件處理

10單元

例外處理與檔案處理

作業十二:讀檔練習
("Weather, Arrays, Data File I/O”)

11單元

表單和控制項常用的成員

 

12單元

常用控制項

 

13單元

工具列容器

 

14單元

通用對話方塊的應用

 

15單元

資料工具的使用

 

16單元

補充教材

 

期末考試

網路資源

*  上課用書的範例程式碼勘誤交流論壇

*  C/C++ Reference

*  CLR (Common Language Runtime)

*  C++/CLI in Action – Declaring CLR Types

*  常見程式演算筆記

*  流程圖(Flowchart)符號說明

*  查閱Unicode

*  設定Dev-C++支援新版c++11標準語法之編譯方式 http://www.ee.yuntech.edu.tw/IMAGES/new_0001.gif

*  https://s3.hicloud.net.tw/zuvio.public/public/system/images/irs_v4/irs/login/logo@2x.png給同學練習用的程式 (2011年工程不分系「程式設計實習」課)

*  Zuvio (課堂互動平台,第一次使用請以學校email、密碼123登入)

 

*  有任何意見或建議,請隨時與老師聯絡;分機4245

*  助教:張良宇(研一,EL407,分機4276)