扶婕
(江西財經(jīng)大學(xué)軟件學(xué)院,南昌 330032)
隨著社會的發(fā)展以及教育質(zhì)量的提高,我國中小學(xué)教學(xué)規(guī)模不斷擴(kuò)大,招生人數(shù)日漸增多,所教學(xué)的課程以及對學(xué)生的考核形式也逐漸多樣化,這使得教務(wù)管理工作在數(shù)量和難度上都大大增加。學(xué)生考試成績管理在教務(wù)管理工作中處于核心地位,考試成績管理工作是衡量教學(xué)及管理質(zhì)量的重要指標(biāo)。而當(dāng)今不少中小學(xué)對成績管理依然采用傳統(tǒng)的人工管理方式,這種管理方式不僅效率低下,并且隨著時間的推移,將產(chǎn)生大量的文件和數(shù)據(jù),對于查找、更新和維護(hù)都帶來諸多的困難和不便。
在目前信息時代下,利用計算機(jī)技術(shù)進(jìn)行信息處理無疑是更好的解決方案。使用微軟.NET框架中的WPF技術(shù)以及C#高級編程語言,能夠高效率地開發(fā)出Windows平臺下的桌面應(yīng)用程序。利用這些技術(shù)開發(fā)一款學(xué)生成績管理系統(tǒng),能夠幫助教務(wù)管理者對學(xué)生成績信息更加高效地管理、維護(hù),從而對教學(xué)質(zhì)量有進(jìn)一步的提升。
針對當(dāng)今中小學(xué)狀況來看,不同地區(qū)、不同學(xué)校的教學(xué)手段不盡相同,甚至可能有著較大的區(qū)別,在學(xué)生成績管理工作中則主要體現(xiàn)在其所開設(shè)課程以及考核方式等不同。例如對于高中而言,各班級具有理科班、文科班等區(qū)分,對其所開設(shè)的考試也有不同的側(cè)重處,因此在本系統(tǒng)中應(yīng)當(dāng)實(shí)現(xiàn)課程管理、班級管理和考試管理功能,使得教學(xué)管理人員能夠針對不同課程、不同班級進(jìn)行不同的考核方式。
考試成績管理工作能夠影響到學(xué)校中的每一位師生,而考試成績管理系統(tǒng)也是如此。教師需要使用該系統(tǒng)對其所教授課程的考試進(jìn)行分?jǐn)?shù)錄入、導(dǎo)出打印等,學(xué)生可以通過該系統(tǒng)及時地對考試成績進(jìn)行查詢、并且與其他同學(xué)或家長進(jìn)行分享等。
由上,系統(tǒng)所主要面向的用戶可分為三大類:教學(xué)管理員、教師以及學(xué)生,各用戶類別可進(jìn)行的操作如下:
(1)教學(xué)管理員:課程管理、班級管理、考試管理、用戶管理;
(2)教師:分?jǐn)?shù)錄入、分?jǐn)?shù)導(dǎo)出;
(3)學(xué)生:分?jǐn)?shù)查詢。
系統(tǒng)采用 C/S(Client/Server,客戶端/服務(wù)器)架構(gòu)。在該架構(gòu)中,客戶端通過互聯(lián)網(wǎng)與服務(wù)器形成連接,整個系統(tǒng)的工作將合理地分配到客戶端與服務(wù)器中,能夠充分地利用兩端的硬件資源,并降低系統(tǒng)的資源開銷。該架構(gòu)模型如圖1所示。
在本系統(tǒng)中,客戶端主要負(fù)責(zé)數(shù)據(jù)呈現(xiàn)、操作提示、數(shù)據(jù)錄入查詢等功能,服務(wù)器端則主要負(fù)責(zé)數(shù)據(jù)庫的維護(hù)功能。
圖1 C/S架構(gòu)模式圖
根據(jù)本系統(tǒng)所面向的用戶分類,系統(tǒng)的功能模塊主要劃分為教學(xué)管理員用戶模塊、教師用戶模塊以及學(xué)生模塊。系統(tǒng)功能模塊圖如圖2所示。各模塊所實(shí)現(xiàn)功能詳細(xì)描述如下:
(1)管理員用戶模塊
①課程管理:對學(xué)校所開設(shè)的所有課程進(jìn)行添加、刪除、修改等;
②班級管理:根據(jù)不同的學(xué)年,對班級進(jìn)行添加、刪除等更改;
③考試管理:根據(jù)不同班級、不同課程進(jìn)行考試的管理;
④用戶管理:對本系統(tǒng)的用戶進(jìn)行管理,包括教師、學(xué)生。
(2)教師用戶模塊
①分?jǐn)?shù)錄入:對自身教授課程所開設(shè)的考試進(jìn)行分?jǐn)?shù)的錄入;
②分?jǐn)?shù)導(dǎo)出:能夠?qū)⒛炒慰荚嚨某煽儼窗嗉墑澐謱?dǎo)出成Excel文檔;
③個人信息管理:更新個人信息。
(3)學(xué)生用戶模塊
①分?jǐn)?shù)查詢:對參加過的考試進(jìn)行分?jǐn)?shù)查詢;
②個人信息管理:更新個人信息。
圖2 系統(tǒng)功能模塊
系統(tǒng)采用MySQL數(shù)據(jù)庫,其具有體積小、速度快等優(yōu)點(diǎn),足夠用于保存成績管理系統(tǒng)所需數(shù)據(jù)。系統(tǒng)數(shù)據(jù)庫共包含以下12個數(shù)據(jù)表:用戶信息表、學(xué)生表、教師表、系統(tǒng)管理員表、年級表、班級表、課程表、課程分配表、考試表、考試班級表、考試課程表、分?jǐn)?shù)表。各數(shù)據(jù)表所包含字段信息如下:
(1)用戶信息表:id、用戶類型、學(xué)/工號、性別、年齡、聯(lián)系方式、登錄密碼;
(2)學(xué)生表:id、對應(yīng)用戶信息外鍵、所在班級外鍵;
(3)教師表:id、對應(yīng)用戶信息外鍵;
(4)系統(tǒng)管理員表:id、對應(yīng)用戶信息外鍵;
(5)年級表:id、學(xué)年值;
(6)班級表:id、所在年級外鍵、班級序號;
(7)課程表:id、課程名稱;
(8)課程分配表:id、對應(yīng)課程外鍵、對應(yīng)班級外鍵、對應(yīng)教師外鍵;
(9)考試表:id、考試名稱、考試日期時間;
(10)考試班級表:id、對應(yīng)考試外鍵、考試班級外鍵;
(11)考試課程表:id、對應(yīng)考試外鍵、考試課程外鍵;
(12)分?jǐn)?shù)表:id、對應(yīng)考試課程外鍵、對應(yīng)學(xué)生外鍵、得分。
系統(tǒng)采用WPF技術(shù)進(jìn)行開發(fā),能夠編寫出美觀的界面,為用戶提供良好的交互體驗(yàn)。并且使用MVVM(Model-View-ViewModel,模型-視圖-視圖模型)開發(fā)模式進(jìn)行開發(fā)。其中模型即代表所用數(shù)據(jù),視圖即為用戶使用該系統(tǒng)時所能夠看見的頁面、外觀(UI),而視圖模型相當(dāng)于數(shù)據(jù)與視圖間的媒介,通過數(shù)據(jù)創(chuàng)建好視圖模型后傳遞給視圖進(jìn)行數(shù)據(jù)的呈現(xiàn)。不同于MVC(Model-View-Controller,模型-視圖-控制器)模式通過控制器進(jìn)行主要業(yè)務(wù)邏輯處理,MVVM模式則主要通過數(shù)據(jù)模型中所包含操作命令(Command)以及XAML中的綁定器(Binder)等對數(shù)據(jù)進(jìn)行邏輯處理。這種模式能夠更好地促進(jìn)視圖層開發(fā)與其他層次的分離,使得程序開發(fā)更為模塊化,從而提升開發(fā)效率。
本系統(tǒng)中數(shù)據(jù)庫連接、操作使用.NET框架下的Entity Framework(簡稱EF)實(shí)現(xiàn)。使用EF對數(shù)據(jù)庫進(jìn)行操作主要分為代碼優(yōu)先模式和數(shù)據(jù)庫優(yōu)先模式,由于本系統(tǒng)中數(shù)據(jù)庫結(jié)構(gòu)較為復(fù)雜,因此采用數(shù)據(jù)庫優(yōu)先模式,即根據(jù)已經(jīng)創(chuàng)建好的數(shù)據(jù)庫在項(xiàng)目中直接生成數(shù)據(jù)庫中各項(xiàng)數(shù)據(jù)表所對應(yīng)的實(shí)體類。
要對MySQL數(shù)據(jù)庫使用EF數(shù)據(jù)庫優(yōu)先模式,在開發(fā)機(jī)器中必須安裝MySQL for Visual Studio、MySQL Connector Net,并且在項(xiàng)目中通過NuGet包管理器添加MySQL.Data以及MySQL.Data.Entity包,且該4項(xiàng)軟件包的版本必須相互對應(yīng),否則無法進(jìn)行正常運(yùn)作,一個可行的對應(yīng)版本號有:2.0.5、6.10.7、6.10.7、6.10.7。各軟件包安裝完成后,只需通過新建項(xiàng)在項(xiàng)目中添加ADO.NET實(shí)體數(shù)據(jù)模型,并按照對應(yīng)提示連接數(shù)據(jù)庫、選擇數(shù)據(jù)模型和數(shù)據(jù)表后即可自動生成所選擇的數(shù)據(jù)表對應(yīng)的實(shí)體類以及一個DbContext類,所有對數(shù)據(jù)庫進(jìn)行的操作均通過該類來進(jìn)行。例如讀取所有考試班級的示例代碼如下:
var list=dbContext.ExamClasses.Include(nameof(Exam?Class.exam))
.Include(nameof(ExamClass.t_class).ToList();
其中dbContext即為DbContext類的示例,Exam?Classes為數(shù)據(jù)庫中的所有考試班級,后兩項(xiàng)Include則表示各個考試班級需包含其對應(yīng)的考試以及班級信息。
系統(tǒng)采用NPOI開源庫進(jìn)行Excel數(shù)據(jù)導(dǎo)出功能的實(shí)現(xiàn),需首先通過NuGet包進(jìn)行安裝該庫。使用NPOI可在系統(tǒng)未安裝Office組件時完成對Word、Ex?cel等文檔的讀寫,并同時支持97-2003版本及其以后版本的Office文檔。以下示例代碼為將DataTable中的內(nèi)容導(dǎo)出至filepath所指的xlsx文檔:
var wbook=new XSSFWorkbook();
var sheet=wbook.CreateSheet(“sname”);
int colcnt=table.Columns.Count;
int rowcnt=table.Rows.Count;
for(int ri=1;ri<=rowcnt;ri++){
var row=sheet.CreateRow(ri);
for(int ci=0;ci row.CreateCell(ci,CellType.String) .SetCellValue(table.Rows[ri-1][ci].ToString()); } } using(var stream=File.Create(filepath)) wbook.Write(stream); 以上代碼中首先創(chuàng)建XSSFWorkbook實(shí)例作為文檔的對象,并通過CreateSheet方法在該文檔內(nèi)創(chuàng)建表格Sheet對象,隨后通過遍歷DataTable中的各行各列往表格中插入數(shù)據(jù),最后通過FileStream以及Write方法將文檔實(shí)際保存至filepath文件中。 本文簡要介紹了使用.NET框架中WPF技術(shù)對面向中小學(xué)的學(xué)生考試成績管理系統(tǒng)進(jìn)行分析、設(shè)計以及實(shí)現(xiàn),相信對使用WPF技術(shù)的開發(fā)人員具有一定的借鑒性,并希望該系統(tǒng)能夠?yàn)橹行W(xué)的教務(wù)管理人員帶來工作效率的提升。4 結(jié)語