《Python語言程序設計(項目式)(微課版)》-實訓報告匯 李瑋 項目1-9 使用第三方庫進行開發(fā)- 電子檔案管理系統(tǒng)開發(fā)_第1頁
《Python語言程序設計(項目式)(微課版)》-實訓報告匯 李瑋 項目1-9 使用第三方庫進行開發(fā)- 電子檔案管理系統(tǒng)開發(fā)_第2頁
《Python語言程序設計(項目式)(微課版)》-實訓報告匯 李瑋 項目1-9 使用第三方庫進行開發(fā)- 電子檔案管理系統(tǒng)開發(fā)_第3頁
《Python語言程序設計(項目式)(微課版)》-實訓報告匯 李瑋 項目1-9 使用第三方庫進行開發(fā)- 電子檔案管理系統(tǒng)開發(fā)_第4頁
《Python語言程序設計(項目式)(微課版)》-實訓報告匯 李瑋 項目1-9 使用第三方庫進行開發(fā)- 電子檔案管理系統(tǒng)開發(fā)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務1:使用第三方庫進行開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:本任務使用wordcloud庫實現(xiàn)詞云效果。wordcloud是一款非常優(yōu)秀的用于詞云展示的Python第三方庫。詞云也叫文字云,以詞語為基本單位,用更加直觀和藝術的形式展示文本詞云圖,對文本中出現(xiàn)頻率較高的“關鍵詞”予以視覺化的展現(xiàn)。詞云圖可以過濾掉大量低頻、低質(zhì)的文本信息,使得瀏覽者只要一眼掃過文本就可領略文本的主旨。實訓步驟:1、使用pip安裝wordcloud庫。2、導入wordcloud庫。importwordcloud3、編寫代碼實現(xiàn)詞云效果。importmatplotlib.pyplotaspltfromwordcloudimportWordCloudtext="python"wordc=WordCloud(background_color="white",repeat=True)wordc.generate(text)plt.axis("off")plt.imshow(wordc,interpolation="bilinear")plt.show()4、運行程序。示例效果如下:實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務2:冬奧會計時牌的開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:時間的格式化和顯示在編程中具有廣泛的應用。在圖形用戶界面(GraphicalUserInterface,GUI)或命令行界面(Command-LineInterface,CLI)中,程序(如日歷應用、時鐘應用、日程安排應用等)可能需要顯示當前時間、日期或特定時間的信息。在實際的軟件項目開發(fā)中,日志記錄、文檔生成、數(shù)據(jù)庫操作、定時任務、國際化與本地化等需求都需要使用時間格式化功能,通常會使用日期時間處理庫來進行時間的格式化和顯示,這些庫提供了豐富的功能和方法來處理日期、時間和時區(qū),方便且靈活。本實訓以冬奧會計時牌項目為例,使用Python的數(shù)據(jù)類型和運算符來實現(xiàn)時間的基本處理和顯示。實訓步驟:1、冬奧會計時牌的時間設置功能開發(fā)。通過異頻雷達獲取運動員成績,初始化計時牌中的時間設置。print("-----------歡迎使用冬奧會計時系統(tǒng)-------------")time=input("請輸入通過異頻雷達獲取的運動員成績(毫秒):")time=int(time)print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"毫秒")2、冬奧會計時牌的時間轉(zhuǎn)換功能開發(fā)。根據(jù)需求編寫代碼,實現(xiàn)時間轉(zhuǎn)換功能。print("-----------歡迎使用冬奧會計時系統(tǒng)-------------")time=input("請輸入通過異頻雷達獲取的運動員成績(毫秒):")time=int(time)print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"毫秒")time=time/1000print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"秒")time=time/60print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"分")time=time/60print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"時")time=time/24print("當前通過異頻雷達獲得的該運動員成績?yōu)椋?,time,"天")3、冬奧會計時牌的顯示功能開發(fā)。根據(jù)項目需求分析并實現(xiàn)計時牌顯示功能。print("-----------歡迎使用冬奧會計時系統(tǒng)-------------")time=input("請輸入通過異頻雷達獲取的運動員成績(毫秒):")time=int(time)#暫時存儲輸入的毫秒并將其轉(zhuǎn)換為秒staging=time//1000second=staging%60#存儲秒minute=staging//60#存儲總分鐘staging=minute//60minute=minute%60hour=staging%24day=staging//24print("時間是:",day,"天",hour,"時",minute,"分",second,"秒")4、運行程序。運行結(jié)果如下:實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務3:智能導盲犬功能開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:流程控制在實際的軟件項目開發(fā)中被廣泛應用于控制程序的執(zhí)行流程,使程序根據(jù)不同的條件執(zhí)行不同的操作。通過合理地使用流程控制語句,開發(fā)者可以實現(xiàn)程序的邏輯控制、錯誤處理、資源管理等功能,從而實現(xiàn)軟件項目的開發(fā)目標。本任務結(jié)合順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),實現(xiàn)智能導盲犬避障功能的開發(fā)。實訓步驟:1、智能導盲犬避障方向控制。行進過程中出現(xiàn)不同方向的障礙物時需要改變行進方向。假設用戶直行,前方出現(xiàn)障礙物,智能導盲犬應進行提示并改變行進方向來幫助用戶躲避。根據(jù)如上需求編寫程序,實現(xiàn)智能導盲犬改變行進方向的功能。distance_f=3#設置前方障礙物距離distance_l=3#設置左方障礙物距離distance_r=30#設置右方障礙物距離ifdistance_f<5:#判斷條件1print("前方有障礙物,請改變方向")ifdistance_l<5:#判斷條件2print("左方有障礙物,請勿左轉(zhuǎn)")ifdistance_r>=5:#判斷條件3print("右方障礙物距離較遠,請右轉(zhuǎn)")else:print("右方有障礙物,已無法改變方向,請掉頭")2、運行程序,觀察運行結(jié)果。3、智能導盲犬避障速度控制。智能導盲犬帶領用戶行進的過程中,需保證用戶的行進速度超過60m/min時與前方障礙物之間的距離不小于50m,距離不足50m時應提醒用戶減速;用戶的行進速度在40m/min至60m/min之間時與前方障礙物之間的距離不小于30m,距離不足30m時應提醒用戶減速;用戶的行進速度在40m/min以下時與前方障礙物之間的距離不小于10m,距離不足10m時應提醒用戶減速。任何情況下,一旦用戶與前方障礙物之間的距離小于5m,則應提醒用戶停止行進。根據(jù)如上需求編寫程序,實現(xiàn)智能導盲犬避障速度控制。distance=int(input("請輸入障礙物距離:"))#請輸入障礙物距離speed=int(input("請輸入當前速度:"))#請輸入當前速度ifspeed>=60:ifdistance>=50:print("前方障礙物較遠,請放心行進。")elifdistance>5:print("前方障礙物在安全距離之內(nèi),請減速!")else:print("前方有障礙物,請停止")elif40<=speed<60:ifdistance>=30:print("前方障礙物較遠,請放心行進。")elifdistance>5:print("前方障礙物在安全距離之內(nèi),請減速!")else:print("前方有障礙物,請停止")elifspeed<40:ifdistance>=10:print("前方障礙物較遠,請放心行進。")elifdistance>5:print("前方障礙物在安全距離之內(nèi),請減速!")else:print("前方有障礙物,請停止")4、運行結(jié)果,觀察運行結(jié)果。5、智能導盲犬功能測試。智能導盲犬功能測試主要包括用戶運動測試,即設置運動圈數(shù)測試智能導盲犬的功能。使用智能導盲犬進行10圈的測試,每運動完一圈,速度逐漸加快,運動過程中詢問用戶體驗,根據(jù)用戶身體狀況選擇是否繼續(xù)。最終返回運動圈數(shù)與速度。根據(jù)如上需求編寫程序,完成智能導盲犬功能測試。speed=int(input("請輸入當前速度:"))#設置初始速度sum=0#設置計數(shù)器foriinrange(1,10):print("即將開始第",i,"圈")control=input("請輸入是否繼續(xù),繼續(xù)請輸入‘1’,終止請輸入‘0’")#詢問用戶是否繼續(xù)ifcontrol=='0':#設置條件進行判斷break#跳出循環(huán)speed+=5sum+=1print("總共完成",sum,"圈","當前速度為:",speed)#輸出圈數(shù)及速度6、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務4:模擬探月工程開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:函數(shù)是軟件開發(fā)中的基本構(gòu)建塊之一,合理地使用函數(shù)可以提高代碼的可維護性、可復用性和可測試性,從而提高開發(fā)效率和代碼質(zhì)量。在大型軟件項目中,函數(shù)可以用于模塊化開發(fā),即將大型項目分解成多個模塊,每個模塊包含若干函數(shù)。這樣便于團隊成員分工合作,同時也便于代碼的管理和維護。同時,函數(shù)也可以用于封裝可重用的代碼片段、錯誤處理邏輯、算法,從而使代碼更加健壯,減少程序崩潰的可能性,以便代碼的復用和維護。本任務使用Python的函數(shù)來封裝相關算法模塊,模擬探月工程函數(shù)與功能的開發(fā)。實訓步驟:1、探月工程倒計時函數(shù)的開發(fā)?;鸺l(fā)射時使用倒計時,目的是確認火箭發(fā)射的時間零點。這里封裝一個countdown()函數(shù),其參數(shù)為一個字符串a(chǎn)ctionName,目的是將不同階段的倒計時名稱傳入函數(shù)內(nèi)部,通過一個while循環(huán)進行反向循環(huán)。根據(jù)需求編寫countdown()函數(shù),實現(xiàn)倒計時函數(shù)的封裝。importtimeimportemoji#倒計時模塊defcountdown(actionName):i=10whilei>0:print(actionName,'倒計時:',i)time.sleep(1)i-=1countdown('發(fā)射')2、運行程序,觀察運行結(jié)果。3、火箭發(fā)射功能的開發(fā)。火箭發(fā)射功能調(diào)用了任務一封裝的倒計時函數(shù)countdown()。為了形象地表現(xiàn)探月過程,這里使用第三方庫emoji來輔助輸出emoji表情符號。首先,在控制臺輸入如下代碼,安裝emoji庫。pipinstallemoji4、運行結(jié)果,觀察運行結(jié)果。5、月球采樣功能的開發(fā)。根據(jù)項目需求分析并實現(xiàn)月球采樣功能。#月球采樣defsampling(**lunar):print('開始采集月球樣本!',emoji.emojize(':crescent_moon:'))countdown('月面樣本采集')forkeyinlunar.keys():print('成功采集到月球樣本',key,lunar[key],'g')print('無人采樣結(jié)束,返航…………',emoji.emojize(':satellite:'))returnlunar6、探月返航功能的開發(fā)。根據(jù)項目需求分析,實現(xiàn)探月返航模塊。#火箭返航deflanding(lunar):print('已抵達地球附近,準備著陸!')countdown('著陸')print('著陸…………')forkeyinlunar.keys():print('本次探月任務成功采集到',key,'樣本',lunar[key],'g')print('本次探月任務圓滿完成!',emoji.emojize(':red_heart:'))7、火箭發(fā)射、月球采樣、探月返航等函數(shù)封裝完畢,最后將這些模塊集成在一起,通過主程序調(diào)用。launching()chinaLunar=sampling(lunarSoil=500,lunarRock=1500)landing(chinaLunar)8、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務5:“智慧旅游網(wǎng)絡預約系統(tǒng)”設計實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:數(shù)據(jù)結(jié)構(gòu)在實際軟件項目開發(fā)中扮演著至關重要的角色,它們是組織和管理數(shù)據(jù)的基礎,影響著程序的性能、可讀性和可維護性,是軟件開發(fā)的基礎和核心,對程序的性能和功能實現(xiàn)起著關鍵的作用。在軟件開發(fā)常見的數(shù)據(jù)庫管理、網(wǎng)絡通信、算法實現(xiàn)、人工智能和機器學習等方面,數(shù)據(jù)結(jié)構(gòu)至關重要。本任務以Python的數(shù)據(jù)結(jié)構(gòu)為基礎,實現(xiàn)旅游景點門票預約結(jié)果的存儲和查詢系統(tǒng)的開發(fā)。實訓步驟:1、門票預約結(jié)果數(shù)據(jù)導入功能的開發(fā)。通過Python內(nèi)置的JSON模塊處理數(shù)據(jù)JSON文件,將內(nèi)容反序列化后存放在一個元組內(nèi)。編寫loadJson()函數(shù),實現(xiàn)門票預約結(jié)果數(shù)據(jù)導入功能。defloadJson():withopen('result.json')asjson_file:results=json.load(json_file)returnresults2、調(diào)用用loadJson()函數(shù)并將返回值輸出。#主程序results=loadJson()print(results)3、運行程序,觀察運行結(jié)果。4、查詢門票預約結(jié)果功能的開發(fā)。封裝queryAll()函數(shù),該函數(shù)用于查詢所有預約結(jié)果。首先遍歷存放查詢結(jié)果的元組,取出每個元素內(nèi)存儲的字典;然后解析字典內(nèi)容,通過相應的鍵值對將字典內(nèi)存儲的詳細信息輸出。根據(jù)項目需求編寫queryAll()函數(shù),實現(xiàn)查詢所有預約結(jié)果的功能。defqueryAll(results):print('='*10,'開始查詢','='*10)forinfoinresults:print('用戶',info['name'],',身份證號碼為',info['id'],'于',info['testTime'],'預約結(jié)果為',info['testResult'])print('='*10,'查詢結(jié)束','='*10)5、在主程序中調(diào)用loadJson()函數(shù),并將返回值作為參數(shù)傳入queryAll()函數(shù)。#主程序results=loadJson()queryAll(results)6、運行結(jié)果,觀察運行結(jié)果。7、根據(jù)條件查詢預約結(jié)果功能的開發(fā)。通過唯一的身份證號碼來查詢門票預約結(jié)果。當身份證號碼存在時,將對應的預約結(jié)果顯示出來;若身份證號碼不存在,則提示用戶預約信息不存在。根據(jù)項目需求分析并編寫queryById()函數(shù)。defqueryById(id,results):print('='*10,'開始查詢','='*10)forinfoinresults:ifid==info['id']:print('身份證號碼為',info['id'],'的用戶',info['name'],'于',info['testTime'],'預約結(jié)果為',info['testResult'])breakelse:print('您所查找的預約信息不存在。')print('='*10,'查詢結(jié)束','='*10)8、在主程序中調(diào)用queryById()函數(shù)。#主程序results=loadJson()queryById('13010219820213****',results)#輸入錯誤/正確的身份證號碼9、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務6:生態(tài)保護模擬系統(tǒng)開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:面向?qū)ο缶幊淘趯嶋H的軟件項目開發(fā)中有著廣泛的應用,它提供了一種組織和管理代碼的方式,使得代碼更加模塊化,增強了代碼的可維護性和可擴展性。面向?qū)ο缶幊烫岢珜④浖到y(tǒng)分解成多個模塊,每個模塊負責實現(xiàn)特定的功能。每個模塊都可以看作一個對象,它封裝了數(shù)據(jù)和行為,并提供了一個清晰的接口供其他模塊使用。通過模塊化開發(fā),可以降低系統(tǒng)的復雜度,提高代碼的可維護性和可擴展性。面向?qū)ο蟮睦^承和多態(tài)特性使得代碼更加靈活和可重用。通過繼承,可以創(chuàng)建新的類并重用現(xiàn)有類的代碼,從而減少代碼冗余。通過多態(tài),可以以統(tǒng)一的方式處理不同類型的對象,從而提高代碼的靈活性和可擴展性。本任務通過類的定義、類的封裝與繼承、對象實例化與調(diào)用等模擬塞罕壩林場的生態(tài)保護。實訓步驟:1、塞罕壩林場類的封裝。封裝一個塞罕壩林場類。在此類中,構(gòu)造函數(shù)負責為實例屬性forestFarmName、tree、soil等賦值。show()方法的作用是顯示該林場類中的各種屬性值。初始狀態(tài)下,塞罕壩林場的環(huán)境較惡劣。根據(jù)項目需求分析編寫塞罕壩林場類。#塞罕壩林場類classSaihanbaForestFarm:water='干涸'#類屬性#構(gòu)造方法def__init__(self):self.forestFarmName='塞罕壩林場'self.tree='無'self.soil='荒漠'#顯示信息方法defshow(self):print(self.forestFarmName,'目前種植的植被是',self.tree,',土壤狀態(tài)是',self.soil,',水體狀態(tài)是',self.water)2、在主程序中實例化塞罕壩林場類,并調(diào)用其實例的show()方法。#主程序saihanba=SaihanbaForestFarm()saihanba.show()3、運行程序,觀察運行結(jié)果。4、林場分場類的開發(fā)。塞罕壩林場下設有多個分林場,本任務以其中的大喚起分場和北曼甸分場為例,封裝其類。首先,封裝大喚起分場類。該類繼承自塞罕壩林場類,并重寫了父類的構(gòu)造函數(shù),從而實現(xiàn)對類屬性的個性化定制。該類除了從父類繼承來的屬性,還加入了一個本類特有的屬性speciality,用于存儲特產(chǎn)信息;定義了showSpeciality()方法,用于輸出speciality屬性的值。根據(jù)項目需求編寫大喚起分場類DahuanqiForestFarm。#大喚起分場類classDahuanqiForestFarm(SaihanbaForestFarm):#重寫構(gòu)造方法def__init__(self,forestFarmName,tree,soil,speciality):self.forestFarmName=forestFarmNameself.tree=treeself.soil=soilself.speciality=speciality#顯示特產(chǎn)方法defshowSpeciality(self):print(self.forestFarmName,'的特產(chǎn)是:',self.speciality)5、在主程序中實例化大喚起分場類,并調(diào)用其show()方法和showSpeciality()方法。#主程序dahuanqi=DahuanqiForestFarm('大喚起分場','樟子松','微酸性','白蘑')dahuanqi.show()dahuanqi.showSpeciality()6、運行結(jié)果,觀察運行結(jié)果。7、封裝北曼甸分場類。該類的父類也是塞罕壩林場類,并重寫了父類的構(gòu)造函數(shù)。該類加入了一個本類特有的屬性food,用于存儲特色美食信息;定義了showFood()方法,用于輸出food屬性的值。根據(jù)項目需求編寫北曼甸分場類BeimandianForestFarm。#北曼甸分場類classBeimandianForestFarm(SaihanbaForestFarm):#重寫構(gòu)造方法def__init__(self,forestFarmName,tree,soil,food):self.forestFarmName=forestFarmNameself.tree=treeself.soil=soilself.food=food#顯示特色美食方法defshowFood(self):print(self.forestFarmName,'的特色美食是:',self.food)8、在主程序中實例化北曼甸分場類,并調(diào)用其show()方法和showFood()方法。#主程序beimandian=BeimandianForestFarm('北曼甸分場','云杉','弱堿性','貓耳面')beimandian.show()beimandian.showFood()9、運行程序,觀察運行結(jié)果。10、在父類SaihanbaForestFarm中定義一個模擬環(huán)境治理的protect()方法,通過改變類屬性的值,改變所有實例的類屬性值。根據(jù)項目需求分析編寫protect()方法,實現(xiàn)環(huán)境治理功能。#環(huán)境治理方法defprotect(self):print('='*80)print('發(fā)揚艱苦奮斗、甘于奉獻的塞罕壩精神,進行環(huán)境治理………………')print('='*80)self.tree='落葉松'self.soil='微酸性'SaihanbaForestFarm.water='豐沛清澈'11、在主程序中,依次實例化父類SaihanbaForestFarm和兩個子類DahuanqiForestFarm、BeimandianForestFarm,并調(diào)用這些實例的show()方法。然后,調(diào)用父類實例的protect()方法。最后,再次調(diào)用實例的show()方法和兩個子類的showSpeciality()以及showFood()方法。#主程序saihanba=SaihanbaForestFarm()dahuanqi=DahuanqiForestFarm('大喚起分場','樟子松','微酸性','白蘑')beimandian=BeimandianForestFarm('北曼甸分場','云杉','弱堿性','貓耳面')saihanba.show()dahuanqi.show()beimandian.show()tect()saihanba.show()dahuanqi.show()beimandian.show()dahuanqi.showSpeciality()beimandian.showFood()12、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務7:項目文件管理系統(tǒng)開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:文件在實際的軟件項目開發(fā)中有著廣泛的應用場景。軟件系統(tǒng)的數(shù)據(jù)庫連接信息、應用程序參數(shù)、日志等通常都使用文件的形式來存儲。另外,數(shù)據(jù)備份、數(shù)據(jù)導入與導出、文件傳輸、數(shù)據(jù)緩存等功能都依賴于文件操作來實現(xiàn)。本任務通過Python的文件操作來實現(xiàn)項目文件管理系統(tǒng)的基本功能。實訓步驟:1、將項目進度情況以文本文件的形式進行保存,建立項目文件。fs=open("D:\項目\項目進度情況.txt",'w')#以寫模式打開指定路徑下的文件“項目進度情況.txt”fs.close2、項目文件的修改。將指定內(nèi)容寫入文件中。fs=open("D:\項目\項目進度情況.txt",'a',encoding='UTF-8')fs.write("2022.6.18簽訂合同\n")fs.close3、項目文件的管理。對文本文件進行備份時,可將它們保存在不同的分區(qū)中。假設需要將“D:\項目\項目進度情況.txt”在“E:\項目備份”中以同樣的名字進行備份,這其實相當于在E盤創(chuàng)建一個目錄(文件夾),然后將“項目進度情況.txt”文件復制到該目錄下。importosimportshutilos.mkdir("E:/項目備份")shutil.copy("D:\項目\項目進度情況.txt","E:\項目備份")4、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務8:系統(tǒng)異常處理預案實訓條件:PC機、Python3.8+、PyCharm/VSCode實訓目的:在進行軟件項目開發(fā)時,需要對可能的異常進行防范與管理,盡可能減少異常的發(fā)生,或者在異常無法避免時,降低它給系統(tǒng)功能帶來的影響。異常處理對于軟件系統(tǒng)的健壯性具有極其重要的意義,尤其是在錯誤檢測與恢復、用戶體驗、數(shù)據(jù)完整性、安全性等方面更為重要。為了保證程序的健壯性與容錯性,即在遇到異常時程序不會崩潰,需要對異常進行處理。可以通過編寫特定的代碼來捕捉異常,如果捕捉成功則進入另外一個處理分支,執(zhí)行為其定制的邏輯,避免程序崩潰,從而保證程序按照設定的邏輯執(zhí)行完畢。本任務主要完成系統(tǒng)異常處理功能的設置。實訓步驟:1、系統(tǒng)異常感知功能的開發(fā)。能感知系統(tǒng)異常是處理異常的前提和基礎,也就是說,處理異常前要捕獲到異常。首先根據(jù)異常類進行異常的感知。importosimportshutiltry:os.mkdir("F:\項目備份")shutil.copy("D:\項目\項目進度情況.txt","F:\項目備份")exceptFileNotFoundError:print("是否提供了錯誤的路徑?請檢查")2、若本機沒有“F:”盤,則系統(tǒng)提示異常信息。3、系統(tǒng)異常預案處理功能的開發(fā)。對系統(tǒng)異常的主動感知是能夠正確處理異常的前提。所以,在感知異常的同時,就要考慮在程序中如何處理異常,降低異常對程序的影響。網(wǎng)購是現(xiàn)在很多人都已經(jīng)習慣了的購物方式,極大地方便了用戶選擇和購買。在購買商品時,需要填寫所選商品的購買數(shù)量。顯然,只有數(shù)量大于1才滿足購買要求,如果數(shù)量小于1,則會收到網(wǎng)站的提示。根據(jù)任務需求,使用異常處理檢查購買數(shù)量是否滿足要求。defshopping():n1=eval(input('enteranumber:'))n2=eval(input('enteranumber:'))try:result=n1/n2exceptZeroDivisionError:print('除數(shù)不能為0,請重新輸入')shopping()exceptException:print('除數(shù)和被除數(shù)應為數(shù)值')shopping()else:print('{}/{}={}'.format(n1,n2,result))if__name__=='__main__':shopping()4、運行結(jié)果,觀察運行結(jié)果。5、系統(tǒng)異常預案優(yōu)化功能的開發(fā)。拋出異常是處理異常時常用的辦法。無論是檔案管理系統(tǒng)還是戶籍管理系統(tǒng),都需要用戶上傳個人照片,并對照片的格式有一定的要求。在某系統(tǒng)中,只能上傳最常見的PNG、JPG和JPEG格式的圖片。若不是這些格式的圖片,將被要求重新上傳。根據(jù)任務需求,編寫程序:classFileTypeError(Exception):def__init__(self,err="僅支持PNG/JPG/JPEG格式"):super().__init__(err)file_name=input("請輸入上傳圖片的名稱(包含格式):")try:iffile_name.split(".")[1]in["JPG","PNG","JPEG"]:print("上傳成功")else:raiseFileTypeErrorexceptExceptionaserror:print(error)6、運行程序,觀察運行結(jié)果。實訓內(nèi)容:(主要步驟、核心代碼/指令)1、實訓步驟2、運行結(jié)果截圖注:可附頁項目實訓報告專業(yè)班級姓名學號指導教師時間課程名稱Python語言程序設計地點**實訓室實訓名稱任務9:電子檔案管理系統(tǒng)開發(fā)實訓條件:PC機、Python3.8+、PyCharm/VSCode、MySQL5.7+實訓目的:數(shù)據(jù)庫提供了強大的查詢和分析功能,可以快速檢索和分析大量的數(shù)據(jù)。通過SQL等查詢語言,可以方便地執(zhí)行各種復雜的數(shù)據(jù)查詢和分析操作,從而幫助用戶更好地理解數(shù)據(jù)和獲取有用的信息。數(shù)據(jù)庫還提供了高效的數(shù)據(jù)存儲和檢索機制,可以滿足多用戶環(huán)境下的數(shù)據(jù)管理需求。它通常具有良好的安全性,可以進行數(shù)據(jù)加密、訪問控制、權(quán)限管理等,保護數(shù)據(jù)免受未經(jīng)授權(quán)的訪問和惡意攻擊。本任務將通過Python操作MySQL,實現(xiàn)對電子檔案管理系統(tǒng)的數(shù)據(jù)庫、數(shù)據(jù)表和數(shù)據(jù)的基本管理。實訓步驟:1、電子檔案管理系統(tǒng)的數(shù)據(jù)庫管理。連接本地MySQL,利用游標在MySQL中創(chuàng)建電子檔案管理系統(tǒng)數(shù)據(jù)庫files_db。importpymysql#連接本地數(shù)據(jù)庫,登錄名為root,密碼為1234cnn=pymysql.connect(host='localhost',user='root',password='1234')cursor=cnn.cursor()#創(chuàng)建一個

溫馨提示

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

評論

0/150

提交評論