Python編程基礎(第3版)(微課版)課件 單元9 綜合案例:學生測試程序設計_第1頁
Python編程基礎(第3版)(微課版)課件 單元9 綜合案例:學生測試程序設計_第2頁
Python編程基礎(第3版)(微課版)課件 單元9 綜合案例:學生測試程序設計_第3頁
Python編程基礎(第3版)(微課版)課件 單元9 綜合案例:學生測試程序設計_第4頁
Python編程基礎(第3版)(微課版)課件 單元9 綜合案例:學生測試程序設計_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

綜合案例:學生測試程序設計1實現試卷的劃分目錄了解學生測試的背程序設計背景與方法2構建測試程序3測試主要是為了檢驗學生在近段時期的學習成果,查看學生的學習狀態,為老師提供教學分析依據。測試形式:有筆試、口試、線上測試等,采用筆試的方法,各學生機會均等且相對客觀,這是其他方法難以替代的。考試類型:通常會設置為A卷、B卷、C卷、D卷等,進一步體現公平、公正的原則,一方面設置考試類型可以防止學生近距離作弊,保證學生成績的公平,另一方面可以應對試卷泄漏等突發情況。考試題型:有選擇題、判斷題、填空題、簡答題和應用題等,通常情況下,一份測試試卷會包括多種題型,主要分為客觀性試題和主觀性試題。分析學生測試的背景筆試局限性:學校每次測試,都需要事先進行試卷命題、復印試卷、回收試卷、評閱試卷等一系列工作。而且不同因素都可能會影響到測試的有效性、準確性、公平性等。給學校、教師、學生等帶來了諸多不便。線上測試優勢:幫助教師減輕出卷、印卷與閱卷的工作壓力,減少傳統筆試出卷方式和閱卷方式容易產生的錯誤。能夠將學生從規定時間、規定地點的傳統測試形式中解放出來,大大提高測試效率。能夠大大減少印刷材料等資源的消耗。考試流程:對于筆試和線上測試,其基本流程大致相同,流程如下。出卷

考試閱卷

統計成績分析學生測試的背景考試題型以判斷題為例,其中題目數量為10道,考試類型分為A、B兩卷,B卷的試卷題目格式與A卷的相同。A、B兩卷的測試范圍相同(均是對Python的基礎知識進行測試),題目的難易程度相同,且題型均為判斷題。其不同點在于,A、B兩卷的題目將會有所變化,

A卷試卷題目格式如表所示。了解學生測試程序設計的思路和步驟在if...elif...else的多個代碼塊中只會執行一個代碼塊。對于可變參數,不顯示參數的個數,同時也不限制參數的個數,其主要用在參數比較多的情況下。函數名稱可以用于調用函數。函數名稱不能使用關鍵字來命名,可以使用函數的功能的英文名來命名,函數名稱的命名方法有駝峰法和下劃線法。當執行函數時,無論有無返回值,都必須寫return語句。……在測試時,除了需要所出的試卷外,還需要配置試卷對應的標準答案,以便于后續給學生提供一定的參考。在本案例中,A、B兩卷的標準答案存放在試卷答案文件夾中,B卷的試卷答案格式與A卷的相同。A卷試卷答案格式如表所示。了解學生測試程序設計的思路和步驟題目答案題目答案題目答案第1題正確第5題錯誤第9題正確第2題正確第6題正確第10題錯誤第3題正確第7題正確

第4題錯誤第8題錯誤

通過程序隨機抽取試卷(A卷或B卷),將試卷中的10道判斷題題目逐個展示,并提示學生輸入對應題目的答案,最后通過將輸入答案與標準答案進行匹配,計算該學生的成績并添加到成績單中。

Python基礎的測試成績單如表所示。了解學生測試程序設計的思路和步驟姓名成績姓名成績姓名成績葉亦凱50郭仁澤40姜晗昱90張建濤80唐莉70楊依萱90莫子建90張馥雨60

易子歆100麥凱澤80

根據上述的分析過程與思路,得到總體流程如圖所示,主要包括以下步驟。使用random模塊生成隨機整數,以獲取學習幣值。定義試卷的抽取規則,并抽取試卷。讀取試卷,逐個打印題目,并提示學生進行作答。定義試卷答案的獲取規則,并獲取標準答案。計算成績,并添加到成績單中。了解學生測試程序設計的思路和步驟1實現試卷的劃分目錄了解學生測試的背程序設計背景與方法2構建測試程序3獲取學習幣值的具體過程如下。導入所需要的random、csv和os模塊。使用def關鍵字定義learning_coin函數,因為骰子的數量為3,且在沒有搖動骰子時,假設其點數為空,所以將參數numbers設置為3,參數points設置為None。定義points列表用于存放骰子點數。利用while循環,同時運用random模塊中的randrange函數生成3個隨機整數,整數所在范圍為[1,7),并將這些整數添加到points列表中。運用sum函數對骰子點數進行求和,并返回學習幣值。獲取學習幣值抽取試卷的具體過程如下。使用def關鍵字定義rule函數,其中參數為total(學習幣值)。使用os模塊查看試卷文件夾中所有的試卷名。使用if…elif…語句定義抽取試卷的規則。使用open函數打開文件路徑。使用csv.reader函數讀取CSV文件。使用for循環將文件的全部內容存儲到列表中,并返回試卷列表。抽取試卷1實現試卷的劃分目錄了解學生測試的背程序設計背景與方法2構建測試程序3讀取試卷的具體過程如下,運行結果如圖所示。調用Test_Paper類中的learning_coin函數獲取學習幣值。調用rule函數抽取試卷。打印學習幣值和試卷內容。讀取試卷讀取試卷的具體過程如下。進行測試,使用input函數實現鍵盤輸入自己的學號或名字等信息。通過if…else…語句判斷名字是否已經輸入。讀取試卷后,所有的題目均被存放在列表中。利用while循環逐個打印題目,并通過input函數提示學生輸入答案。采用if…else…語句判斷輸入格式是否正確。格式輸入正確時,將答案添加到自定義的answers列表中,并進入下一題。當格式輸入錯誤時,打印錯誤提示并重新作答。使用

try-except語句進行異常處理,最終打印題目并輸入答案。讀取試卷讀取試卷由于學習幣值的獲取是隨機的,抽取到的試卷可能不同,所以運行結果也可能不同,運行結果如圖所示。獲取標準答案的具體過程如下。導入csv模塊和os模塊。使用def關鍵字定義info_answer函數,其中參數為total(學習幣值)。使用os模塊查看試卷答案文件夾下的文件名使用if…elif…語句判斷學習幣值所在范圍。使用open函數打開試卷答案文件路徑。使用csv.DictReader函數讀取CSV格式的答案文件。使用for循環將文件中的答案存儲到列表中,并返回答案列表。讀取標準答案計算成績的具體過程如下。調用自定義的info_answer函數獲取試卷的標準答案。初始化成績res為0。利用for循環獲取10道題中每一題的答案。采用if-else語句判斷每一題輸入的答案是否與標準答案相同,若相同則得分,若不同則不得分,最后得到學生成績res并輸出,以查看學生成績和標準答案。計算成績提取學生名字的具體過程如下。使用open函數打開文件路徑。使用csv.DictReader類返回所有的成績單信息,并將信息存放在字典的值中。通過列標題(名字)查詢獲得所有學生的名字。計算成績更新成績單的具體過程如下。用if-else語句判斷輸入的學生名字是否已存在于成績單中。如果輸入的名字存在,那么需要根據字典中的名字鍵查到其值所在的位置,更新對應學生的成績,并輸出成績更新完成提示信息。如果輸入的名字不存在,那么需要將名字和成績增添到字典info_dict中,并采用append函數將字典轉換為列表(info)通過extend方法將列表info添加到成績單grades末尾,并輸出成績添加完成提示信息。將學生成績添加到成績單后,數據以字典的形式呈現,可以通過

溫馨提示

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

評論

0/150

提交評論