《編程教育》-項目二 計算圖形面積_第1頁
《編程教育》-項目二 計算圖形面積_第2頁
《編程教育》-項目二 計算圖形面積_第3頁
《編程教育》-項目二 計算圖形面積_第4頁
《編程教育》-項目二 計算圖形面積_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教案教師班級科目C#程序設計開課時間地點機房課題名稱項目二:計算圖形面積課時數6背景分析本課程是為軟件技術專業的學生開設的一門很重要的程序設計類課程。學習者從設計基類Shape類,到派生類的功能擴展。通過本項目,學生體會了類的繼承和多態性的不同,掌握了隱藏基類方法,在派生類中重寫方法等的使用,為后續更好的理解類和對象打下基礎。學生已經具備一定的應用軟件能力。根據課程教學目標和學生的專業特點,教學中應當注重培養學生的操作能力、思維能力和學習能力。本課采用以項目教學為主,邊講邊做,讓學生在做的過程中學會探索、學會合作。學習目標設定1.理解繼承的概念。2.掌握如何隱藏基類的方法。3.理解多態的概念培養學生積極思考、敢于嘗試,讓學生體驗學習的樂趣,激發學生對本課程的學習興趣。學習任務描述學習任務圍繞學生成績統計的綜合運用而展開,根據教師設計的項目,并將其分解為任務完成。通過任務的設定,在對比中,引導學生自主學習、合作學習、競爭學習。教學情境創設本節課通過對一個貼近學生生活的項目學習,引導學生做中學習、合作學習。圍繞課堂總目標,讓學生在不斷的成功體驗中進行快樂學習。教學資源準備時間資源:課前資料收集、課堂教學、課后資料整理、完成作業信息資源:教案、教學素材人員資源:1位專業教師,1位專業指導教師,學生小組設備資源:2.2GHz或速度更快的CPU、1GB或更大容量的RAM、1280x1024顯示器、7200RPM或更高轉速的硬盤;操作系統:WindowsXP、Vista或2000以上;開發軟件:VisualStudio2005/2008中文版(含MSDN);教學過程實施內容方法【導入】小張需要來計算各類圖形的面積,他用C#代碼在控制臺下設計一個Shape類,并衍生出其他圖形面積的計算。【新課】項目二:計算圖形面積【項目描述】面積計算主要有三個任務:1.理解繼承的概念。2.掌握如何隱藏基類的方法。3.理解多態的概念任務一類的繼承【任務描述】(該任務的內容和目的)新建項目,并創建Shape類,指定數據成員,以及構造函數和方法。【任務實施】1.確定Shape類的數據成員,如表所示。數據成員數據類型數據說明WidthDouble寬HeightDouble長2.確定Shape類的構造方法和面積方法,如表所示。構造方法參數列表方法說明Shape()無參數初始化數據成員為0Shape(doublex)一個參數設置長寬值與參數相同Shape(doublew,doubleh)二個參數設置長寬值分別與二個參數相同3.輸入Shape類的數據成員,相關代碼如下:classShape{protecteddoublewidth;protecteddoubleheight;publicShape(){width=height=0;}publicShape(doublex){width=height=x;}publicShape(doublew,doubleh){width=w;height=h;}publicdoublearea(){returnwidth*height;}}4.Triangle類繼承Shape類數據成員以及area()方法,并改寫方法內容。classTriangle:Shape//三角形{publicTriangle(doublex,doubley){width=x;height=y;}publicdoublearea(){returnwidth*height/2;}}注:派生類方法與基類方法同名,編譯時會有警告信息改進代碼如下:classTriangle:Shape//三角形{publicTriangle(doublex,doubley):base(x,y){}newpublicdoublearea(){returnwidth*height/2;}}5.Trapezia類的內容與Triangle類相似,但計算面積的area()方法公式不同,相關代碼如下:classTrapezia:Shape//梯形{doublewidth2;publicTrapezia(doublew1,doublew2,doubleh):base(w1,h){width2=w2;}newpublicdoublearea()//加new隱藏基類的area方法{return(width+width2)*height/2;}}6.在Main()方法中賦值,相關代碼如下:staticvoidMain(string[]args){ShapeA=newShape(2,4);//長方形Console.WriteLine("A.area={0}",A.area());TriangleB=newTriangle(3,4);//三角形Console.WriteLine("B.area={0}",B.area());TrapeziaC=newTrapezia(3,4,5);//梯形Console.WriteLine("C.area={0}",C.area());A=B;//A指向了B的引用Console.WriteLine("A.area={0}",A.area());A=C;//A指向了C的引用Console.WriteLine("A.area={0}",A.area());}運行結果。任務二類的多態【任務描述】采用另一種更為靈活和有效的手段,理解類的多態性,靈活運用virtual和override關鍵字。【任務實施】1.Shape類成員同任務一,將area()方法用virtual關鍵字聲明為虛方法,相關代碼如下:classShape{protecteddoublewidth;protecteddoubleheight;publicShape(){width=height=0;}publicShape(doublex){width=height=x;}publicShape(doublew,doubleh){width=w;height=h;}publicvirtualdoublearea()//基類中用virtual修飾符聲明一個虛方法{returnwidth*height;}}2.Triangle類的area()方法用override關鍵字重寫基類虛方法,相關代碼如下:classTriangle:Shape//三角形{publicTriangle(doublex,doubley):base(x,y){}publicoverridedoublearea()//派生類中用override修飾符重寫基類虛方法{returnwidth*height/2;}}3.Trapezia類的area()方法同上處理,相關代碼如下:classTrapezia:Shape//梯形{doublewidth2;publicTrapezia(doublew1,doublew2,doubleh):base(w1,h){width2=w2;}publicoverridedoublearea()//派生類中用override修飾符重寫基類虛方法{return(width+width2)*height/2;}}4.在Main()方法中賦值,相關代碼如下:staticvoidMain(string[]args){ShapeA=newShape(2,4);//長方形Console.WriteLine("A.area={0}",A.area());TriangleB=newTriangle(3,4);//三角形Console.WriteLine("B.area={0}",B.area());TrapeziaC=newTrapezia(3,4,5);//梯形Console.WriteLine("C.area={0}",C.area());A=B;//A指向了B的引用Console.WriteLine("A.area={0}",A.area());A=C;//A指向了C的引用Console.WriteLine("A.area={0}",A.area());}運行結果【項目小結】 學習者從設計基類Shape類,到派生類的功能擴展。通過本項目,學生體會了類的繼承和多態性的不同,掌握了隱藏基類方法,在派生類中重寫方法等的使用,為后續章節更好的學習打下基礎。【思考與練習】請學生參照上例,定義基類Shape類,以及衍生功能的派生類矩形、正方形、三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論