Demo-dataSource與DropDownList

Slides:



Advertisements
Similar presentations
教育技术装备统计系统 使用培训 教育部基础教育司 教育部教育管理信息中心.
Advertisements

深圳香港跨境求學 早晨5:30起床,6:30到達口岸,6:40過關到香港,下午4:30回到深圳的家,補習,做功課,晚上9點準時睡覺——這是一名跨境讀書的孩子一天的時間表。每天,有上萬名這樣的孩子在口岸兩側奔波往返。他們,是一群生在香港,住在深圳的“跨境學童”。
第2章 Visual Basic 6.0编程基础 (第一部分)
硕士论文开题报告 煤炭企业物流信息系统的 研究与设计 指导老师: 学生姓名: 学 号:
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
情緒與壓力管理 手部舒壓運動 第六組.
課程名稱:程式設計 授課老師:________
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Access数据库程序设计 总复习.
第7章 C#函數與.NET Framework類別函數庫
課程名稱:程式設計 授課老師:________
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
Visual Basic程序设计.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
第5章 异常处理 王德俊 上海交通大学继续教育学院.
CH11.
Chapter 模組 台灣師範大學數學系 黃聰明.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
第二章 C# 基础知识.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
南华大学计算机学院 软件工程系 QQ讨论群:
程式語言 -Visual Basic 變數、常數與資料型態.
第16章 VB.NET物件導向與.NET Framework
課程名稱:資料庫系統 授課老師:李春雄 博士
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
Timer & Format.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第十二章 多模組與多專案.
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
新觀念的 VB6 教本 第 6 章 資料型別.
第 8 章 过程.
Visual Basic程序设计.
算法与程序设计 周少品.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
小结 郭清溥.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
1位选手参加了歌唱比赛,评委们的评分如下:
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
05 方法. 05 方法 5.1 方法 在一個較大型的程式中,通常會將具有特定功能或經常重複使用的程式,撰寫成獨立的小單元,稱為「方法」(Method),並賦予方法一個名稱,當程式需要時就可以呼叫此方法來執行該段特定程式。(此種重複使用的程式小單元在其他語言中可能稱為程序、副程式或函式, Visual.
C#快速導讀 流程控制.
程序调试与错误处理.
Presentation transcript:

Demo-dataSource與DropDownList CH04 Demo-dataSource與DropDownList

副程式與模組 副程式和參數 當系統的架構越來越大,程式碼越來越多之後,開發人員陸續的發現到,有相當多的程式碼其實可以重複使用,藉由『副程式』或『函式』的建立,同樣一段程式碼,可以帶入不同的『參數』,就能夠重複的被使用在各種場合和不同的程式碼中。 系統內建的函式 .NET Framework本身內建了相當多豐富的系統函式(或是副程式)提供程式設計師使用: EX: CH04-19\Module1.vb Sub Main() '刪除 C:\abc.txt 檔案 System.IO.File.Delete("C:\abc.txt") Console.WriteLine("檔案已經刪除!") Console.ReadKey() End Sub 例如,您可以透過『System.IO.File.Delete』,來刪除硬碟中某個指定的檔案,底下的C:\abc.txt,我們稱之為『參數』:

副程式與模組 這些系統函式讓開發人員可以不需要親自撰寫所有的程式碼,只需要透過簡單的指令,就可以達成需要的功能。 當然,這些功能都是透過其他程式設計師事先撰寫好的程式碼來完成的,透過.NET Framework,我們只需要叫用這些副程式或是函式即可完成所需的功能。 我們在後面會陸續介紹(並使用到)相當多的.NET內建函式,當您在撰寫程式時,可以在程式碼輸入區鍵入: 您會發現系統自動跳出許多函式可供選擇和使用,其實很多函式您不需要自行撰寫,在.NET Framework中早已經內建。這也是透過.NET Frameowork撰寫程式的好處,您有相當強大的類別程式庫(Class Library)作為撰寫程式的後盾。

副程式與模組 在程式碼當中建立副程式 '副程式 Sub MySubA() Dim dt As Date '取得現在時間 EX:CH04-01 '副程式 Sub MySubA() Dim dt As Date '取得現在時間 dt = System.DateTime.Now.ToString '顯示 Console.WriteLine(dt) End Sub 請注意,副程式需要有一個名字,命名規則與變數相同。 叫用.NET本身提供的系統函式,來取得時間 顯示目前的時間。

副程式與模組 在程式碼當中使用剛才建立好的副程式 '主程式 Sub Main() '顯示 EX:CH04-01 '主程式 Sub Main() '顯示 Console.WriteLine("Hello") '呼叫副程式 Call MySubA() Console.WriteLine("How are you?") '暫停 Console.ReadKey() End Sub 利用Call指令來呼叫剛才建立好的副程式

副程式與模組 程式碼執行的順序 利用Call指令來呼叫剛才建立好的副程式

副程式與模組 程式碼執行的順序 利用Call指令來呼叫剛才建立好的副程式 這行就是透過副程式顯示出來的

這樣的一個程式區塊(從Sub…到End Sub),就被稱為『副程式』。這個副程式,則可以在其他的程式碼當中被呼叫 副程式與模組 副程式結構 EX:CH04-01 '副程式 Sub MySubA() Dim dt As Date '取得現在時間 dt = System.DateTime.Now.ToString '顯示 Console.WriteLine(dt) End Sub 這樣的一個程式區塊(從Sub…到End Sub),就被稱為『副程式』。這個副程式,則可以在其他的程式碼當中被呼叫

副程式與模組 在程式碼當中建立函式 Function的寫法 Function Max(ByVal a As Integer, ByVal b As Integer) As Integer If a > b Then Return a End If If a < b Then Return b '如果兩者相等,則傳回 Return 0 End Function Function也要有名字 請特別注意,Function需要指定回傳值的型別 這邊設定的叫做『參數』 Return指令用來結束Function並把值傳回 Function與Subroutine有一個很大的不同,是Function可以具有傳回值的,而Subroutine則沒有。和Subroutine不同的,則是Function需要指定『回傳值的型別』,也就是最後面的As Integer … As Integer

副程式與模組 函式的 回傳型別 與 參數 Function Max(ByVal a As Integer, ByVal b As Integer) As Integer 請特別注意,Function需要有回傳值的型別   前面我們強調,Function是會有傳回值的,因此這邊指定的型別,是該Function最後要回傳給主程式的回傳值型別。 Function Max(ByVal a As Integer, ByVal b As Integer) As Integer 參數可以有多個,以逗號隔開,每個參數都要有型別 參數是指,當主程式要呼叫這個Function時,需要傳入的運算用資料,目的是為了讓同樣一段副程式或是函式,可以用同一種邏輯處理類似的運算。不論您是使用副程式(Subroutine)或是函式(Function),都可以加入參數,只是剛才我們介紹副程式的時候沒有使用而已。

副程式與模組 呼叫函式 上例中的這個函式,主要的功能是取得兩個整數中,那一個較大,因此呼叫時需要傳入兩個參數,傳入的參數,可以是變數的形式: Dim n1, n2 As Integer Dim ret As Integer ret = Max(n1, n2) 也可以是這樣: Dim ret As Integer ret = Max(35, 73) 傳入Max這個Function的參數,可以是變數,也可以是常數。 由於Function會有回傳值,因此您必須建立一個變數來『接收回傳值』: ret = Max(35, 73)

Demo-dataSource與DropDownList 實例演練 建立一個函式,讓使用者輸入圓的的半徑,該函式就傳回圓的面積 提示: 假設半徑為 r,則圓面積的計算公式為:r*r*3.14159 Demo-dataSource與DropDownList

副程式與模組 傳址呼叫(ByRef) 與 傳值呼叫(ByVal ) Function Swap(ByRef n1 As Integer, ByRef n2 As Integer) As Integer ByRef為傳址呼叫

副程式與模組 傳址呼叫(ByRef) Sub Main() Dim a, b As Integer a = 10 b = 20 EX:CH04-06 Sub Main() Dim a, b As Integer a = 10 b = 20 Swap(a, b) Console.WriteLine("變數a:" & a) Console.WriteLine("變數b:" & b) Pause() End Sub Function Swap(ByRef n1 As Integer, ByRef n2 As Integer) As Integer Dim c As Integer c = n1 n1 = n2 n2 = c End Function 主程式呼叫Swap時,以ByRef方式來傳入a,b兩個參數… 請注意,以ByRef傳入的n1,n2參數,就是主程式中的a,b,不只是接收a,b的值,是完全等於a,b

透過這樣的方式,我們可以一次回傳兩個值回主程式,也可以達成Swap函式需要的效果,而這個是ByVal傳遞方式無法做到的 副程式與模組 傳址呼叫(ByRef) EX:CH04-06 Sub Main() Dim a, b As Integer a = 10 b = 20 Swap(a, b) Console.WriteLine("變數a:" & a) Console.WriteLine("變數b:" & b) Pause() End Sub Function Swap(ByRef n1 As Integer, ByRef n2 As Integer) As Integer Dim c As Integer c = n1 n1 = n2 n2 = c End Function 透過這樣的方式,我們可以一次回傳兩個值回主程式,也可以達成Swap函式需要的效果,而這個是ByVal傳遞方式無法做到的

副程式與模組 傳址呼叫(ByRef) 與 傳值呼叫(ByVal ) Function Swap(ByRef n1 As Integer, ByRef n2 As Integer) As Integer ByRef為傳址呼叫 ByRef的觀念,您可以想像成,當主程式呼叫副程式的時候,把自己的變數本身一起傳過去給副程式用了; 而ByVal則是,當主程式呼叫副程式的時候,把自己變數內的值給副程式用,但原本主程式中的變數則不受副程式的影響。

副程式與模組 Optional關鍵字 Function add(ByVal a As Integer, Optional ByVal b As Integer = 0) 以此關鍵字修飾的參數被定義後,主程式在呼叫該函數時,可以省略此參數

副程式與模組 Optional關鍵字 Sub Main() Dim a As Integer EX:CH04-09 Sub Main() Dim a As Integer a = add(5) '只傳入一個參數也不會發生錯誤,回傳值為回傳值為5 MsgBox(a) a = add(5, 10) '回傳值為15 End Sub '將a,b兩個參數相加並傳回,如果沒有傳入b參數,則預設為 Function add(ByVal a As Integer, Optional ByVal b As Integer = 0) Return a + b End Function 因為「Optional」修飾字的關係,就算在呼叫add這個Function時,沒有填入參數b值也不會有錯誤訊息

副程式與模組 變數的存留期與存取範圍 變數的『存留期』,是指變數在記憶體當中佔有的時間,從什麼時候開始到什麼時候結束。 變數的『存取範圍』,則是指程式碼中可以存取特定變數的範圍。 『全域變數』與『區域變數』 全域變數指的是在程式的任何範圍都存取的到的變數:

副程式與模組 0018: n = Console.ReadLine() 0001: '這是全域變數 0019: Return n 請注意這個變數宣告在主程式Sub Main()的外面,稱之為全域變數。 EX:CH04-09 0001: '這是全域變數 0002: Dim UserName As String 0003: '主程式 0004: Sub Main() 0005: UserName = GetUserName() 0006: '顯示 0007: ShowWelcome() 0008: '暫停 0009: Pause() 0010: End Sub 0011: 0012: '取得使用者名稱 0013: Function GetUserName() 0014: '這是區域變數 0015: Dim n As String 0016: 0017: Console.Write("請輸入您的名稱:") EX:CH04-09 0018: n = Console.ReadLine() 0019: Return n 0020: End Function 0021: 0022: '顯示歡迎訊息 0023: Sub ShowWelcome() 0024: Console.WriteLine(UserName & "您好,歡迎您來到本系統") 0025: End Sub 0026: 0027: '暫停 0028: Sub Pause() 0029: Console.WriteLine() 0030: Console.Write("===>程式暫停中,請按任意鍵繼續...") 0031: Console.ReadKey() 0032: End Sub 這邊用到了第2行所定義的全域變數。 這個變數宣告在Function GetUserName()裡面,稱之為區域變數。

副程式與模組 全域變數與區域變數的特性如下: 全域變數 區域變數 宣告方式 生命週期 存取範圍 宣告在區域的外層 宣告在某個區域裡面(例如Function) 生命週期 與程式同生共死 (意即:程式執行時持續佔有記憶體空間) 跟著被宣告的範圍,當該函式(或範圍)被呼叫時生成,該函式結束時消滅。 (意即:只有該函式執行時佔有記憶體空間) 存取範圍 整個程式範圍 被宣告的區域內   何時需要定義一個全域變數呢?假設這個變數需要被所有函式存取,則我們會將其定義為全域變數。   區域變數則比較簡單,假設某個變數僅會在一定的範圍內存取,我們就會設計成區域變數。 Do 和 Loop區域 For [Each] 和 Next區域 If 和 End If區域 Select 和 End Select區域 SyncLock 和 End SyncLock Try 和 End Try區域 While 和 End While區域 Sub和End Sub區域 Function和End Function區域

副程式與模組 靜態變數 以Static關鍵字宣告的變數是靜態變數,其值會被保留,不會隨著所在的副程式(或函式)的結束而消失… EX:CH04-09 Sub Main() For i As Integer = 1 To 12 Test() Next Pause() End Sub Sub Test() Static n As Integer n = n + 1 Console.WriteLine("n:" & n) 以Static關鍵字宣告的變數是靜態變數,其值會被保留,不會隨著所在的副程式(或函式)的結束而消失

副程式與模組 備註 為什麼需要『靜態變數』呢?您可能會覺得,靜態變數的生命週期似乎和『全域變數』是一樣的,那乾脆在函式的最外層宣告一堆全域變數,不就可以達到和『靜態變數』一樣的功能嗎?答案是:『Yes』但是我們不會這麼做。 主要的原因依舊是剛才我們提過的,全域變數有著一個不好的特性,就是每一個副程式或是任何區域,都可以存取該變數,因此難保其他的副程式會不小心用到這個全域變數,或是誤設該變數的值。這會導致程式很難察覺的錯誤;而且如此一來,函式的獨立性又被破壞了。 此外,由於全域變數是程式碼中所有範圍均可以存取,因此有個很大的問題,就是命名,凡是全域變數中已經用過的變數名稱,同樣的名稱都不能出現在副程式或函式當中。 而靜態變數有著跟全域變數一樣的生命週期,但是其存取範圍卻被刻意侷限在某個副程式或是區域當中,這樣不僅可以避免被程式設計師誤用,有些常用的變數名稱,也可以重複的使用在不同的副程式或函式當中。

副程式與模組 .NET Class Library   前面我們介紹過怎麼自己定義副程式和函式,但是其實在.NET Framework當中,已經有內建相當豐富的函式庫,並且依照不同的功能區分。   例如當我們撰寫程式時,需要使用到與數學函式有關的部份,可以在程式碼輸入區鍵入『System.Math.』:

副程式與模組 .NET Class Library   類別庫包羅萬象,無法在書籍中完全加以介紹,但是透過『命名空間』,對於類別庫的使用,則可以有個概略性的思考方式。   例如在.NET Framework當中,與數學有關的系統函式都會位於System.Math命名空間底下,因此如果要尋找某些特定的函式,可以從命名空間開始思考。 命名空間是為了區分龐大的函式庫所採用的方法,因為.NET提供了一整套複雜且龐大的內建函式,如果不加以分門別類,上萬個各式各樣的內建函式將會難以分辨。因此,我們可以透過命名空間來對函式庫加以分類,例如Systm.Math.Sqrt()這個寫法當中,Sqrt是函式名稱,而System和Math則是命名空間。   這也表示了,命名空間下面還可以有命名空間,如此一來,也有另一個好處,就是即使函式名稱相同,我們也可以冠上不同的命名空間來加以區分。例如,假設我們自己撰寫了一個同名的Sqrt函式,我們可以在這個函式上面冠上不同的命名空間,例如StudyHost.Math.Sqrt,以區別不同的函式。 命名空間名稱 功能 System.Data 提供所有與資料庫(Access, SQL Server, Oracle)相關的函式與功能。 System.Drawing 提供與繪圖有關的函式與功能。 System.IO 提供與檔案、資料夾存取有關的功能。 System.Net 提供與網路相關的函式與功能。 System.Net.Mail 提供與電子郵件相關的函式與功能。 System.Web 提供與網際網路資源存取相關的功能。 System.Xml 提供與XML相關的功能。

副程式與模組 .NET My Class   除了透過System命名空間來存取.NET提供的內建函式之外,在Visual Basic 2005當中有一個捷徑,就是My Class。   My Class機制透過簡單的『My』關鍵字,讓程式設計師可以輕鬆的引用.NET Framework的功能。我們只需要在程式碼撰寫時,鍵入『My.』系統就會跳出可供使用的功能。例如『My.Computer』表示所有與我的電腦相關的功能:

副程式與模組 何謂模組(Module)   『模組』是一群副程式的集合,當我們在主程式中建立了很多副程式(或函式)之後,可以把功能相似的副程式歸類為一個模組,如此一來,開發人員在使用時也比較方便,不需要到處尋找程式碼片段。   同時,將主程式碼當中的功能切割成副程式,再歸類到一個模組檔案中,更可以讓開發程式的時候方便管理,後續的維護也會更加便利。特別是在多人同時開發一個專案的時候,這樣的好處會更加的明顯,這種將程式碼建立的更加結構的方式我們稱之為『模組化』。

副程式與模組 如何建立一個模組 方法一:點選選單中的「專案」→「加入模組」。

副程式與模組 如何建立一個模組 方法二:在「方案總管」中,按下滑鼠右鍵→「加入」→「模組」:

副程式與模組 模組的功能   把需要用到的函式(或副程序)寫進模組裡,這樣在使用時就可以用簡潔的程式碼來呼叫這些函式(或副程序) ,一方面精簡主程式,另一方面可以讓程式容易維護!   更重要的是,透過模組來撰寫應用程式,當我們把程式分割成獨立的幾個功能,且使用模組來設計之後,程式碼可以同時給多個開發人員一起開發,加快開發時程。此外,在這次專案中,建構好的模組,也可以在下次專案中重新拿出來使用,而不需要再撰寫一樣(或相似)的程式碼。

副程式與模組 模組的使用 在剛才建立好的模組檔案中,設計一個Sub… EX:CH04-14\NewModule.vb Module NewModule '暫停 Sub Pause() Console.WriteLine() Console.Write("===>程式暫停中,請按任意鍵繼續...") Console.ReadKey() End Sub End Module 只需要打入模組名稱『newmodule.』VS2005就會帶出該模組中可用的函式(剛才我們建了一個Pause)出來給我們選擇。 主程式當中,可以這麼使用它:

副程式與模組 函式自動註解功能 如果您使用Visual Basic 2005撰寫函式或副程式時,在函式或副程式的上頭連續打三個『'』,則會出現這串自動產生的註解文字: 註解功能 0022: ''' <summary> 0023: ''' 把成績平均 0024: ''' </summary> 0025: ''' <returns></returns> 0026: ''' <remarks></remarks> 0027: Function Average() As Single 0028: Dim AvgScore As Single 0029: 0030: AvgScore = SumScore / Students 0031: Return AvgScore 0032: End Function 請在函式或副程式上頭,連續打三個『‘』,就會自動出現這串文字,請在<summary>和</summary>中,手動入輸入註解

副程式與模組 模組中函式的可用範圍   當我們將模組A中的Sub C()加了Private關鍵字之後,我們的主程式Module1當中的Sub Main(),想要叫用模組A的Sub C()時,就不可行了: 註解功能 Module A Sub B() Call C() End Sub Private Sub C() (…略…) Sub D() End Module 當Sub C()加上了Private關鍵字之後,模組內的Sub B()和Sub D()都可以呼叫Sub C(),但是模組A之外的其他程式碼,則無法透過A.C()的方式來呼叫模組內的Sub C():

副程式與模組 模組中函式的可用範圍 這種機制其實是一種『保護措施』,因為當程式碼愈來越複雜之後,程式設計師只是依照函式的名稱來使用,如果不小心叫用到不該呼叫的函式,可能會讓程式發生意料之外的錯誤,因此設計模組的程式設計師,必須承擔起這個責任,讓模組的架構更佳的完善。

副程式與模組 Private的意義說明 程式的嚴重錯誤往往發生在『邏輯上』而非程式碼的『語法』撰寫上,近代程式開發工具,都已經備有完善的程式碼檢查功能,在撰寫和編譯的同時,都已經可以去除大部分的程式語法謬誤,,但是開發工具無法幫您檢查邏輯上的錯誤。 當一個大型專案切割成許多小專案之後,撰寫主程式的可能是一個開發人員(John),撰寫模組的又是另一個(Eric),這時模組的架構就變的相當重要。如果模組內的眾多函式當中,某些只提供該模組內部使用的函式(例如上例中的CheckData),因為沒有加上Private關鍵字,被開發主程式的程式設計師拿去使用,您可能以為似乎無傷大雅,其實將會衍生出一些重大問題。 其中一個就是專案的改版,上例中,開發Computation模組的程式設計師(John),在第一版開發的時候,因為沒有將CheckData()函式設為Private,導致開發主程式的人(Eric)在不知情的狀況底下拿去用了,在第一版的程式沒有問題,當程式要改版了, John覺得CheckData()這個函式不太合用,因此把它改掉(也許換了名子,也許換了功能)但是並沒有通知Eric,因為John覺得這個函式是Computation模組自己使用的,『應該』不會有其他的程式設計師用到才對(但是顯然他料錯了)。這會導致程式無法連結或是發生執行階段錯誤。 當發現錯誤了,專案經理只有兩種選擇,不是要John將函式還原,就是要Eric改寫程式不要用到CheckData()這個函式。不管是何者,都將會嚴重的影響程式開發進度,造成專案的延誤… 當程式很小,只有一位程式設計師的時候,這種問題看來影響不大,當程式架構非常大,超過10位程式設計師需要彼此合作溝通的時候,這個問題就出現了,程式越不嚴謹,隨著時間發生錯誤的機會就越高,出現這種錯誤,就會影響開發效率與時程,接著,公司的專案就會Delay,聽到Delay這個字,就表示要額外多花錢,專案成本膨脹,公司收入減少,開發人員獎金減少,客戶抱怨增加…

Demo-dataSource與DropDownList 習題 參考CH02-12的範例,建立一個BMI函式,當傳入身高,體重,則傳回該人的BMI值。 如果函式的回傳值型別設為Single,但主程式接收參數的變數型別為Integer,則會發生什麼狀況? 如果函式中參數的型別為String,但主程式傳遞給該函式的相對應變數為Integer型別,則會發生什麼狀況? 如果函式中參數的型別為Integer,但主程式傳遞給該函式的相對應變數為String型別,則會發生什麼狀況? Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 請撰寫一個函式,名稱為GetNumber,接收的參數為msg(String型別),並且回傳Integer型別的回傳值,必須具備顯示Msg並且要求使用者輸入數字的功能,以取代範例CH04-03程式碼中的4-5行和6-7行,讓範例CH04-03的主程式這麼寫,就可以完成一樣的功能: n1=GetNumber(“請輸入數字1:”) n2=GetNumber(“請輸入數字2:”) Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 請建立一個函式,可以傳入兩個或三個整數型態的參數,並針對傳入的參數做相乘的動作,當參數只傳入兩個時,則將兩個參數相乘,並將結果回傳,若傳入三個參數,則將這三個參數相乘,並把結果回傳。 Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 請試著透過My Class,找到下載網際網路上檔案的方法 請試著透過My Class,找到刪除一個本機電腦檔案(例如自己的C:\)的方法 請試著透過My Class,找到讓電腦『叮』一聲的方法 請試著透過My Class,偵測使用者是否按下鍵盤上的Number Lock,並顯示出來。 Demo-dataSource與DropDownList