杜瑞慶 姚佰允 黎作鵬



摘要:當前,網絡技術迅速發展,在線系統的應用逐漸普及。然而,一些高校在C語言程序設計課后練習方面仍采用傳統的人工出題和批改方式,效率較低。為了提高學生的學習效率并減輕教師的批改壓力,文章開發了一款基于ASP.NET的C語言練習系統。該系統運用了HTML、Ajax等技術,并采用SQL Server數據庫設計了在線練習系統網站。該系統的核心功能在于教師能夠通過后臺管理學生信息、編輯和添加題目、查看學生成績及題目練習情況。經過嚴格的測試,該系統運行穩定,能顯著提高學生的學習效率,減輕教師的批改壓力。
關鍵詞:ASP.NET;C語言;在線練習系統; 系統設計;自動評分
中圖分類號:TP311.1 文獻標識碼:A
文章編號:1009-3044(2024)10-0068-03
0 引言
提升大學生C語言的編程能力,不僅是教師關心的切實問題之一,也是學生今后學習及提升就業競爭能力的客觀需求[1]。在提升學生編程能力的過程中,適量的編程題練習是不可或缺的。然而,當前該課程的常規練習仍采用傳統的紙質方式,通常依賴人工命題和批改評分。在互聯網技術高度發達的今天,傳統的人工紙質批改方式已難以滿足現代教育的需求。這種方式的勞動強度大、效率低下,且在大班教學中,由于作業數量眾多,容易導致批改延誤,影響學生的學習進程。在線練習系統能夠有效地彌補傳統學習方式的不足。教師可通過系統上傳練習題,學生在有網絡的情況下,可隨時隨地進行學習。這最大程度地利用了網絡資源,減輕了老師的教學壓力,提高了學生的學習效率。此外,系統能夠自動對學生的源代碼進行測試并給出評分,以便學生參考糾正。因此,開發一款能夠高效、準確地評價C語言編程題的在線練習系統顯得尤為重要。
1 關鍵技術簡介
1.1 ASP.NET
ASP.NET 是一個以.NET Framework 為基礎的Web開發平臺,廣泛應用于創建交互式的在線Web網站。在開發過程中,ASP.NET相較于其他語言更加簡潔,且代碼量相對較少。其采用事件驅動和數據綁定的方式進行開發,將程序代碼與用戶界面完全分離,使得結構更加清晰[2]。此外,ASP.NET在保證用戶安全性、執行效率高、易于管理、適應性強的特點上表現出色,因此系統的開發主要基于ASP.NET的開發。
1.2 Javascript
JavaScript是一種解釋型、可即時編譯型的腳本語言,廣泛應用于Web網站開發,可以使網頁變得更加有趣、動態,并為用戶提供更流暢美觀的瀏覽效果。JSacvraipStc可rip以t能使夠得賦整個予系網統頁更交加互易行于為操,作合,理更加利友用好Ja,v同a?時有利于網頁結構和行為的分離。系統中用到了.JS 文件,這些文件使得系統結構更加清晰,例如選擇題中正確答案的隱藏與顯示就是使用了JavaScript的異步刷新功能。
1.3 Ajax
Ajax是一種通過JavaScript和XML結合而成的異步刷新技術,它是一種新的方法,而不是一種新的語言。在不加載整個網頁界面的情況下,Ajax技術只需要交換少量數據,利用瀏覽器內部的對象 XML? HttpRequest 來實現發送和接收HTTP請求與響應信息,從而完成對部分網頁進行更新[3]。因此,學習Ajax 的基礎就是了解XMLHttpRequest對象。
2 C 語言練習系統的分析與設計
2.1 C 語言練習系統業務需求的分析
根據教育部的最新通知,我國高等教育已逐步進入普及化階段,學生數量的大幅增加使得傳統的小班化教學模式面臨挑戰。為確保每位學生都能得到有效的輔導,減輕教師的作業批改負擔,并為學生提供充足的練習機會,本文計劃研發一款基于ASP.NET技術的C語言在線練習系統。此系統將為學生提供一個實時的在線練習平臺,只要具備網絡連接條件,學生即可隨時隨地進行在線練習。此外,該系統還將具備自動評分功能,能夠精準評估學生的練習成果,以減輕教師的工作負擔。
1) 開發目的:提升教師工作效率及學生學習效率,實現教師對學生日常練習的集中管理。
2) 應用對象:全國各高校教授及學習基礎程序設計語言——C語言的師生。教師可上傳習題,學生則可在線練習。
3) 主要功能:實現各班教師于后臺添加C語言選擇題、編程題并發布,所帶學生登錄系統后在線練習,提交后教師和學生均可查看學生的練習成績。
4) 影響范圍:全國各高校學習C語言的所有專業學生及授課教師。
5) 頂層數據流圖。
2.2 ASP.NET 的C 練習系統功能需求分析
從功能上看,一個完整的C 語言練習系統需要完成管理員、教師和學生3個模塊的功能。
首先,管理員模塊是整個系統的核心。它負責系統的維護和管理,確保系統的正常運行。管理員可以創建教師、學生賬戶,設置學生管理權限,監控學生的學習進度等。
其次,教師模塊是連接管理員和學生的橋梁。教師可以通過系統發布編程題目,查看學生的答題記錄和成績,為學生提供及時的反饋。此外,教師還需要定期更新題庫,添加新的編程題目,以滿足學生的學習需求。同時,教師還可以設置作業、考試等學習任務,以及對學生的表現進行評估和統計。這有助于教師全面了解學生的學習情況,為后續的教學提供參考。
最后,學生模塊則是為學生提供了一個自主學習的平臺。學生可以在系統中答題,查看自己的答題記錄和成績,了解自己的學習進度。此外,學生還可以通過系統進行在線學習,提高自己的編程能力。
系統的具體功能內容如圖2所示。
2.3 數據庫設計
根據系統的功能需求,設計出主要的 5 個數據庫實體,包括:管理員、教師、學生、選擇題和編程題實體,如表1所示。
系統主要包含12張表,管理員信息表、教師個人信息表、學生個人信息表、學生與教師信息表、選擇題類型信息表、選擇題信息表、編程題類型信息表、編程題信息表、班級信息表、學生考試選擇題信息表、學生考試編程題信息表、考試成績表。在這些表中,用戶賬號和密碼都采用Varchar數據類型,該格式可以靈活存儲數據,合理利用內存空間。每個用戶都包含一個備注欄,用以標注用戶的特殊信息。
2.4 系統頁面描述
系統主要包含管理員、教師、學生3個模塊,每個模塊下又包含很多功能頁面,表2介紹了各個模塊中一些比較重要的網頁功能。
3 C 語言練習系統詳細設計
3.1 登錄模塊詳細設計與實現
在用戶登錄系統的過程中,首先要進行角色選擇。可供選擇的角色包括學生、教師及管理員。一旦用戶完成了角色選擇,系統將引導他們進入各自相應的登錄界面。在登錄界面上,用戶需要輸入自己的用戶名、密碼以及用戶類型等信息。只有當所有這些信息都準確無誤時,用戶才能成功登錄并進入下一個界面。
3.2 管理員模塊的詳細設計要求與實現
管理員在進入練習系統后,可以執行學生和教師信息的增、刪、改、查等維護操作。
學生信息和教師信息的添加。添加成員信息可采用單獨插入或批量導入方式。在單獨插入時,管理員只需填寫教師或學生的個人信息,系統會接收到頁面填寫的這些信息,并調用SQL語句將信息插入對應的教師表或學生表中。如果批量導入,則須將所有學生或教師的信息存入Excel表中,上傳至臨時文件夾,再傳到服務器上。隨后,管理員使用for循環讀取表格中每個單元格的信息,確保每條信息都已讀取。最后,使用SQL語句將信息插入對應的教師個人信心表或學生個人信息表中。
建立班級與教師的綁定關系。在課程開始之前,管理員需要為每個班級指派特定的教師,并授予他們權限來添加和發布編程題以及查看本班學生的成績。為了方便操作,管理員可以在添加教師和班級關系時使用下拉菜單來展示和選擇教師和班級信息。管理員只需要在下拉菜單中找到相應的教師和班級,點擊添加,即可將該教師與所選班級綁定。
3.3 教師模塊詳細設計與實現
在教師登錄系統后,可以對班級學生信息進行一系列的管理操作,包括添加、修改、查看等,同時也可以對不同類型的題目進行導入和更新[4]。對于選擇題,可以選擇從題庫中單獨插入或進行批量導入。然而,對于編程題,流程相對復雜一些。首先需要確定編程題的類型,然后根據不同的類型格式,添加相應的編程題以及編程題的測試用例。這樣的設計旨在方便查找和管理,使整個編程題庫更加條理清晰。如果題目出現錯誤,可以及時查找并糾正。
學生練習作業布置。受教學計劃的安排及現實因素的影響,各班級的學習科目或進度可能存在差異。因此,各班級教師布置的作業也可能有所不同。在系統頁面中,用戶可選擇相應的班級及題號進行作業布置。完成選擇后,點擊提交,所提交的班級及題號信息將存儲于相應的數據庫表中。這樣,不同班級的學生在進入系統后將看到不同的題目。這是由于系統會先查詢數據庫中該班級信息及其對應的題號信息,然后才能將不同的題目呈現在頁面中。
學生應答信息的查閱。教師可透過選取特定的班級,進而查看該班級中每一位同學在編程題目中的總得分情況。若有必要深入了解特定學生的編程練習情況,教師只需點擊“查看詳細信息”按鈕,系統將自動跳轉至新的界面,完整展示該學生的所有編程題目得分情況。點擊具體的題目編號,教師還能查看學生提交的源代碼。通過觀察每個學生在各道編程題目中的得分以及他們提交的源代碼,教師能更準確地掌握學生的學習進度,從而及時調整教學策略。此外,在期末考試時,教師可根據系統內各難度題目的得分情況,有針對性地調整期末試卷的難易程度。
3.4 學生模塊詳細設計與實現
學生登錄系統后,主要進行答題和查看分數的操作。題目類型包括選擇題和編程題。學生可以選擇當日所學的章節或較為薄弱的章節內容進行選擇題練習。練習完成后,點擊提交按鈕,系統會生成本章節的選擇題分數。另外,學生也可以選擇編程題進行練習。根據題目列表,學生可以挑選需要的題目進行練習。提交源程序后,系統會自動評分。如果提示編譯未通過,學生可以重新提交源文件,系統會再次評分。評分完成后,學生可以查看編程題分數。
學生選擇題答題。學生登錄系統后,需在答題頁面選擇正確答案。正確答案與題目選項均存儲在同一個列表中,并以隱藏狀態顯示。當學生點擊提交按鈕后,系統會將正確答案選項及解析顯示在界面上。
學生編程題答題。學生登錄系統后,可自主選擇需要練習的章節和編程題,在編輯框中輸入源代碼后點擊提交。系統接收到學生提交的源文件后,會調用DOS命令將其編譯成一個可執行文件。如果編譯成功,系統將進入測試環節,自動從數據庫中提取測試用例,將學生的輸出結果與正確答案進行比對,根據測試用例通過的個數,給予一個公正的分數,并將分數存儲到學生編程題得分表中。如果編譯失敗,系統將提醒學生出現編譯錯誤,并顯示相關的錯誤信息,以便學生自行調試后再次提交。
學生得分信息查詢。在系統評分完成后,學生可以在得分統計頁面查看每一道編程題的得分和總平均分。這些成績信息已存儲在數據庫表中,并且通過GridVeiw控件在頁面上展示。
4 總結
當前,各高校教學改革的核心領域之一就是應用計算機技術,對學校各學科題庫的管理、試卷組合、測試及評分體系進行全面優化。在當今線上與線下相結合的教學發展大背景下,各高校都已研發出相似的題目練習系統。這款系統的設計不僅符合高校教師線上教學的需求,同時也推動了無紙化教學的普及,極大地減輕了高校教師的教學工作量,并加強了教師與學生之間的聯系。因此,該系統能在高校的C語言程序設計課程練習中得以應用。
參考文獻:
[1] 何波玲.C/C++程序設計練習系統的開發與設計[J].科技傳播,2016,8(10):102-103.
[2] 黃金波,杜曉明,呂劍鋒,等.XML數據庫技術在IETM中的應用研究[J].科學技術與工程,2006,6(23):4795-4797.
[3] 王雙立,譚煒樂,呂鋼,等.基于ASP.net的ECharts動態多組曲線圖表的實現[J].江蘇科技信息,2018,35(32):33-35.
[4] 張曉杰,盧涵宇.基于B/S的學生信息管理系統設計與實現[J].電腦知識與技術,2013,9(29):6552-6554.
【通聯編輯:王 力】