Python程序設計實踐 教案 實驗12 面向?qū)ο蟪绦蛟O計基礎_第1頁
Python程序設計實踐 教案 實驗12 面向?qū)ο蟪绦蛟O計基礎_第2頁
Python程序設計實踐 教案 實驗12 面向?qū)ο蟪绦蛟O計基礎_第3頁
Python程序設計實踐 教案 實驗12 面向?qū)ο蟪绦蛟O計基礎_第4頁
Python程序設計實踐 教案 實驗12 面向?qū)ο蟪绦蛟O計基礎_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《Python程序設計實踐教程》課程教案課題:面向?qū)ο蟪绦蛟O計基礎教學目的:理解面向?qū)ο蟪绦蛟O計的基本概念與特性:通過類與對象的關系講解,幫助學生理解OOP的封裝、繼承與多態(tài)特性,掌握面向?qū)ο缶幊痰暮诵乃枷搿U莆疹惖亩x與對象的創(chuàng)建方法:通過類的定義與對象創(chuàng)建的實踐,使學生能夠熟練定義類并實例化對象,理解類與對象的關系及其在程序中的應用。學會在類中定義方法與使用構(gòu)造方法:包括普通方法的定義與調(diào)用,以及構(gòu)造方法(`__init__`)的使用,幫助學生掌握類中行為與數(shù)據(jù)的封裝方法。理解類的變量與實例變量的作用域與區(qū)別:通過類變量與實例變量的講解,使學生理解它們在類中的作用域與生命周期,能夠合理管理類中的數(shù)據(jù)。掌握類的繼承與多態(tài)機制:通過繼承與多態(tài)的學習,幫助學生理解代碼復用與擴展的方法,能夠設計具有層次結(jié)構(gòu)的類體系。培養(yǎng)面向?qū)ο缶幊痰乃季S與設計能力:通過OOP的學習與實踐,學生能夠?qū)碗s問題分解為多個類與對象,提升代碼的可讀性、可維護性與復用性。為后續(xù)復雜程序設計與開發(fā)奠定基礎:通過本章的學習,學生能夠掌握OOP的基本語法與設計方法,為后續(xù)學習高級面向?qū)ο缶幊膛c復雜系統(tǒng)開發(fā)提供支持。課型:新授課課時:本章安排2個課時。教學重點:重點:1.理解面向?qū)ο蟮木幊趟枷搿?.掌握類與對象的定義、創(chuàng)建方法、使用方法。3.掌握類的繼承和多態(tài)。教學難點:難點:本章教學難點在于如何理解并應用類的繼承與多態(tài)機制,設計出具有層次結(jié)構(gòu)且可擴展的類體系。教學過程:教學形式:講授課,教學組織采用課堂整體講授和分組演示。教學媒體:采用啟發(fā)式教學、案例教學等教學方法。教學手段采用多媒體課件、視頻等媒體技術。板書設計:本課標題面向?qū)ο蟪绦蛟O計基礎課次0.5授課方式理論課□討論課□習題課□其他□課時安排2學分共2分授課對象普通高等院校學生任課教師教材及參考資料1.《Python程序設計實踐教程》。2.本教材配套視頻教程及學習檢查等資源。3.與本課程相關的其他資源。教學基本內(nèi)容教學方法及教學手段課程引入在程序設計中,面向?qū)ο缶幊蹋∣OP)是一種強大的編程范式,它通過類與對象的概念,將數(shù)據(jù)與行為封裝在一起,使程序結(jié)構(gòu)更加清晰、易于維護與擴展。無論是構(gòu)建復雜的系統(tǒng),還是設計可復用的代碼模塊,OOP都為我們提供了強大的支持。本章將帶領大家深入學習Python中面向?qū)ο蟪绦蛟O計的基礎知識,包括類的定義、對象的創(chuàng)建、方法的封裝、繼承與多態(tài)等核心概念。通過豐富的實例與實驗,你將掌握如何利用OOP思想設計類與對象,理解封裝、繼承與多態(tài)的特性,并學會構(gòu)建具有層次結(jié)構(gòu)的程序。讓我們一起探索面向?qū)ο缶幊痰膴W秘,用代碼構(gòu)建更加模塊化、可擴展的程序!參考以下形式:1.銜接導入2.懸念導入3.情景導入4.激疑導入5.演示導入6.實例導入7.其他形式實驗12面向?qū)ο蟪绦蛟O計基礎一、實驗目的1.理解面向?qū)ο蟮木幊趟枷搿?.掌握類與對象的定義、創(chuàng)建方法、使用方法。3.掌握類的繼承和多態(tài)。二、知識要點1.面向?qū)ο蟮母拍铑悾–lass)是具有相同特征的一類事物(如動物類、文件類、操作類等)。對象(Object)是某個具體的事物(如孫悟空、牛魔王等),對象是類的實例(Instance)。對象包括屬性(對象內(nèi)的變量)和方法(對象內(nèi)的函數(shù))。屬性是用來描述對象靜態(tài)特征的一組數(shù)據(jù),如學號、姓名、專業(yè)等。方法是對象的動作與行為,也稱為成員函數(shù)(MemberFunction)。面向?qū)ο蟮娜筇匦允嵌鄳B(tài)、封裝、繼承。2.類的定義定義類需要用關鍵字?class?開頭。class?類名:定義類的屬性定義類的方法定義類的語法格式如下。class?類名:def__init__(self[,參數(shù)?1,參數(shù)?2,...,參數(shù)?n]):self.數(shù)據(jù)成員?1=參數(shù)?1或初值?1self.數(shù)據(jù)成員?2=參數(shù)?2或初值?2...self.數(shù)據(jù)成員?n=參數(shù)?n或初值?n[其他成員函數(shù)定義]3.對象的創(chuàng)建變量=類名()4.在類中定義方法def方法名(self,方法參數(shù)列表):方法體5.類的構(gòu)造方法def_init__(self):print("創(chuàng)建實體對象!")6.類的析構(gòu)方法def__del__(self):print("實體對象被銷毀!")7.類的變量(1)實例變量self.變量名=值(2)類變量變量名=值8.類的繼承class子類類名(父類類名):定義子類的變量和方法9.類的多態(tài)多態(tài)是指一個變量可以引用不同類型的對象,并且能夠自動地調(diào)用被引用對象的方法,從而根據(jù)不同的對象類型響應不同的操作。三、實例解析【實例?12-1】輸出學生信息設計一個?Student?類,在類中定義多個方法,其中一個方法用于接收學生的學號、姓名、多門課的成績;其他方法用于獲取學生的學號、姓名,并求所有成績的最高分。(1)程序代碼#sl12-1.pyclassStudent(object):def__init__(self,Sno,name,scores): #構(gòu)造方法self.__Sno=Sno #學號self.__name=name #姓名self.__scores=scores #成績defget_name(self):returnself.__namedefget_Sno(self):returnself.__Snodefget_score(self):returnmax(self.__scores)stu=Student(2022001,'張聰',[88,80,90,77,95])print("學號:%s"%(stu.get_Sno()))print("姓名:%s"%(stu.get_name()))print("最高分:%s"%(stu.get_score()))(2)運行結(jié)果學號:2022001姓名:張聰最高分:95【實例?12-2】水果管理程序某水果店的主要水果有蘋果(8?元/斤)、橙子(6?元/斤)、菠蘿(3?元/斤)、香蕉(4?元/斤)。顧客(zhangsan、lisi)購買水果并進行結(jié)算(要求顯示原有的金額、購買水果后剩余的金額)。(1)問題分析設計?Fruit?類和?Customer?類,其中?Fruit?類無方法,只有?fruitname(水果名)和?price(單價)兩個屬性;Customer?類有買水果的方法?buy(),還有顧客的?name(名字)和?money(金額)屬性。(2)程序代碼#sl12-2.pyclassFruit:def__init__(self,fruitname,price): self.fruitname=fruitname #水果名self.price=price #單價def__str__(self):returnf'price{self.fruitname}is{self.price}yuan.'classCustomer:def__init__(self,name,money): =name #名字self.money=money #金額def__str__(self):returnf'{}have{self.money}yuan.'defbuy(self,fruit,quanlity):total_money_fruit=fruit.price*quanlityifself.money<total_money_fruit:print(f'{}onlyhave{self.money}yuan,cannotbuyfruitof{total_money_fruit}yuan.')else:self.money=self.money-total_money_fruitprint(f'{}buy{quanlity}jin{fruit.fruitname},left{self.money}yuan.')apple=Fruit('apple',8)orange=Fruit('orange',6)pineapple=Fruit('pineapple',3)banana=Fruit('banana',4)print(apple)print(orange)print(pineapple)print(banana)print('-----------------------')zhangsan=Customer('zhangsan',50)lisi=Customer('lisi',20)print(zhangsan)print(lisi)print('-----------------------')zhangsan.buy(apple,4)zhangsan.buy(orange,2)lisi.buy(pineapple,3)lisi.buy(banana,3)(3)運行結(jié)果priceappleis8yuan.priceorangeis6yuan.pricepineappleis3yuan.pricebananais4yuan.-----------------------zhangsanhave50yuan.lisihave20yuan.-----------------------zhangsanbuy4jinapple,left18yuan.zhangsanbuy2jinorange,left6yuan.lisibuy3jinpineapple,left11yuan.lisionlyhave11yuan,cannotbuyfruitof12yuan.四、實驗內(nèi)容1.輸入長方形的長和寬,計算周長和面積。有計算周長的方法?perimeter()和計算面積的方法?area()。請編寫程序,完成該類,并進行測試。2.計算正方形和長方形的周長和面積。設計長方形類?Rect?和正方形類?Squa,每個類均包含計算周長和面積的方法,默認長方形的寬為?20,默認正方形的邊長為?10,長方形類以正方形類為基類。3.計算長方形的面積,以及長方體的表面積和體積。設計長方形類和長方體類,完成以下功能。①在第?1?題創(chuàng)建的長方形類?Rectangle?的基礎上,為私有屬性?length、width?分別增加?get()和?set()方法,增加一個內(nèi)置的__str__()方法,輸出長方形的長和寬。②創(chuàng)建一個長方體類?Cuboid(由?Rectangle?類派生),增加一個表示長方體高的屬性?height,構(gòu)造函數(shù)__init__(),增加計算長方體體積的方法?volume,重寫內(nèi)置的__str__()方法,輸出長方體的長、寬、高。③編寫適當?shù)臏y試代碼,對創(chuàng)建的類進行測試。4.輸入?n?個學生的姓名及?3?門功課的成績,要求逆序逐行輸出每個學生的姓名、3?門功課的成績、平均成績。若學生的平均成績低于?60?分,則不輸出該學生的信息。1.教學以學生學習教材的基本內(nèi)容為主,系統(tǒng)全面地了解面向?qū)ο蟪绦蛟O計基礎。2.整個教學過程中,各教學點可根據(jù)實際情況,進行拓展知識的講解。章節(jié)小結(jié):本章主要介紹了Python中面向

溫馨提示

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

評論

0/150

提交評論