版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章
認(rèn)識(shí)程式語(yǔ)言課程名稱:程式設(shè)計(jì)授課老師:________2024/8/161本章學(xué)習(xí)目標(biāo)
2024/8/1621.讓讀者瞭解軟體與程式語(yǔ)言的關(guān)係。2.認(rèn)識(shí)視覺(jué)化「Visual」程式語(yǔ)言的優(yōu)點(diǎn)及特性。本章內(nèi)容
2024/8/1631-1.認(rèn)識(shí)程式語(yǔ)言1-2.NETFramework簡(jiǎn)介1-3.VB6.0與VB20101-4物件導(dǎo)向設(shè)計(jì)1-5主控臺(tái)應(yīng)用程式1-6VisualBASIC2010語(yǔ)言操作環(huán)境1-7程式碼片斷管理員1-8習(xí)題1-1.認(rèn)識(shí)程式語(yǔ)言2024/8/164人與人之間的溝通必須要使用共通的語(yǔ)言(例如:國(guó)語(yǔ)、閩南語(yǔ)、英語(yǔ)…等),而人想要與電腦溝通,則一樣必須要用電腦看得懂的語(yǔ)言,即所謂的電腦程式語(yǔ)言(例如:Assemble、Basic、C、C++、JAVA、Pascal、Delphi、VisualBasic、ASP語(yǔ)言及ASP.NET2.0、VB2010、C#2010等新一代的程式語(yǔ)言)。而這些程式語(yǔ)言都只是「軟體」的一個(gè)子集合。1-1.1何謂軟體2024/8/165軟體(software)就是程式,它是由一連串的指令所組成,其主要功能就是達(dá)成某一特定的目的。在電腦系統(tǒng)中軟體是用來(lái)控制硬體,如果只有硬體而沒(méi)有軟體,則電腦被視為一堆廢鐵。因此,軟體與硬體缺一不可。就像人一樣,身軀(硬體)與精神(軟體)也是缺一不可的。如圖1-1所示:
圖1-1人與電腦的關(guān)係2024/8/166一般而言,軟體可分為兩大類(lèi)分別為:「系統(tǒng)軟體」和「應(yīng)用軟體」。如圖1-2所示。圖1-2軟體分類(lèi)架構(gòu)圖1-1.2程式語(yǔ)言的分類(lèi)2024/8/167一般而言,程式語(yǔ)言可分為兩大類(lèi):一為低階語(yǔ)言,另一為高階語(yǔ)言。而低階語(yǔ)言又可分為機(jī)械語(yǔ)言與組合語(yǔ)言。高階語(yǔ)言則可分為程序?qū)蛘Z(yǔ)言與非程序?qū)蛘Z(yǔ)言及自然語(yǔ)言。如圖1-3所示:圖1-3程式語(yǔ)言分類(lèi)架構(gòu)圖2024/8/168由於電腦只看懂機(jī)械語(yǔ)言,因此,我們利用高階語(yǔ)言在撰寫(xiě)程式之後,電腦並無(wú)法直接的執(zhí)行,必須要透過(guò)翻譯程式來(lái)翻譯為電腦可以接受的語(yǔ)言。一般而言,從撰寫(xiě)原始程式到執(zhí)行時(shí),必須要經(jīng)過(guò)一連串的步驟,例如編譯、連結(jié)、產(chǎn)生執(zhí)行檔及執(zhí)行結(jié)果。如圖1-4所示。2024/8/169圖1-4程式的執(zhí)行流程圖執(zhí)行步驟:原始程式
編譯
目的程式
連結(jié)
產(chǎn)生執(zhí)行檔
載入到記憶體
執(zhí)行結(jié)果
1-1.3程式語(yǔ)言的演進(jìn)2024/8/1610一、第一代語(yǔ)言---機(jī)器語(yǔ)言(Machinelanguages)
這是一種比較接近電腦的語(yǔ)言,亦即電腦可以直接執(zhí)行的機(jī)器碼,由於電腦內(nèi)部是使用0與1兩種狀態(tài)來(lái)表示資料及邏輯閘開(kāi)關(guān)的控制,因此,我們將電腦內(nèi)部由0與1所組成的資料稱之為「機(jī)器語(yǔ)言(machinelanguages)」。
一、第一代語(yǔ)言---機(jī)器語(yǔ)言(Machinelanguages)<續(xù)>2024/8/1611
因?yàn)樗且环N以0與1所構(gòu)成二進(jìn)位形式的碼,故並不適合人類(lèi)閱讀與學(xué)習(xí),也不適合用來(lái)進(jìn)行程式設(shè)計(jì)。如圖1-5所示:2024/8/1612
優(yōu)點(diǎn):它是以邏輯狀態(tài)0和1直接命令電腦,不需翻譯就可以直接執(zhí)行,所以速度最快。
缺點(diǎn):(1)不同的處理機(jī)(CPU),使用不同的機(jī)器語(yǔ)言,所以可攜性較差。
(2)只有兩種狀態(tài)0與1。因此,不僅難學(xué)、難懂、也不容易維護(hù)。一、第一代語(yǔ)言---機(jī)器語(yǔ)言(Machinelanguages)<續(xù)>二、第二代語(yǔ)言---組合語(yǔ)言(Assemblylanguages)2024/8/1613這是一種介於「高階語(yǔ)言」與「機(jī)器語(yǔ)言之間的語(yǔ)言,由於機(jī)器語(yǔ)言在使用上不方便,因此,工程師們便從機(jī)器語(yǔ)言中找出規(guī)則,以英文字、數(shù)字符號(hào)來(lái)重組機(jī)器語(yǔ)言,使它們變成較容易記憶的語(yǔ)言,這種語(yǔ)言便稱為「組合語(yǔ)言(Assemblylanguages)」。它是利用特定功能的符號(hào)指令稱為助譯碼(Mnemonicscode),例如:ADD代表「相加」、LDA代表「載入」、MOV代表「搬移」;這些指令比起機(jī)器語(yǔ)言來(lái)說(shuō)會(huì)較有意義、容易學(xué)習(xí),而負(fù)責(zé)翻譯的程式則稱之為組合程式(Assembler)或組譯器。二、第二代語(yǔ)言---組合語(yǔ)言(Assemblylanguages)<續(xù)>2024/8/1614由於每一種計(jì)算機(jī)(電腦)皆有其獨(dú)特的機(jī)器語(yǔ)言,因此每一種機(jī)器的組合語(yǔ)言各有不同。所以,可攜性(Portability)較差。並且較難撰寫(xiě)及維護(hù),因此,一般使用者較少使用組合語(yǔ)言設(shè)計(jì)程式。如圖1-6所示:
組合語(yǔ)言機(jī)器語(yǔ)言ADDMOVLDA110110010001110000000011111101101010圖1-6人和電腦溝通示意圖(二)三、第三代語(yǔ)言---程序?qū)蛘Z(yǔ)言(Procedure-OrientedLanguage)2024/8/1615這是一種類(lèi)似自然語(yǔ)言,它較具有結(jié)構(gòu)性,可以方便讓使用者撰寫(xiě)程式。但是,在撰寫(xiě)完成之後必須要再經(jīng)過(guò)編譯器(Compiler)或直譯器(Interpreter)轉(zhuǎn)換成「機(jī)器語(yǔ)言」之才交給電腦執(zhí)行。常見(jiàn)的編譯器有C、直譯器有BASIC均屬此類(lèi)。如圖1-7所示:高階語(yǔ)言(VB)機(jī)器語(yǔ)言IFScore>=60ThenMsgBox(“及格”)ElseMsgBox(“不及格”)EndIf110110010001110000000011111101101010101010101011101010111111圖1-7人和電腦溝通示意圖(三)四、第四代語(yǔ)言---非程序?qū)蛘Z(yǔ)言(NonProcedure-OrientedLanguage)2024/8/1616由於程序?qū)蛘Z(yǔ)言在開(kāi)發(fā)專案時(shí)成本較高、維護(hù)不易及重覆使用性低的缺點(diǎn)。因此,後來(lái)又發(fā)展出「非程序?qū)蛘Z(yǔ)言」,其設(shè)計(jì)上的優(yōu)點(diǎn)就是,只要告訴電腦”要做什麼(Whattodo)”,而不必告訴它”如何做(Howtodo)”。並且部份的程式碼會(huì)自動(dòng)產(chǎn)生(例如:ASP.NET2.0),因此,可以大大的縮減專案開(kāi)發(fā)的時(shí)間,並且程式在維護(hù)上也更有效率。四、第四代語(yǔ)言---非程序?qū)蛘Z(yǔ)言<續(xù)>2024/8/1617常見(jiàn)的非程序?qū)蛘Z(yǔ)言有下面兩種:
(1)結(jié)構(gòu)化查詢語(yǔ)言(SQL)(2)物件導(dǎo)向語(yǔ)言(Object-OrientedProgramming,OOP)(1)結(jié)構(gòu)化查詢語(yǔ)言(SQL)2024/8/1618比程序?qū)蛘Z(yǔ)言更容易使用的語(yǔ)言,使用者只需將步驟寫(xiě)出來(lái),而不必管電腦要如何去執(zhí)行,這樣的電腦語(yǔ)言稱為查詢語(yǔ)言(QueryLanguage);這種語(yǔ)言減輕了使用者程式設(shè)計(jì)的負(fù)擔(dān),常見(jiàn)的是資料庫(kù)查詢語(yǔ)言如:SQL。如圖1-8所示:
撰寫(xiě)查詢語(yǔ)言Select使用者所要看的欄位From資料表名稱Where過(guò)濾條件
執(zhí)行結(jié)果圖1-8查詢語(yǔ)言示意圖(2)物件導(dǎo)向語(yǔ)言(Object-OrientedProgramming,OOP)2024/8/1619所謂物件導(dǎo)向程式語(yǔ)言(Object-OrientedProgramming簡(jiǎn)稱OOP),是把程式設(shè)計(jì)的概念具體化、物件化,並以該物件的角度去分析和解決問(wèn)題,它不但突破了以往程序?qū)蛘Z(yǔ)言只能循序單向的設(shè)計(jì)缺失,更因物件的簡(jiǎn)便、維護(hù)容易及可重覆使用…等特性,而使得程式開(kāi)發(fā)的速度加快,因此成為最新一代程式語(yǔ)言的主流。常見(jiàn)的物件導(dǎo)向式語(yǔ)言有VisualBASIC2010、VisualC++、VB.NET、ASP.NET、C#...等等。如圖1-9所示:每一個(gè)按鈕都是獨(dú)立的物件,當(dāng)某一物件的程式有Bug時(shí),也不會(huì)影響其他的物件
五、第五代語(yǔ)言---自然語(yǔ)言(Naturallanguages)2024/8/1620就是我們?nèi)粘K玫恼Z(yǔ)言,如英文(english)、中文(chinese)等,這是最接近人類(lèi)所使用的語(yǔ)言。由於此種語(yǔ)言文法和語(yǔ)意上較為複雜,因此在電腦處理上較不容易,所以並不合適給予電腦處理,目前只用在人工智慧研究之一。如圖1-10所示:圖1-10自然語(yǔ)言示意圖1-1.4高階語(yǔ)言的種類(lèi)2024/8/1621既然低階語(yǔ)言在學(xué)習(xí)上較為困難,因此,一般的學(xué)習(xí)者都是利用高階語(yǔ)言來(lái)開(kāi)發(fā)系統(tǒng),而目前較常用的高階語(yǔ)言有下列數(shù)種。依發(fā)展的年代說(shuō)明如下:1.FORTRAN(FORmulaTRANslator)語(yǔ)言2.COBOL語(yǔ)言3.BASIC語(yǔ)言4.PASCAL語(yǔ)言5.C語(yǔ)言6.C++7.JAVA1-1.5何謂演算法?「演算法」在韋氏辭典中定義為:「在有限步驟內(nèi)解決數(shù)學(xué)問(wèn)題的程序」。我們可以把演算法(Algorithm)定義成:「解決問(wèn)題的方法」。【題目】製作蛋糕的方法,其步驟如下:一、撰寫(xiě)演算法應(yīng)遵守五點(diǎn)原則1.輸入(Input):不一定要有輸入。可能沒(méi)有,也可能是多個(gè)資料輸入。
【題目】製作蛋糕時(shí),必須要輸入:「雞蛋、麵粉及鮮奶」等食材?!菊n本例子】例如1:不需輸入如果想要取得系統(tǒng)目前的時(shí)間,不須要輸入,只要寫(xiě)一行now()
函數(shù),就可以輸出系統(tǒng)時(shí)間。例如2:必需輸入求某數(shù)為奇偶數(shù)時(shí),則必須先要有一個(gè)輸入整數(shù),才能進(jìn)行
判斷。一、撰寫(xiě)演算法應(yīng)遵守五點(diǎn)原則:(續(xù))2.明確性(Definiteness):每一行指令都必須明確,不可模稜兩可。
【題目】製作蛋糕時(shí),要加入多少的麵粉與雞蛋及要加熱多久,
必須明確,不可模稜兩可。
例如1:判斷某一數(shù)值是否為偶數(shù)。首先我們?cè)囍孟铝形淖謥?lái)加以描述:
(1)輸入一個(gè)正整數(shù)。
(2)作餘除運(yùn)算是否為0。
(3)為0即為偶數(shù)。以上描述看來(lái)似乎正確,但是從演算法觀點(diǎn)來(lái)看,其中的第(2)點(diǎn)並不符合「明確性」,因它並未說(shuō)明「餘除運(yùn)算」是如何運(yùn)算,容易造成混淆與不解。我們應(yīng)該改寫(xiě)為:
(1)輸入一個(gè)正整數(shù)N。
(2)如果N除以2,其餘數(shù)為0。
(3)則其N(xiāo)為偶數(shù)。不具明確性具明確性【課本例子】【課本例子】例如2:「用功的學(xué)生才能領(lǐng)獎(jiǎng)學(xué)金」就不具有明確性,因?yàn)槊恳粋€(gè)人對(duì)用功的定義可能不盡相同,而如果改為「成績(jī)90以上的學(xué)生才能領(lǐng)獎(jiǎng)學(xué)金」就是具有明確性,因?yàn)?0分是一個(gè)比較客觀的定義。一、撰寫(xiě)演算法應(yīng)遵守五點(diǎn)原則:(續(xù))3.有限性(Finiteness):演算法不能有無(wú)窮迴路,必須能終止執(zhí)行,
亦即必須在有限的步驟內(nèi)完成。
【題目】製作蛋糕必須在有限的步驟內(nèi)完成【課本例子】由於演算法並非是真正可以執(zhí)行的程式。但是,真正的程式是可以有無(wú)窮迴路的動(dòng)作。例如:Windows作業(yè)系統(tǒng)(系統(tǒng)程式)除非系統(tǒng)關(guān)機(jī)或當(dāng)機(jī),否則它會(huì)
永遠(yuǎn)執(zhí)行一個(gè)「等待迴圈」,來(lái)等待使用者從鍵盤(pán)輸入或其他
的輸入設(shè)備。一、撰寫(xiě)演算法應(yīng)遵守五點(diǎn)原則:(續(xù))4.正確性(Correctness):既然演算法是解決問(wèn)題的方法,因此,
正確性是最基本的要求。
【題目】製作出來(lái)的蛋糕必須要正確,亦即符合使用者的需求【課本例子】例如:以下判斷某數(shù)為奇偶數(shù)的演算法,雖然符合「明確性」,但是
「不正確」,因?yàn)镹除以2,其餘數(shù)為0,則N應(yīng)該為「偶數(shù)」,
而非「奇數(shù)」。
輸入一個(gè)正整數(shù)N。
如果N除以2,其餘數(shù)為0。
則其N(xiāo)為奇數(shù)。
應(yīng)該改為「偶數(shù)」
一、撰寫(xiě)演算法應(yīng)遵守五點(diǎn)原則:(續(xù))5.輸出(Output):至少一個(gè)輸出。
【題目】在製作蛋糕時(shí),在輸入「雞蛋、麵粉及鮮奶」之後,一定會(huì)有輸出。2024/8/1633例如:在電腦中,處理資料的基本過(guò)程有三個(gè)步驟:輸入
處理
輸出
(原始資料)(程式)(有用的資訊)
所以,使用電腦來(lái)為我們處理資料時(shí),有可能是系統(tǒng)自動(dòng)接收到一個(gè)訊號(hào),來(lái)當(dāng)作輸入資料,但是系統(tǒng)至少會(huì)輸出一項(xiàng)讓使用者參考的有用資訊。
【課本例子】二、描述演算法有三種方法(一)文字?jǐn)⑹觥径x】演算法可用文字來(lái)加以描述,但是會(huì)比較不精確,因此一般較
不常用。【題目】
請(qǐng)利用「文字?jǐn)⑹觥箒?lái)描述使用者登入帳號(hào)與密碼時(shí),系統(tǒng)檢查的過(guò)程?!窘獯稹坎襟E一:輸入使用者帳號(hào)與密碼步驟二:判斷帳號(hào)與密碼是否正確步驟三:如果正確時(shí),則可以登入系統(tǒng)否則,就無(wú)法登入!(二)流程圖(Flowchart)【定義】利用圖形方式來(lái)表達(dá)欲解決問(wèn)題的步驟。【題目】請(qǐng)利用「流程圖」來(lái)描述使用者登入帳號(hào)與密碼時(shí),系統(tǒng)檢查的過(guò)程?!窘獯稹空f(shuō)明:流程圖可以協(xié)助程式設(shè)計(jì)者設(shè)計(jì)程式,可增加程式的可讀性。(三)虛擬碼(PseudoCode)【定義】兼具文字描述及流程圖的優(yōu)點(diǎn),其方式是用文字摻雜程式語(yǔ)言,
來(lái)描述解題步驟與方法。【題目】請(qǐng)利用「虛擬碼」敘述使用者登入帳號(hào)與密碼時(shí),系統(tǒng)檢查的過(guò)程?!窘獯稹?1)Input:UserName,Password(2)IF(UserNameAndPassword)ALLTrueOutput:YouCanPass!elseOutput:YouCannotPass!說(shuō)明:在資料結(jié)構(gòu)中,一般都是利用「虛擬碼」來(lái)表示演算法。一、流程圖(Flowchart)【定義】利用圖形方式來(lái)表達(dá)欲解決問(wèn)題的步驟?!緝?yōu)點(diǎn)】1.它可協(xié)助程式設(shè)計(jì)者設(shè)計(jì)更周詳?shù)某淌?.可增加程式的可讀性3.對(duì)於初學(xué)者而言可幫助奠定良好的程式設(shè)計(jì)基礎(chǔ)【作法】分析那些資料是要「輸入」,經(jīng)過(guò)「處理」之後,要「輸出」
那些結(jié)果?!纠L製原則】1.流程圖必須使用標(biāo)準(zhǔn)符號(hào),便於閱讀和分析。
2.流程圖中的文字力求簡(jiǎn)潔、扼要,而且明確可行。
3.繪製方向應(yīng)由上而下,由左至右。
4.流程線條避免太長(zhǎng)或交叉,可多用連接符號(hào)。
延伸學(xué)習(xí)<觀念>一、流程圖(Flowchart)<續(xù)>【舉例】請(qǐng)繪出使用者登入「帳號(hào)」與「密碼」時(shí),系統(tǒng)檢查的流程圖。提示:步驟1:輸入帳號(hào)與密碼
<輸入>步驟2:檢查是否正確
<處理>步驟3.1:正確時(shí),則顯示Pass。
<輸出>步驟3.2:不正確時(shí),則顯示NoPass。
<輸出>
延伸學(xué)習(xí)<練習(xí)>二、虛擬碼(PseudoCode)【比較「流程圖」與「虛擬碼」】【題目】比較1+2+3+…+10的「流程圖」與「虛擬碼」。
延伸學(xué)習(xí)<比較>(1)設(shè)Count=1,Total=0;(2)Total=Total+Count;(3)Count=Count+1;(4)若Count<=10則回步驟(2)(5)印出Total1-1.6程式設(shè)計(jì)概念我們要開(kāi)始程式設(shè)計(jì)時(shí),一定要進(jìn)行下面五個(gè)步驟:步驟1.分析所要解決的問(wèn)題(需求)說(shuō)明:(1)首先要瞭解問(wèn)題的需求及條件。(2)確定要輸入那些資料。(3)確定要輸出那些資訊報(bào)表。1-1.6程式設(shè)計(jì)概念(續(xù))步驟2.設(shè)計(jì)解題的步驟(演算法)說(shuō)明:撰寫(xiě)演算法可以利用(1)文字?jǐn)⑹?2)流程圖(3)虛擬碼來(lái)表示解決問(wèn)題的步驟。1-1.6程式設(shè)計(jì)概念(續(xù))步驟3.編寫(xiě)程式
(程式碼)說(shuō)明:選擇適當(dāng)?shù)某淌秸Z(yǔ)言,將演算法的步驟寫(xiě)成一個(gè)完整的程式。1-1.6程式設(shè)計(jì)概念(續(xù))步驟4.上機(jī)測(cè)試、偵測(cè)錯(cuò)誤
(偵錯(cuò))說(shuō)明:一個(gè)「有用性」及「易用性」的程式,必須要經(jīng)過(guò)多次的測(cè)試,若有錯(cuò)誤,立即更正,直到正確無(wú)誤為止。1-1.6程式設(shè)計(jì)概念(續(xù))步驟5.編寫(xiě)程式說(shuō)明書(shū)(可執(zhí)行)說(shuō)明:一個(gè)功能強(qiáng)而完整的程式,使用者就會(huì)願(yuàn)意使用,因此必須有使用說(shuō)明書(shū),以便於別人使用或日後的維護(hù)?!緦?shí)例】計(jì)算國(guó)文與英文的平均成績(jī),並依照平均成績(jī)來(lái)求顯示
「及格」與「不及格」?!窘獯稹?.分析及定義問(wèn)題:兩個(gè)等級(jí)分別如下:(1)及格:60(含)以上。(2)不及格:60以下。2.畫(huà)出整合問(wèn)題的流程圖或撰寫(xiě)問(wèn)題的演算法。如下圖所示。3.撰寫(xiě)及建立程式模組題目:計(jì)算平均成績(jī),並判斷是否及格0102030405060708091011PrivateSubButton1_Click(……)HandlesButton1.Click
DimC_Score,E_Score,AverageAsIntegerC_Score=60E_Score=70Average=(C_Score+E_Score)/2
IfAverage>=60ThenMsgBox("及格")ElseMsgBox("不及格")EndIfEndSub4.對(duì)每一個(gè)程式模組進(jìn)行測(cè)試及除錯(cuò),直到?jīng)]有錯(cuò)誤為止當(dāng)使用者輸入國(guó)文為60分,英文為61分時(shí),是否可以計(jì)算出平均成績(jī)?yōu)?0.5,如果沒(méi)有則必須要進(jìn)行除錯(cuò),亦即要將Average的資料型態(tài)改為float(浮點(diǎn)數(shù))1-1.7為什麼要撰寫(xiě)程式?主要的目的:快速解決「複雜的問(wèn)題」。例如1:小華問(wèn):小明請(qǐng)幫我計(jì)算1加到10的總和。
小明說(shuō):1+2+3+…+10=55大家都會(huì),太簡(jiǎn)單了!1-1.7為什麼要撰寫(xiě)程式?(續(xù))例如2:小華又問(wèn):小明請(qǐng)幫我計(jì)算1加到50000時(shí)。小明則說(shuō):太困難了,我無(wú)法馬上計(jì)算出結(jié)果。但是我可以利用
「撰寫(xiě)程式」來(lái)處理。說(shuō)明:因此,我們可以非常清楚的知道,程式語(yǔ)言幫忙人類(lèi)
「解決複雜的問(wèn)題」。1-1.8一個(gè)好程式需要滿足條件一、正確性(Correctness)二、效率性(Performance)三、可維護(hù)性(Maintainable)一、正確性(Correctness)既然演算法是解決問(wèn)題的方法,所以正確性是一個(gè)好程式最基本的要求。例如:設(shè)計(jì)一個(gè)判斷奇偶數(shù)的程式說(shuō)明:上面的程式處理過(guò)程中,由於程式不正確,所以產(chǎn)生錯(cuò)誤的結(jié)果。二、效率性(Performance)指程式真正執(zhí)行時(shí)所必須要花費(fèi)的時(shí)間。一般評(píng)估執(zhí)行時(shí)間是依程式碼所被執(zhí)行的總次數(shù)來(lái)計(jì)算。亦即所謂的「頻率次數(shù))」當(dāng)頻率次數(shù)愈高時(shí),代表所需的執(zhí)行時(shí)間愈長(zhǎng)。例如:計(jì)算下列程式中變數(shù)Count被執(zhí)行的次數(shù)為何?三、可維護(hù)性(Maintainable)一個(gè)好的程式,不只需要有效率地被正確地執(zhí)行之外,也必須要考慮程式的可讀性、及未來(lái)修改和擴(kuò)充性,這屬於程式設(shè)計(jì)方法和風(fēng)格的問(wèn)題,例如:使用模組化來(lái)設(shè)計(jì)程式和加上完整程式註解的說(shuō)明。三、可維護(hù)性(Maintainable)(續(xù))(一)縮排【使用時(shí)機(jī)】在使用巢狀結(jié)構(gòu)時(shí),必須特別需要。
使用「縮排」技巧
未使用「縮排」技巧三、可維護(hù)性(Maintainable)(續(xù))(二)註解【定義】它是一種「非執(zhí)行的敘述」亦即是給人看的,而電腦不會(huì)去執(zhí)
行它。此功能就是用來(lái)說(shuō)明某一段程式碼的作用與目的。1.使用單引號(hào)「'」的使用時(shí)機(jī):可以寫(xiě)在程式碼的後面或單獨(dú)一行註解。2.使用REM的使用時(shí)機(jī):只能寫(xiě)成單獨(dú)一行註解。REM===設(shè)計(jì)一個(gè)求圓面積與圓周長(zhǎng)的程式===ConstPIAsSingle=3.14'宣告「圓周率」為.14的常數(shù)三、可維護(hù)性(Maintainable)(續(xù))(三)變數(shù)及函數(shù)名稱的命名
好的變數(shù)宣告命名說(shuō)明:爾後維護(hù)時(shí),看到變數(shù)名稱就可以得知變數(shù)的意義。
不好的變數(shù)宣告命名說(shuō)明:爾後維護(hù)時(shí),無(wú)法馬上得知A與B變數(shù)所代表的意思。1-2.NETFramework簡(jiǎn)介2024/8/1657.NET編譯VC#程式VB程式其他程式語(yǔ)言MSIL(中介語(yǔ)言)VC#應(yīng)用程式VB應(yīng)用程式其他程式語(yǔ)言設(shè)計(jì)的應(yīng)用程式
程式語(yǔ)言可跨平臺(tái)傳遞資料不管是哪一種程式語(yǔ)言,最終都要編譯成中介語(yǔ)言(MSIL),所有程式及程式元件之間的溝通介面都是以中介語(yǔ)言(MSIL)為基準(zhǔn)。1-2.1.NETFramework的架構(gòu)2024/8/1658NETFramework大致可分為三部分,分別為共通語(yǔ)言規(guī)範(fàn)(CommonLanguageSpecification)、共通語(yǔ)言執(zhí)行環(huán)境(CommonLanguageRuntime)及基礎(chǔ)類(lèi)別庫(kù)(BaseClassLibrary)。如下圖所示。1-2.2共通語(yǔ)言規(guī)範(fàn)
(CommonLanguageSpecification)2024/8/1659在.NETFramework平臺(tái)中,它大約可以相容25種不同的程式語(yǔ)言,例如:VB,C#,J#,C++等。而程式設(shè)計(jì)師不需要學(xué)會(huì)每一種程式語(yǔ)言,只要學(xué)會(huì)其中一種語(yǔ)言即可,並遵守共通語(yǔ)言規(guī)範(fàn)的情況下,每一種程式語(yǔ)言都可以相互轉(zhuǎn)換為與平臺(tái)無(wú)關(guān)的中介語(yǔ)言(MSIL)。其最主要的目的就是不同的程式語(yǔ)言可以相互使用所須要的資源,而不會(huì)有轉(zhuǎn)換上的問(wèn)題。1-2.3共通語(yǔ)言執(zhí)行環(huán)境
(CommonLanguageRuntime)2024/8/1660
「Runtime」指的是電腦在編譯某種程式語(yǔ)言的執(zhí)行時(shí)期。而只要以程式語(yǔ)言撰寫(xiě)出來(lái)的程式,就必須要Runtime來(lái)執(zhí)行,而且不同的程式語(yǔ)言所使用的Runtime也不相同。因?yàn)镽untime提供了程式語(yǔ)言所必須配備的函式與物件,而各種語(yǔ)言的函式與物件都不盡相同,所以各種語(yǔ)言都有著自己的Runtime,無(wú)法共用。但是.NETFramework以共通語(yǔ)言執(zhí)行環(huán)境(CLR)來(lái)解決了這個(gè)共用問(wèn)題,IL(IntermediateLanguage)這個(gè)中介語(yǔ)言(介於程式碼與機(jī)器碼之間的語(yǔ)言。1-2.4基礎(chǔ)類(lèi)別庫(kù)(BaseClassLibrary)2024/8/1661不同的程式語(yǔ)言有自己的「Runtime」,而物件類(lèi)別資料庫(kù)也是一樣。各種語(yǔ)言所用的物件類(lèi)別標(biāo)準(zhǔn)不一,「基礎(chǔ)類(lèi)別庫(kù)」提供了所有.NET程式語(yǔ)言的應(yīng)用物件,將各種語(yǔ)言的物件類(lèi)別作整合,建立一個(gè)所有語(yǔ)言都可共用的物件類(lèi)別資料庫(kù),例如繪圖、多媒體、郵件管理等物件類(lèi)別。1-3VB6.0與VB20102024/8/1662
最大分別是,VB6.0不是物件導(dǎo)向程式,而只是引用物件導(dǎo)向的概念。但VB2010才是真正物件導(dǎo)向程式的語(yǔ)言。一個(gè)真正物件導(dǎo)向的語(yǔ)言,必須要具備以下的特性:
1.抽象化(Abstraction)2.封裝性(Encapsulation)
3.繼承性(Inheritance)
4.多形性(Polymorphism)但是,VB6.0都沒(méi)有具備以上的這些特性。而VB2010則都則備了。1-4物件導(dǎo)向設(shè)計(jì)2024/8/1663
使用結(jié)構(gòu)化程式設(shè)計(jì),的確簡(jiǎn)化了我們撰寫(xiě)程式的工作,也提高了程式的可維護(hù)性。但是,結(jié)構(gòu)化程式設(shè)計(jì)在開(kāi)發(fā)大型專案時(shí),專注於功能面(函式)的開(kāi)發(fā),而往往忽略了功能所要處理的資料。被處理的「資料」與「功能」在結(jié)構(gòu)化的程式設(shè)計(jì)是分離的關(guān)係。在大型專案的開(kāi)發(fā)上,由於要處理的問(wèn)題,相對(duì)的要複雜許多,如果,「資料」與「函式」之間沒(méi)有關(guān)聯(lián)性,很容易發(fā)生錯(cuò)誤,維護(hù)起來(lái)也很不方便。後來(lái),物件導(dǎo)向程式設(shè)計(jì)的興起,就是為了解決結(jié)構(gòu)化程式設(shè)計(jì)所面臨的「資料」與「功能」分離的問(wèn)題。常見(jiàn)的物件導(dǎo)向語(yǔ)言2024/8/1664常見(jiàn)的物件導(dǎo)向語(yǔ)言程式語(yǔ)言適用的領(lǐng)域C#或C++適合用來(lái)開(kāi)發(fā)各種系統(tǒng)軟體及應(yīng)用軟體Java適合用來(lái)開(kāi)發(fā)網(wǎng)際網(wǎng)路的應(yīng)用程式VisualBasic2010適合用來(lái)開(kāi)發(fā)視窗應(yīng)用程式1-5主控臺(tái)應(yīng)用程式2024/8/1665主控臺(tái)應(yīng)用程式(ConsoleApplication)是物件導(dǎo)向VB中最簡(jiǎn)單的一種應(yīng)用程式,其輸出環(huán)境類(lèi)似DOS,大都是以純文字介面來(lái)顯示,因?yàn)樗且悦盍休斎敕绞綖橹鳌!緝?yōu)點(diǎn)】程式較為簡(jiǎn)潔並且執(zhí)行速度較快【缺點(diǎn)】無(wú)法提供有親和力的使用者介面。因此,筆者不建議一般的初學(xué)者使用此方法來(lái)撰寫(xiě)程式。
方法及步驟:2024/8/1666
主控臺(tái)應(yīng)用程式就是利用模組(Module)來(lái)完成,其原理為由一個(gè)Main()的主程序,其中包含所關(guān)相關(guān)的程式碼。而我們可以利用Console物件所提供的方法和屬性來(lái)處理,而在模式中也可以包含其他的副程式或函數(shù),並且不需要由屬性視窗去設(shè)定任何的屬性資料。安裝好VisualBasic2010之後,你就可以開(kāi)始撰寫(xiě)VB2010程式了,其步驟如下所示:步驟一:在您的桌面選取「開(kāi)始」--->「程式集」--->「MicrosoftVisualBasic2010Express版」即可進(jìn)入了。如果是第一
次使用時(shí),則必須要「建立一個(gè)專案」,其步驟如下所示:2024/8/1667步驟一:在您的桌面選取「開(kāi)始」--->「程式集」--->「MicrosoftVisualBasic2010Express版」即可進(jìn)入了。如果是第一
次使用時(shí),則必須要「新增專案」,其步驟如下所示:
2024/8/1668步驟二:在「新增專案」對(duì)話方塊中,點(diǎn)選「主控臺(tái)應(yīng)用程式」,再按「確
定」。
2024/8/1669在按「確定」鈕之後,即可完成新專案的建立,此時(shí)VB2010就會(huì)自動(dòng)建立一個(gè)包含程式基本架構(gòu)的Module.vb檔案。如下圖所示:
2024/8/1670步驟三:撰寫(xiě)程式
題目:第一個(gè)主控臺(tái)程式程式檔案名稱ch1-5.sln0102030405060708ModuleModule1SubMain()Console.WriteLine("我的第一個(gè)主控臺(tái)程式")Console.WriteLine()'換行Console.WriteLine("設(shè)計(jì)者:李春雄
博士")Console.Read()EndSubEndModule步驟四:執(zhí)行結(jié)果1-6VisualBASIC語(yǔ)言操作環(huán)境2024/8/1671雖然我們也可以利用主控臺(tái)(Console)應(yīng)用程式下來(lái)設(shè)計(jì)Windows表單的輸出入介面,但這對(duì)於初學(xué)者而言,是一件較不易學(xué)習(xí)之事。因此,若能在「Windows應(yīng)用程式模式」下,使用VisualBasic的整合開(kāi)發(fā)環(huán)境(IDE),利用工具箱所提供的工具,如此,可以讓設(shè)計(jì)者不需要撰寫(xiě)任何的程式碼便很輕易地製作出所需要的輸出入介面,如按鈕、文字方塊…等控制項(xiàng),因此,程式設(shè)計(jì)者就只要將時(shí)間專注於了解使用者的需求及撰寫(xiě)程式流程的核心,不但節(jié)省設(shè)計(jì)輸出入畫(huà)面的時(shí)間而且很容易維護(hù)。一、程序?qū)?ProcedureOriented)
2024/8/1672先寫(xiě)「程式碼」之後,才能呈現(xiàn)「畫(huà)面」,並且只能呈現(xiàn)「文字化」的畫(huà)面。缺點(diǎn):沒(méi)有「視覺(jué)化」的操作介面。請(qǐng)輸入半徑:3面積:28.26周長(zhǎng):18.84功能鍵說(shuō)明R:代表計(jì)算C:取消E:結(jié)束二、物件導(dǎo)向(ObjectOriented)
73VisualBasic將傳統(tǒng)的Basic從Dos移轉(zhuǎn)到Windows作業(yè)系統(tǒng)下執(zhí)行,在編寫(xiě)程式時(shí),必須先建立新的表單(Form),然後才能開(kāi)始建立「物件」(如Button(按扭)、Label(標(biāo)籤),TextBox(文字框)……等),緊接著就可以設(shè)定物件的「屬性」。最後,撰寫(xiě)程式相關(guān)的程式碼。如下圖所示:因?yàn)閂isualBasic是一種「視覺(jué)化」的開(kāi)發(fā)工具,也就是說(shuō),VB程式所設(shè)計(jì)出來(lái)的畫(huà)面,使用者只要利用滑鼠就可以輕鬆的操作所需要的功能。亦即先設(shè)計(jì)「畫(huà)面」,再撰寫(xiě)「程式碼」,並且是以「圖形化」的呈現(xiàn)方式。Button物件TextBox物件Button物件Label物件1-6.1如何啟動(dòng)VB20102024/8/1674安裝好VisualBasic2010之後,你就可以開(kāi)始撰寫(xiě)VB2010程式了,其步驟如下所示:步驟一:在您的桌面選取「開(kāi)始」--->「程式集」--->「MicrosoftVisualBasic2010Express版」即可進(jìn)入了。如果是第
一次使用時(shí),則必須要「新增專案」,其步驟如下所示:
2024/8/1675步驟二:在「新增專案」對(duì)話方塊中,選按「Windows應(yīng)用程式」
並輸入檔案名稱之後,再按「確定」。如下圖所示:
2024/8/1676步驟三:認(rèn)識(shí)VB2010整合環(huán)境畫(huà)面VisualBasic2010工作環(huán)境,分別有六大項(xiàng)視窗工作環(huán)境,
如下圖所示:
功能表列
一般工具列
工具箱
表單視窗
方案總管
屬性視窗2024/8/1677基本上,完整VB2010視窗如上圖所示,但有時(shí)候會(huì)缺少了某些視窗,此時(shí)你可以按「檢視」功能表列,再選取所要顯示的視窗,即可顯示之(例如:「檢視/工具箱」即可顯示工具箱)。如果需要調(diào)整視窗大小時(shí),可以將游標(biāo)至於視窗邊緣,當(dāng)出現(xiàn)雙箭頭時(shí)即可拖曳來(lái)調(diào)整。其完整的說(shuō)明如下所示:(一)功能表列你可以在功能表列中選擇所需要的功能。例如:要使用「即時(shí)運(yùn)算視窗」時(shí),則選擇「?jìng)慑e(cuò)/視窗/即時(shí)運(yùn)算」
選項(xiàng)。2024/8/1678(二)一般工具列除了你可以使用功能表列來(lái)選擇你需所的功能之外,VB2010也提供一般使用者常用的工具放在工具列中,讓使用者快速點(diǎn)選。例如:當(dāng)我們撰寫(xiě)完成程式之後,我們可以直接在「一般工具列」中按「
」來(lái)執(zhí)行程式。而不需要在功能表列點(diǎn)選「?jìng)慑e(cuò)/開(kāi)始偵錯(cuò)」等程序。在VB中的狀態(tài)可分為:設(shè)計(jì)、中斷及執(zhí)行模式三種,如下圖所示:2024/8/1679
(三)工具箱視窗(ToolBox)在工具箱中放置了許多群組的控制項(xiàng),例如:1.所有WindowsForm群組、2.通用控制項(xiàng)群組、3.容器群組、4.功能表5.工具列群組6.資料群組7.元件群組8.列印群組9.對(duì)話方塊群組10.一般群組等。
2024/8/1680我們最常使用的群組為「通用控制項(xiàng)群組」,其基本元件有標(biāo)籤元件、文字方塊元件及按鈕元件,如下圖所示。這些基本元件一般稱之為「控制元件」或「控制項(xiàng)(Control)」,每個(gè)控制項(xiàng)都是一個(gè)完整的物件,具有屬性、事件和方法,我們只要學(xué)習(xí)如何使用它,就可以設(shè)計(jì)出專業(yè)的視窗應(yīng)用程式了。常用的控制項(xiàng)如下所示:滑鼠指標(biāo)Button(命令鈕)CheckBox(核取方塊)CheckedListBox(核取清單方塊)ComboBox(下拉式清單方塊)Label(標(biāo)籤
)LinkLabel超連結(jié)標(biāo)籤ListBox(清單方塊)MaskedTextBox遮罩文字方塊設(shè)計(jì)PictureBox(圖形)RadioButton單選鈕物件RichTextBox豐富文字方塊TextBox(文字框)ToolTip(工具列)WebBrowse
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年水資源保護(hù)管理合同
- 2024年生態(tài)園林幕墻工程分包合同3篇
- 2024年樹(shù)木購(gòu)銷(xiāo)合同
- 2024年版高端智能制造生產(chǎn)線購(gòu)買(mǎi)合同
- 2024版云計(jì)算服務(wù)提供與使用合同5篇
- 2024年度研發(fā)合作合同研發(fā)內(nèi)容與成果分配詳細(xì)約定2篇
- 2024年農(nóng)場(chǎng)活牛買(mǎi)賣(mài)合同3篇
- 2024年度網(wǎng)絡(luò)安全評(píng)估合同-評(píng)估信息系統(tǒng)安全性2篇
- 2024年版藥品銷(xiāo)售合作協(xié)議
- 2024年基礎(chǔ)銷(xiāo)售合同3篇
- 初中數(shù)學(xué)的有效教學(xué)(小課課題研究)
- 腸道門(mén)診管理課件
- 小學(xué)禁毒教育教學(xué)大綱
- 土石方外運(yùn)方案
- 2023-2024學(xué)年四川省成都市高一上英語(yǔ)期末考試題(含答案和音頻)
- 2024年中考英語(yǔ)二輪復(fù)習(xí)學(xué)案連詞
- 肛腸科患者的疼痛管理策略與實(shí)踐經(jīng)驗(yàn)
- 風(fēng)電項(xiàng)目投資計(jì)劃書(shū)
- 山東省醫(yī)療收費(fèi)目錄
- 感恩祖國(guó)主題班會(huì)通用課件
- 栓釘焊接工藝高強(qiáng)螺栓施工工藝
評(píng)論
0/150
提交評(píng)論