51面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想_第1頁(yè)
51面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想_第2頁(yè)
51面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想_第3頁(yè)
51面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想_第4頁(yè)
51面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想一、教學(xué)目標(biāo)1、知識(shí)與技能(1)認(rèn)識(shí)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想和面向?qū)ο笏枷氲挠蓙?lái),并能夠舉例說(shuō)明現(xiàn)實(shí)世界與面向?qū)ο笙到y(tǒng)之間的對(duì)應(yīng)關(guān)系。(2)認(rèn)識(shí)面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)越性并初步理解其實(shí)現(xiàn)的機(jī)制。2、過(guò)程與方法經(jīng)歷分析、調(diào)試解決同一問(wèn)題的兩種不同實(shí)現(xiàn)思想的程序,初步理解面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)勢(shì)及面向過(guò)程程序設(shè)計(jì)的缺陷。3、情感態(tài)度和價(jià)值觀(1)關(guān)注傳統(tǒng)結(jié)構(gòu)化程序設(shè)計(jì)存在的問(wèn)題。(2)產(chǎn)生學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)的愿望。(3)關(guān)注到面向?qū)ο蠹夹g(shù)是當(dāng)前程序設(shè)計(jì)的重要發(fā)展方向。二、重點(diǎn)難點(diǎn)1、教學(xué)重點(diǎn)(1)傳統(tǒng)結(jié)構(gòu)化程序設(shè)計(jì)存在的問(wèn)題(2)面向?qū)ο蟪绦蛟O(shè)計(jì)所具有的優(yōu)點(diǎn)。2、教學(xué)

2、難點(diǎn)(1)面向?qū)ο笏枷氲漠a(chǎn)生。(2)傳統(tǒng)結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)的基本點(diǎn)比較。(3)實(shí)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本機(jī)制。三、教學(xué)環(huán)境1、教材處理教材以廣東教育出版社出版的信息技術(shù)(選修一)算法與程序設(shè)計(jì)第五章第一節(jié)內(nèi)容為結(jié)構(gòu)框架,部分實(shí)例選取上??平贪娴钠胀ǜ咧行畔⒓夹g(shù)課程實(shí)驗(yàn)教材算法與程序設(shè)計(jì),力爭(zhēng)做到說(shuō)理透徹,易于理解并提供較多的理論和實(shí)踐操練以鞏固所學(xué)內(nèi)容。教學(xué)方法采用采用講解、任務(wù)驅(qū)動(dòng)、實(shí)踐和學(xué)生自主學(xué)習(xí)相結(jié)合的學(xué)習(xí)方法。2、預(yù)備知識(shí)學(xué)生已學(xué)完教材前四章內(nèi)容,基本掌握了傳統(tǒng)的面向過(guò)程結(jié)構(gòu)化程序設(shè)計(jì)方法,有一定的程序設(shè)計(jì)基礎(chǔ),課前建議學(xué)生預(yù)習(xí)課文內(nèi)容,初步了解本節(jié)教學(xué)內(nèi)容與目標(biāo)。3、

3、硬件要求建議本節(jié)課在多媒體電腦教室中完成,最好有廣播教學(xué)系統(tǒng)或投影儀,為拓展學(xué)習(xí),學(xué)生機(jī)應(yīng)允許上互聯(lián)網(wǎng)。4、所需軟件:學(xué)生機(jī)要安裝VB6.0或以上版本。5、所需課時(shí):1個(gè)課時(shí),如無(wú)預(yù)習(xí),課程將較為緊湊。四、教學(xué)過(guò)程導(dǎo)入:1、簡(jiǎn)要介紹本節(jié)課的教學(xué)目標(biāo):認(rèn)識(shí)面向?qū)ο笏枷氲挠蓙?lái)及其基本思想,通過(guò)閱讀或調(diào)試用兩種不同思想實(shí)現(xiàn)解決同一問(wèn)題的兩段程序,認(rèn)清面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)和結(jié)構(gòu)化程序設(shè)計(jì)的缺陷。2、問(wèn)題導(dǎo)入。請(qǐng)同學(xué)們閱讀本節(jié)課文最前面的引導(dǎo)文字段,一分鐘后請(qǐng)同學(xué)發(fā)言。通過(guò)引導(dǎo)拋出結(jié)論:“結(jié)構(gòu)化程序設(shè)計(jì)存在固有的缺陷:以功能為核心,數(shù)據(jù)和函數(shù)分開(kāi),使得后期維護(hù)難,安全性差等且不適合解決復(fù)雜問(wèn)題。” (

4、一)面向?qū)ο笏枷氲漠a(chǎn)生1、面向?qū)ο蠹夹g(shù)是程序設(shè)計(jì)發(fā)展的必然趨勢(shì)通過(guò)前面的學(xué)習(xí)我們知道,程序設(shè)計(jì)語(yǔ)言發(fā)展到現(xiàn)在經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言再到高級(jí)語(yǔ)言。高級(jí)語(yǔ)言可分為 = 1 * GB3 面向過(guò)程的程序設(shè)計(jì)語(yǔ)言 = 2 * GB3 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言的出現(xiàn)為計(jì)算機(jī)的應(yīng)用開(kāi)辟了廣闊的前景。計(jì)算機(jī)能解決的問(wèn)題從純計(jì)算問(wèn)題開(kāi)始發(fā)展到現(xiàn)在能處理現(xiàn)實(shí)世界方方面面的問(wèn)題。面向過(guò)程的程序設(shè)計(jì)方法以算法(即程序功能)為中心,把過(guò)程和數(shù)據(jù)作為互相對(duì)立的部分,即“程序=算法+數(shù)據(jù)結(jié)構(gòu)”。因此當(dāng)描述事物的數(shù)據(jù)結(jié)構(gòu)發(fā)生了改變,所有與該數(shù)據(jù)結(jié)構(gòu)相關(guān)的語(yǔ)句、過(guò)程和函數(shù)都要重新設(shè)計(jì)。要使數(shù)據(jù)與程序始終保持相容,已成

5、為程序員開(kāi)發(fā)的一個(gè)沉重負(fù)擔(dān)。還有面向過(guò)程程序設(shè)計(jì)方法存在著安全性差、代碼可重用性差等缺陷,隨著軟件開(kāi)發(fā)規(guī)模的不斷擴(kuò)大,結(jié)構(gòu)化的方法已不能駕馭軟件開(kāi)發(fā)的過(guò)程。人們從編程解決問(wèn)題的實(shí)踐中逐漸總結(jié)出:以接近人們思維方式來(lái)編程解決問(wèn)題的面向?qū)ο蠹夹g(shù)代表了程序設(shè)計(jì)發(fā)展的方向。因?yàn)樗茏龅礁咝省⒁拙S護(hù)、安全性強(qiáng)、代碼可重用率高。2、面向?qū)ο蠹夹g(shù)的思想面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,簡(jiǎn)稱OOP),是基于一種很自然和樸素的思想。計(jì)算機(jī)軟件開(kāi)發(fā)的過(guò)程就是人們使用各種計(jì)算機(jī)語(yǔ)言將現(xiàn)實(shí)世界映射到計(jì)算機(jī)世界的過(guò)程。計(jì)算機(jī)系統(tǒng)通常是在一定對(duì)象上執(zhí)行一定行為的操作,要獲得靈便和

6、可重用的系統(tǒng),最好的辦法就是將軟件結(jié)構(gòu)建立在對(duì)象上,而不是行為之上,使計(jì)算機(jī)求解問(wèn)題更加類似于人類的邏輯思維活動(dòng),讓程序設(shè)計(jì)按照我們平時(shí)認(rèn)識(shí)客觀世界的方式進(jìn)行。客觀世界是由物質(zhì)與意識(shí)構(gòu)成的?,F(xiàn)實(shí)生活中,“一個(gè)學(xué)生張三”表達(dá)的是具體的事物,而“學(xué)生”是一種意識(shí)。物質(zhì)表達(dá)具體的事物,意識(shí)是對(duì)客觀存在的事物的一種抽象概括。在面向?qū)ο笙到y(tǒng)的求解空間中,有對(duì)象和類,若把現(xiàn)實(shí)事物直接映射到面向?qū)ο蟮能浖到y(tǒng)求解空間,那么物質(zhì)對(duì)應(yīng)于對(duì)象,而意識(shí)對(duì)應(yīng)于類(Class)??陀^世界中,學(xué)生是人們對(duì)所有具體的學(xué)生的抽象概括,在面向?qū)ο笙到y(tǒng)中可用學(xué)生類來(lái)表達(dá),而學(xué)生張三是學(xué)生的一個(gè)具體的實(shí)例。在面向?qū)ο笙到y(tǒng)中可表示為

7、一個(gè)對(duì)象,這個(gè)對(duì)象就是學(xué)生類中的一個(gè)實(shí)例,如下圖所示。面向?qū)ο蟾咏谟?jì)算機(jī)世界的物理實(shí)現(xiàn);面向?qū)ο笏枷雱t符合人們的認(rèn)識(shí)習(xí)慣。面向?qū)ο笞鳛橐环N思想和編程語(yǔ)言,為程序從分析、設(shè)計(jì)到編碼整個(gè)過(guò)程提供了一個(gè)完整的解決方案。(二)面向?qū)ο蟪绦蛟O(shè)計(jì)活動(dòng)一:以下是處理學(xué)生成績(jī)的兩個(gè)程序,學(xué)生成績(jī)1.vbp用面向過(guò)程的方法設(shè)計(jì),學(xué)生成績(jī)2.vbp用面向?qū)ο蟮姆椒ň帉?xiě),試比較它們。1、 開(kāi)學(xué)生成績(jī)1.vbp;閱讀并運(yùn)行該程序(見(jiàn)程序一)。程序一Private Sub Form_click()Dim i As Integer, n As Integer n為學(xué)生數(shù)Dim StName As StringDim

8、sc1 As IntegerDim sc2 As IntegerDim sc3 As IntegerDim total As SingleDim prompt As Stringn = Val(InputBox(輸入學(xué)生數(shù))Print 姓名 & vbTab & 成績(jī)1 & vbTab & 成績(jī)2 & vbTab & 成績(jī)3 & vbTab & 加權(quán)總分 & vbTab & 證書(shū)類型For i = 1 To nStName = InputBox(輸入第 & i & 位同學(xué)的姓名)sc1 = Val(InputBox(輸入該同學(xué)的軟硬件基礎(chǔ)成績(jī))sc2 = Val(InputBox(輸入該同學(xué)的文

9、字處理技巧成績(jī))sc3 = Val(InputBox(輸入該同學(xué)的網(wǎng)絡(luò)技術(shù)應(yīng)用成績(jī))total = sc1 * 0.2 + sc2 * 0.5 + sc3 * 0.3輸出表頭prompt = StName & vbTab & Str(sc1) & vbTab & Str(sc2) & vbTab & Str(sc3) & vbTab & Str(total) & vbTabIf (sc1 = 85 And sc2 = 85 And sc3 = 85) Then Print prompt & 優(yōu)秀Else If (total 70 And sc1 = 60 And sc2 = 60 And sc

10、3 = 60) Then Print prompt & 合格 Else Print prompt & 不合格 End IfEnd IfNext iEnd Sub馬上行動(dòng):閱讀本程序請(qǐng)問(wèn)答(1)找出程序中計(jì)算總分的語(yǔ)句。(2)找出程序中判斷證書(shū)類型的語(yǔ)句。2、打開(kāi)學(xué)用面向?qū)ο蠓椒ㄉ傻膶W(xué)生成績(jī)2.vbp。運(yùn)行該程序后界面如下圖所示:討論:兩個(gè)程序的執(zhí)行過(guò)程有什么不同?3、觀察“學(xué)生成績(jī)2.vbp”的程序(見(jiàn)程序二)。示提這段代碼定義了一個(gè)“學(xué)生類”。類定義中包含了同類對(duì)象共同的屬性,這個(gè)“學(xué)生類”的屬性有姓名和三門課成績(jī),以及“行為(方法)”,如計(jì)算總分方法、判斷證書(shū)類型方法等。VB中,上述屬性

11、和方法都是封裝在類模塊中的。示提與前一個(gè)程序相比可以發(fā)現(xiàn)程序一中實(shí)現(xiàn)計(jì)算總分的表達(dá)式和判斷證書(shū)類型等功能的選擇結(jié)構(gòu)語(yǔ)句在程序二的代碼窗口中已經(jīng)找不到了,取而代之的是對(duì)象方法的調(diào)用語(yǔ)句.示提 用紅色標(biāo)出的語(yǔ)句全部是stu對(duì)象的方法調(diào)用。變量stu所聲明的數(shù)據(jù)類型不是系統(tǒng)提供的數(shù)據(jù)類型,而是一個(gè)由用戶創(chuàng)建的自定義類型,稱為student類。提程序二定義學(xué)生類Dim stu As New StudentDim n As Integer n為學(xué)生數(shù)窗體啟動(dòng)Private Sub Form_Load()labN.Caption = 1 學(xué)生序號(hào)標(biāo)簽顯示1End Sub單擊“處理”按鈕事件Private

12、Sub Command1_Click()Dim StuRec As StringDim StName As StringDim sc1 As IntegerDim sc2 As IntegerDim sc3 As IntegerStName = TxtName.Textsc1 = Val(TxtScore1.Text)sc2 = Val(TxtScore2.Text)sc3 = Val(TxtScore3.Text)將學(xué)生的信息賦給對(duì)象Call stu.SetInf(StName, sc1, sc2, sc3)輸出結(jié)果StuRec = stu.GetName() & vbTabStuRec =

13、 StuRec & stu.GetScore(1) & vbTab & stu.GetScore(2) & vbTab & stu.GetScore(3)StuRec = StuRec & vbTab & stu.GetTotal() & vbTab & stu.Judge()List1.AddItem StuRecn = n + 1labN.Caption = n + 1文本框清零TxtName = TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0TxtName.SetFocusEnd Sub馬上行動(dòng):閱讀本程序問(wèn)答(1)找出程序中計(jì)算總分的語(yǔ)句。 (2

14、)找出程序中判斷證書(shū)類型的語(yǔ)句。4、分別在程序一和程序二的計(jì)算總分和判斷證書(shū)類型的語(yǔ)句之間添加語(yǔ)句“SC1=0”,再次運(yùn)行兩個(gè)程序,看結(jié)果有什么不同。小提示:由于中途改變了軟硬件基礎(chǔ)成績(jī)數(shù)據(jù),使得程序一的運(yùn)行結(jié)果受到了影響,而程序二不會(huì)受任何影響。活動(dòng)二 從VB的類模塊中認(rèn)識(shí)類、對(duì)象和實(shí)體1、 雙擊“學(xué)生成績(jī)2.vbp”程序的工程資源管理窗口中類模塊下的“student”,打開(kāi)類模塊代碼窗口,如下圖所示2、 閱讀其中的程序,如下圖所示:定義存放學(xué)生姓名的變量和存放三門課成績(jī)的數(shù)組Private m_name As StringPrivate m_score(3) As Integer實(shí)現(xiàn)獲得學(xué)

15、生姓名的方法Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer)m_name = namem_score(1) = s1m_score(2) = s2m_score(3) = s3End Sub實(shí)現(xiàn)輸出學(xué)生信息的方法Public Function GetName() As StringGetName = m_nameEnd FunctionPublic Function GetScore(index As Integer) As IntegerGetScore = m_score(index

16、)End Function實(shí)現(xiàn)計(jì)算總分的方法Public Function GetTotal() As SingleGetTotal = m_score(1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3End Function實(shí)現(xiàn)判斷證書(shū)類型的方法Public Function Judge() As StringIf m_score(1) = 85 And m_score(2) = 85 And m_score(3) = 85 Then Judge = 優(yōu)秀ElseIf GetTotal() 70 And m_score(1) = 60 And m_

17、score(2) = 60 And m_score(3) = 60 Then Judge = 合格 Else Judge = 無(wú)End IfEnd Function馬上行動(dòng):閱讀以上學(xué)生類定義程序段后(1)寫(xiě)出Student類中定義學(xué)生屬性的部分m_name用于表示 m_score(3)用于表示 (2)寫(xiě)出Student類中定義方法的部分。子過(guò)程SetInf的作用是獲取學(xué)生對(duì)象的姓名和三門課成績(jī);函數(shù)GetScore的作用是輸出學(xué)生對(duì)象的姓名和三門課成績(jī);函數(shù)GetName的作用是 函數(shù)Judge的作用是 討論:在程序二中的語(yǔ)句“Call stu.SetInf(StName, sc1, sc2

18、, sc3)”后,添加語(yǔ)句“m_name=馮?!?調(diào)試運(yùn)行程序,看結(jié)果有何影響.原因是什么?如果要計(jì)算四門課的成績(jī),該如何修改程序一和程序二,兩者的修改方法有什么不同?歸納總結(jié):兩種程序設(shè)計(jì)方法的異同1、運(yùn)行機(jī)制不同程序一的運(yùn)行過(guò)程完全由程序控制,什么時(shí)候輸入數(shù)據(jù),什么時(shí)候計(jì)算得出結(jié)果,都是由程序員預(yù)先設(shè)計(jì)好的,不能中途予以改變。若某用戶在輸入完第一個(gè)學(xué)生成績(jī)的硬件基礎(chǔ)成績(jī),開(kāi)始輸入文字出理技巧成績(jī)時(shí),發(fā)覺(jué)先前輸入的成績(jī)錯(cuò)了,需要修改,這時(shí)只能結(jié)束程序,重新運(yùn)行后再次輸入,而無(wú)法回到上一步修改輸入。程序二則不同,用戶可隨時(shí)根據(jù)自己的意愿與應(yīng)用程序進(jìn)行交互。2、安全性不同前面的活動(dòng)一,在兩個(gè)程序中僅僅添加了改變軟硬件基礎(chǔ)成績(jī)數(shù)據(jù)這一語(yǔ)句,程序一的運(yùn)行結(jié)果受到了影響,和用戶預(yù)期的結(jié)果相差甚遠(yuǎn),而程序二則沒(méi)有受到任何影響。試想一下,如果在一個(gè)由數(shù)十人甚至數(shù)百人合作開(kāi)發(fā)的大型軟件系統(tǒng)中,萬(wàn)一需要修改某一數(shù)據(jù),對(duì)于使用面向過(guò)程方法設(shè)計(jì)編寫(xiě)的程序來(lái)說(shuō),其后果是不可預(yù)計(jì)的。而對(duì)于使用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法編寫(xiě)的程序則相對(duì)安全得多。另外,在程序二中不能使用變量賦值語(yǔ)句改變Student類模塊中的變量值,如m_name=”馮?!保簿褪钦f(shuō)不能隨意改變某一學(xué)生對(duì)象的姓名等數(shù)據(jù)。原因是類里的m_name等變量的定義語(yǔ)句使用了Private限定詞,只允許在類里使用

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論