摘要:為解決考試過程中學(xué)生提交文件數(shù)量大、類型多、易出錯等問題,以《實(shí)用軟件應(yīng)用》課程考核為例,采用Python語言及第三方庫Pandas開發(fā)文件統(tǒng)計(jì)程序,按照需求分析、總體設(shè)和、模塊實(shí)現(xiàn),闡述開發(fā)流程,側(cè)重介紹交互設(shè)計(jì)及精確統(tǒng)計(jì)函數(shù)。該程序既可滿足日常作業(yè)統(tǒng)計(jì)需求,亦可滿足考試文件即時(shí)統(tǒng)計(jì)需求,有效提升了統(tǒng)計(jì)的效率和準(zhǔn)確性,且易于擴(kuò)展和移植,具有較好的應(yīng)用價(jià)值及推廣價(jià)值。
關(guān)鍵詞:Python程序開發(fā)文件統(tǒng)計(jì)模塊
DevelopmentofFileStatisticsProgramBasedonPython
ZHANGXiangLUYuhongXUEWei
InstituteofDisasterPrevention,Sanhe,HebeiProvince,065201China
Abstract:Inordertosolvetheproblemsoflargenumberoffiles,multipletypesanderror-proneintheexaminationprocess,thispapertakesthecourseassessmentofPracticalSoftwareApplicationasanexample,usesPythonlanguageandthethird-partylibraryPandastodevelopthefilestatisticsprogram.Thedevelopmentprocessisdescribedaccordingtotherequirementsanalysis,overalldesignandmodulerealization,withemphasisoninteractivedesignandtheaccuratestatisticalfunction.Theprogramcanmeetbothdailyhomeworkstatisticsneedsandreal-timestatisticsneedsforexamdocuments,effectivelyimprovingtheefficiencyandaccuracyofstatistics;anditiseasytoexpandandtransplant,withgoodapplicationvalueandpromotionvalue.
KeyWords:Python;Programmingdevelopment;Filestatistics;Module
隨著信息時(shí)代的飛速發(fā)展,高??荚囆问揭沧兊秘S富多樣。相較于傳統(tǒng)的紙質(zhì)文檔(包括試卷、報(bào)告、論文等),教師通常傾向于更加環(huán)保且安全可靠的電子文檔。如何在限定時(shí)間內(nèi)快捷和有效地統(tǒng)計(jì)電子文檔成為高??荚嚬芾砻媾R的新挑戰(zhàn)。
為滿足包括文檔在內(nèi)的更多類型文件的統(tǒng)計(jì)需求,本文以文件統(tǒng)計(jì)為核心目標(biāo),闡述其程序設(shè)計(jì)及實(shí)現(xiàn)過程。結(jié)合實(shí)際教學(xué)經(jīng)歷,以《實(shí)用軟件應(yīng)用》課程考核為例,展開說明。
1需求分析
1.1基本功能需求
1.2擴(kuò)展功能需求
限于篇幅,本文僅介紹基本功能的實(shí)現(xiàn)過程。
1.3技術(shù)需求
操作系統(tǒng)為Windows10,開發(fā)語言為Python3,開發(fā)工具選擇官網(wǎng)免費(fèi)的PyCharmCommunityEdition2023.3.5即可。此外,pandas庫用于快速處理和分析數(shù)據(jù)集,通過pip工具安裝和管理;os庫提供訪問文件、管理文件路徑等函數(shù);datetime庫提供日期和時(shí)間處理函數(shù)。os庫和datetime庫皆為Python標(biāo)準(zhǔn)庫,無需安裝。在腳本中導(dǎo)入相關(guān)模塊,即可使用其中所有函數(shù)和方法。
鑒于人工智能在軟件開發(fā)領(lǐng)域的廣泛應(yīng)用,為縮短開發(fā)周期,借助百度AI助手中心提供的Python編程助手搭建基本功能函數(shù)框架,在此基礎(chǔ)上,補(bǔ)充細(xì)節(jié)代碼。程序整體架構(gòu)相對復(fù)雜,需人工決策完成。
2總體設(shè)計(jì)
為提高代碼復(fù)用率,秉持著模塊化的設(shè)計(jì)理念編寫程序。日常文件統(tǒng)計(jì)與考試文件統(tǒng)計(jì)的最大區(qū)別在于文件的時(shí)間效力。也就是說,日常統(tǒng)計(jì)文件時(shí),大多只考慮文件的名稱及類型,如林玫[1]和魏晨希[2]設(shè)計(jì)的作業(yè)統(tǒng)計(jì)程序,還有依據(jù)代碼文件特征檢測抄襲行為,如張峰等人[3]、曾杰等人[4-5]和劉飛翔等人[6]分別提出不同的檢測方法。統(tǒng)計(jì)考試文件時(shí),需要額外考慮文件的時(shí)間屬性,若文件的修改日期為考試日期,則是有效的答案文件,否則為無效的素材文件,鑒于此,可將時(shí)間作為參數(shù)傳遞給統(tǒng)計(jì)函數(shù),以實(shí)現(xiàn)相同函數(shù)在不同場景中的文件統(tǒng)計(jì)功能。
基于需求分析,程序功能模塊劃分如圖1所示。根據(jù)統(tǒng)計(jì)數(shù)據(jù)的粒度,統(tǒng)計(jì)函數(shù)分為粗略統(tǒng)計(jì)和精確統(tǒng)計(jì)。粗略統(tǒng)計(jì)以文件夾為分析對象,精確統(tǒng)計(jì)以文件夾及其下所有文件為分析對象,二者結(jié)合使用,讓統(tǒng)計(jì)工作實(shí)現(xiàn)粗中有細(xì),逐層細(xì)化。
考試過程中,學(xué)生提交文件的數(shù)量呈現(xiàn)遞增趨勢。初期文件較少時(shí),適宜統(tǒng)計(jì)提交文件的學(xué)生名單;后期文件較多時(shí),適宜統(tǒng)計(jì)未提交文件的學(xué)生名單。這樣有助于更快發(fā)現(xiàn)問題,如學(xué)生文件夾名稱不對、答案文件數(shù)量不對等。在粗略統(tǒng)計(jì)和精確統(tǒng)計(jì)中,針對這兩種情況都做了考慮。
自動刷新是為解決考試人數(shù)眾多或提交時(shí)間密集時(shí)手動操作效率低下問題而設(shè)計(jì)的,設(shè)定截止時(shí)間和刷新間隔兩個參數(shù),程序自動進(jìn)行統(tǒng)計(jì)工作。超時(shí)統(tǒng)計(jì)是考試結(jié)束后對全部答案文件的提交時(shí)間進(jìn)行超時(shí)判斷,顯示并保存統(tǒng)計(jì)結(jié)果。數(shù)據(jù)分析可根據(jù)課程教學(xué)改革需求選擇數(shù)據(jù)進(jìn)行具體分析,此處不再贅述。
3模塊實(shí)現(xiàn)
3.1操作界面
操作界面能夠反映用戶與程序的交互是否清晰合理,設(shè)計(jì)目標(biāo)為符合操作流程的同時(shí)盡量減少操作步驟。
首先,不同場景的功能需求不同,操作界面分為二級。其次,確定文件路徑和學(xué)生名單是統(tǒng)計(jì)的前提條件,為簡化操作步驟,學(xué)生名單與提交文件置于同一目錄下,在二級界面顯示前,僅需輸入文件路徑。最后,多種統(tǒng)計(jì)方法結(jié)合,滿足不同層次的統(tǒng)計(jì)需求。界面設(shè)計(jì)最終效果如圖2~4所示。并以2023年《實(shí)用軟件應(yīng)用》期末考試某考場數(shù)據(jù)為例進(jìn)行測試,見表1。
3.2粗略統(tǒng)計(jì)
粗略統(tǒng)計(jì)僅統(tǒng)計(jì)學(xué)生文件夾,不對下一級文件進(jìn)行檢查。該類型統(tǒng)計(jì)可以發(fā)現(xiàn)未提交學(xué)生名單及已提交文件夾的名稱錯誤(沒有包含學(xué)號或姓名關(guān)鍵信息),但無法確認(rèn)學(xué)生文件夾中答案文件是否齊備,甚至是否包含答案文件。
考慮到在當(dāng)前路徑下有33個一級子文件夾,在日常文件統(tǒng)計(jì)時(shí),查看未提交信息更為直觀。輸入“12”,顯示結(jié)果如圖5所示,可知有2名未提交學(xué)生,包括1名緩考學(xué)生和1名文件夾名稱不對的學(xué)生。
3.3精確統(tǒng)計(jì)
精確統(tǒng)計(jì)不僅統(tǒng)計(jì)學(xué)生文件夾,還對所有下級文件夾進(jìn)行遞歸檢查。在粗略統(tǒng)計(jì)的基礎(chǔ)上,判定學(xué)生文件夾中答案文件是否齊備,方便老師提醒學(xué)生提交缺失文件,彌補(bǔ)粗略統(tǒng)計(jì)漏洞。
圖6對粗略統(tǒng)計(jì)得到的31名學(xué)生文件夾進(jìn)一步分析,查看答案文件提交詳情,可知有2名學(xué)生各缺少1份答案文件。圖7顯示,由于考試場景考慮時(shí)間因素,因此,同一份數(shù)據(jù)日常統(tǒng)計(jì)和考試統(tǒng)計(jì)可能會得到不同的結(jié)果。精確統(tǒng)計(jì)函數(shù)關(guān)鍵代碼如圖8所示,利用參數(shù)choice_time區(qū)分日常文件統(tǒng)計(jì)與考試文件統(tǒng)計(jì)。
4結(jié)語
經(jīng)測試,該程序具有可讀性、健壯性和擴(kuò)展性,既可應(yīng)用于日常統(tǒng)計(jì)文件工作,亦可應(yīng)用于考試情景下即時(shí)統(tǒng)計(jì)文件工作。為提高可移植性,使用PyInstaller工具將其打包為.exe格式的可執(zhí)行文件,方便傳輸和終端執(zhí)行。
通過該文件統(tǒng)計(jì)程序,考務(wù)人員可以高效管理學(xué)生文件,更專注于監(jiān)控考場和處理突發(fā)情況。同時(shí),電子文件易于檢索、共享、存檔和備份,為考試數(shù)據(jù)的長期保存和協(xié)作管理提供了可靠保障。因此,高??荚囍胁捎梦募y(tǒng)計(jì)程序是必然趨勢,有助于提升考試管理的現(xiàn)代化水平。
參考文獻(xiàn)
[1]林玫.RCC平臺上作業(yè)統(tǒng)計(jì)的Python程序設(shè)計(jì)與實(shí)現(xiàn)[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào),2023,25(2):24-28.
[2]魏晨希.基于Python的作業(yè)統(tǒng)計(jì)程序設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2020(7):3-5,18.
[3]張峰,韋友良,秦玉成.基于程序流程圖和圖注意力網(wǎng)絡(luò)的跨語言代碼抄襲檢測方法[J/OL].小型微型計(jì)算機(jī)系統(tǒng),1-9[2024-04-21].
https://kns-cnki-net.webvpn.cidp.edu.cn/kcms/detail/21.1106.TP.20240206.1025.012.html.