版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想(一)教學(xué)設(shè)計(jì)思想與理論依據(jù):《算法與程序設(shè)計(jì)》模塊的教學(xué)強(qiáng)調(diào)通過該模塊的學(xué)習(xí),學(xué)生應(yīng)當(dāng)體驗(yàn)客觀世界的計(jì)算機(jī)對(duì)象化表征和算法思維,掌握幾種基本算法;能運(yùn)用面向?qū)ο蟮姆椒?,設(shè)計(jì)解決簡(jiǎn)樸問題的算法,并能初步使用一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,編制程序?qū)崿F(xiàn)算法解決該問題。(二)教學(xué)內(nèi)容分析教材以廣東教育出版社出版的信息技術(shù)(選修一)《算法與程序設(shè)計(jì)》第五章第一節(jié)內(nèi)容為結(jié)構(gòu)框架,本節(jié)重要介紹面向?qū)ο笏枷氘a(chǎn)生的必然性和面向?qū)ο笏枷氲臋C(jī)制,以及通過對(duì)同一個(gè)問題采用面向過程和面向?qū)ο髢煞N不同思想解決的區(qū)別,讓學(xué)生感受到面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)越性。(三)學(xué)生情況分析:學(xué)生已學(xué)完教材前四章內(nèi)容,基本掌握了傳統(tǒng)的面向過程結(jié)構(gòu)化程序設(shè)計(jì)方法,有一定的程序設(shè)計(jì)基礎(chǔ)。(四)教學(xué)策略與模式:采用講解、任務(wù)驅(qū)動(dòng)、實(shí)踐和學(xué)生自主學(xué)習(xí)相結(jié)合的教學(xué)方式(五)教學(xué)資源:硬件:多媒體電腦教室,投影儀,廣播系統(tǒng)軟件:學(xué)生機(jī)安裝vb6.0(六)教學(xué)目的:知識(shí)與技能1.了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想和面向?qū)ο笏枷氲挠蓙?并可以舉例說明現(xiàn)實(shí)世界與面向?qū)ο笙到y(tǒng)之間的相應(yīng)關(guān)系。2.了解面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)越性并初步理解其實(shí)現(xiàn)的機(jī)制。過程與方法經(jīng)歷分析、調(diào)試解決同一問題的兩種不同實(shí)現(xiàn)思想的程序,初步理解面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)勢(shì)及面向過程程序設(shè)計(jì)的缺陷。情感態(tài)度和價(jià)值觀(1)關(guān)注傳統(tǒng)結(jié)構(gòu)化程序設(shè)計(jì)存在的問題。(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)
教學(xué)重點(diǎn)(1)傳統(tǒng)結(jié)構(gòu)化程序設(shè)計(jì)存在的問題(2)面向?qū)ο蟪绦蛟O(shè)計(jì)所具有的優(yōu)點(diǎn)。教學(xué)難點(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é)過程:引入:請(qǐng)同學(xué)們閱讀本節(jié)課文最前面的引導(dǎo)文字段,一分鐘后請(qǐng)同學(xué)發(fā)言。通過引導(dǎo)拋出結(jié)論:“結(jié)構(gòu)化程序設(shè)計(jì)存在固有的缺陷:以功能為核心,數(shù)據(jù)和函數(shù)分開,使得后期維護(hù)難,安全性差等且不適合解決復(fù)雜問題。”新課講解:一.面向?qū)ο笏枷氲漠a(chǎn)生:1.教師講解介紹面向?qū)ο蠹夹g(shù)是程序設(shè)計(jì)發(fā)展的必然趨勢(shì)2.講解面向?qū)ο蠹夹g(shù)的思想(1)面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming,簡(jiǎn)稱OOP),是基于一種很自然和樸素的思想。計(jì)算機(jī)軟件開發(fā)的過程就是人們使用各種計(jì)算機(jī)語言將現(xiàn)實(shí)世界映射到計(jì)算機(jī)世界的過程。(2)舉例說明現(xiàn)實(shí)世界與面向?qū)ο笙到y(tǒng)之間的相應(yīng)關(guān)系:面向?qū)ο笙到y(tǒng)求解空間具體事物;一個(gè)對(duì)象學(xué)生的實(shí)例面向?qū)ο笙到y(tǒng)求解空間具體事物;一個(gè)對(duì)象學(xué)生的實(shí)例抽象概念:學(xué)生類現(xiàn)實(shí)問題空間物質(zhì):一個(gè)學(xué)生張三意識(shí):學(xué)生二.面向?qū)ο蟪绦蛟O(shè)計(jì):活動(dòng)一:以下是解決學(xué)生成績(jī)的兩個(gè)程序,學(xué)生成績(jī)1.vbp用面向過程的方法設(shè)計(jì),學(xué)生成績(jī)2.vbp用面向?qū)ο蟮姆椒ň帉懀嚤容^它們。1、打開學(xué)生成績(jī)1.vbp;閱讀并運(yùn)營(yíng)該程序(見程序一)。'程序一PrivateSubForm_click()DimiAsInteger,nAsInteger
‘n為學(xué)生數(shù)DimStNameAsStringDimsc1AsIntegerDimsc2AsIntegerDimsc3AsIntegerDimtotalAsSingleDimpromptAsStringn=Val(InputBox("輸入學(xué)生數(shù)"))Print"姓名"&vbTab&"成績(jī)1"&vbTab&"成績(jī)2"&vbTab&"成績(jī)3"&vbTab&"加權(quán)總分"&vbTab&"證書類型"Fori=1TonStName=InputBox("輸入第"&i&"位同學(xué)的姓名")sc1=Val(InputBox("輸入該同學(xué)的軟硬件基礎(chǔ)成績(jī)"))sc2=Val(InputBox("輸入該同學(xué)的文字解決技巧成績(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>=85Andsc2>=85Andsc3>=85)Then
Printprompt&"優(yōu)秀"Else
If(total>70Andsc1>=60Andsc2>=60Andsc3>=60)Then
Printprompt&"合格"
Else
Printprompt&"不合格"
EndIfEndIfNextiEndSub立即行動(dòng):閱讀本程序請(qǐng)問答(1)找出程序中計(jì)算總分的語句。
(2)找出程序中判斷證書類型的語句。2、打開學(xué)用面向?qū)ο蠓椒ㄉ傻膶W(xué)生成績(jī)2.vbp。運(yùn)營(yíng)該程序后界面如下圖所示:討論:兩個(gè)程序的執(zhí)行過程有什么不同?3、觀測(cè)“學(xué)生成績(jī)2.vbp”的程序(見程序二)。'程序二'定義學(xué)生類DimstuAsNewStudentDimnAsInteger
‘n為學(xué)生數(shù)'窗體啟動(dòng)PrivateSubForm_Load()labN.Caption=1
‘學(xué)生序號(hào)標(biāo)簽顯示1EndSub'單擊“解決”按鈕事件PrivateSubCommand1_Click()DimStuRecAsStringDimStNameAsStringDimsc1AsIntegerDimsc2AsIntegerDimsc3AsIntegerStName=TxtName.Textsc1=Val(TxtScore1.Text)sc2=Val(TxtScore2.Text)sc3=Val(TxtScore3.Text)'將學(xué)生的信息賦給對(duì)象
用紅色標(biāo)出的語句所有是stu對(duì)象的方法調(diào)用。提示Callstu.SetInf(StName,sc1,sc2,sc3)'輸出結(jié)果StuRec=stu.GetName()&vbTabStuRec=StuRec&stu.GetScore(1)&vbTab&stu.GetScore(2)&vbTab&stu.GetScore(3)StuRec=StuRec&vbTab&stu.GetTotal()&vbTab&stu.Judge()List1.AddItemStuRecn=n+1labN.Caption=n+1'文本框清零TxtName=""TxtScore1=0:TxtScore2=0:TxtScore3=0TxtName.SetFocusEndSub立即行動(dòng):閱讀本程序問答(1)找出程序中計(jì)算總分的語句。
(2)找出程序中判斷證書類型的語句。4、分別在程序一和程序二的計(jì)算總分和判斷證書類型的語句之間添加語句“SC1=0”,再次運(yùn)營(yíng)兩個(gè)程序,看結(jié)果有什么不同。小提醒:由于半途改變了軟硬件基礎(chǔ)成績(jī)數(shù)據(jù),使得程序一的運(yùn)營(yíng)結(jié)果受到了影響,而程序二不會(huì)受任何影響。活動(dòng)二
從VB的類模塊中結(jié)識(shí)類、對(duì)象和實(shí)體1、雙擊“學(xué)生成績(jī)2.vbp”程序的工程資源管理窗口中類模塊下的“student”,打開類模塊代碼窗口,如下圖所示
2、閱讀其中的程序,如下圖所示:'定義存放學(xué)生姓名的變量和存放三門課成績(jī)的數(shù)組Privatem_nameAsStringPrivatem_score(3)AsInteger'實(shí)現(xiàn)獲得學(xué)生姓名的方法PublicSubSetInf(nameAsString,s1AsInteger,s2AsInteger,s3AsInteger)m_name=namem_score(1)=s1m_score(2)=s2m_score(3)=s3EndSub'實(shí)現(xiàn)輸出學(xué)生信息的方法PublicFunctionGetName()AsString
GetName=m_nameEndFunctionPublicFunctionGetScore(indexAsInteger)AsInteger
GetScore=m_score(index)EndFunction'實(shí)現(xiàn)計(jì)算總分的方法PublicFunctionGetTotal()AsSingleGetTotal=m_score(1)*0.2+m_score(2)*0.5+m_score(3)*0.3EndFunction'實(shí)現(xiàn)判斷證書類型的方法PublicFunctionJudge()AsStringIfm_score(1)>=85A(chǔ)ndm_score(2)>=85Andm_score(3)>=85Then
Judge="優(yōu)秀"ElseIfGetTotal()>70Andm_score(1)>=60Andm_score(2)>=60Andm_score(3)>=60Then
Judge="合格"
Else
Judge="無"EndIfEndFunction立即行動(dòng):閱讀以上學(xué)生類定義程序段后(1)
寫出Student類中定義學(xué)生屬性的部分m_name用于表達(dá)
m_score(3)用于表達(dá)
(2)寫出Student類中定義方法的部分。
子過程SetInf的作用是獲取學(xué)生對(duì)象的姓名和三門課成績(jī);
函數(shù)GetScore的作用是輸出學(xué)生對(duì)象的姓名和三門課成績(jī);
函數(shù)GetName的作用是
函數(shù)Judge的作用是
假如要計(jì)算四門課的成績(jī),該如何修改程序一和程序二,兩者的修改方法有什么不同?歸納總結(jié):兩種程序設(shè)計(jì)方法的異同1、運(yùn)營(yíng)機(jī)制不同程序一的運(yùn)營(yíng)過程完全由程序控制,什么時(shí)候輸入數(shù)據(jù),什么時(shí)候計(jì)算得出結(jié)果,都是由程序員預(yù)先設(shè)計(jì)好的,不能半途予以改變。若某用戶在輸入完第一個(gè)學(xué)生成績(jī)的硬件基礎(chǔ)成績(jī),開始輸入文字出理技巧成績(jī)時(shí),發(fā)現(xiàn)先前輸入的成績(jī)錯(cuò)了,需要修改,這時(shí)只能結(jié)束程序,重新運(yùn)營(yíng)后再次輸入,而無法回到上一步修改輸入。程序二則不同,用戶可隨時(shí)根據(jù)自己的意愿與應(yīng)用程序進(jìn)行交互。2、安全性不同前面的活動(dòng)一,在兩個(gè)程序中僅僅添加了改變軟硬件基礎(chǔ)成績(jī)數(shù)據(jù)這一語句,程序一的運(yùn)營(yíng)結(jié)果受到了影響,和用戶預(yù)期的結(jié)果相差甚遠(yuǎn),而程序二則沒有受到任何影響。試想一下,假如在一個(gè)由數(shù)十人甚至數(shù)百人合作開發(fā)的大型軟件系統(tǒng)中,萬一需要修改某一數(shù)據(jù),對(duì)于使用面向過程方法設(shè)計(jì)編寫的程序來說,其后果是不可預(yù)計(jì)的。而對(duì)于使用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法編寫的程序則相對(duì)安全得多。此外,在程序二中不能使用變量賦值語句改變Student類模塊中的變量值,如m_name=”馮海”,也就是說不能隨意改變某一學(xué)生對(duì)象的姓名等數(shù)據(jù)。因素是類里的m_name等變量的定義語句使用了Private限定詞,只允許在類里使用這些變量,而對(duì)于主程序,必須通過調(diào)用類中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賓館承包合同協(xié)議書寫法
- 臨時(shí)工聘用合同樣本
- 2024廣告服務(wù)合同模板
- 無擔(dān)保眼鏡購(gòu)買分期付款合同范本
- 2024公寓租賃合同模板【公寓租賃合同】
- 城市糧食采購(gòu)合同模板
- 服裝行業(yè)銷售管理系統(tǒng)經(jīng)銷合同
- 環(huán)保工程維保合同模板
- 高校畢業(yè)就業(yè)協(xié)議書樣本
- 商標(biāo)許可協(xié)議書
- 高中語文人教版高中必修文言文定語后置
- 傳統(tǒng)孝道人物虞舜
- 確定積極分子會(huì)議記錄范文七篇
- 長(zhǎng)江三峽水利樞紐可行性報(bào)告
- 江蘇省某高速公路結(jié)構(gòu)物臺(tái)背回填監(jiān)理細(xì)則
- 電大護(hù)理本科臨床實(shí)習(xí)手冊(cè)內(nèi)容(原表)
- 當(dāng)代德國(guó)學(xué)校勞動(dòng)教育課程構(gòu)建的經(jīng)驗(yàn)與啟示共3篇
- “小金庫(kù)”治理與防范 習(xí)題及答案
- 王偉核桃經(jīng)濟(jì)價(jià)值及加工利用
- 新生兒胎糞吸入綜合征臨床路徑標(biāo)準(zhǔn)住院流程及路徑表單
- 氯化鈉特性表
評(píng)論
0/150
提交評(píng)論