国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WPF的學(xué)生成績(jī)管理系統(tǒng)應(yīng)用開(kāi)發(fā)

2018-10-13 07:58扶婕
現(xiàn)代計(jì)算機(jī) 2018年23期
關(guān)鍵詞:視圖分?jǐn)?shù)數(shù)據(jù)庫(kù)

扶婕

(江西財(cái)經(jīng)大學(xué)軟件學(xué)院,南昌 330032)

0 引言

隨著社會(huì)的發(fā)展以及教育質(zhì)量的提高,我國(guó)中小學(xué)教學(xué)規(guī)模不斷擴(kuò)大,招生人數(shù)日漸增多,所教學(xué)的課程以及對(duì)學(xué)生的考核形式也逐漸多樣化,這使得教務(wù)管理工作在數(shù)量和難度上都大大增加。學(xué)生考試成績(jī)管理在教務(wù)管理工作中處于核心地位,考試成績(jī)管理工作是衡量教學(xué)及管理質(zhì)量的重要指標(biāo)。而當(dāng)今不少中小學(xué)對(duì)成績(jī)管理依然采用傳統(tǒng)的人工管理方式,這種管理方式不僅效率低下,并且隨著時(shí)間的推移,將產(chǎn)生大量的文件和數(shù)據(jù),對(duì)于查找、更新和維護(hù)都帶來(lái)諸多的困難和不便。

在目前信息時(shí)代下,利用計(jì)算機(jī)技術(shù)進(jìn)行信息處理無(wú)疑是更好的解決方案。使用微軟.NET框架中的WPF技術(shù)以及C#高級(jí)編程語(yǔ)言,能夠高效率地開(kāi)發(fā)出Windows平臺(tái)下的桌面應(yīng)用程序。利用這些技術(shù)開(kāi)發(fā)一款學(xué)生成績(jī)管理系統(tǒng),能夠幫助教務(wù)管理者對(duì)學(xué)生成績(jī)信息更加高效地管理、維護(hù),從而對(duì)教學(xué)質(zhì)量有進(jìn)一步的提升。

1 功能需求分析

針對(duì)當(dāng)今中小學(xué)狀況來(lái)看,不同地區(qū)、不同學(xué)校的教學(xué)手段不盡相同,甚至可能有著較大的區(qū)別,在學(xué)生成績(jī)管理工作中則主要體現(xiàn)在其所開(kāi)設(shè)課程以及考核方式等不同。例如對(duì)于高中而言,各班級(jí)具有理科班、文科班等區(qū)分,對(duì)其所開(kāi)設(shè)的考試也有不同的側(cè)重處,因此在本系統(tǒng)中應(yīng)當(dāng)實(shí)現(xiàn)課程管理、班級(jí)管理和考試管理功能,使得教學(xué)管理人員能夠針對(duì)不同課程、不同班級(jí)進(jìn)行不同的考核方式。

考試成績(jī)管理工作能夠影響到學(xué)校中的每一位師生,而考試成績(jī)管理系統(tǒng)也是如此。教師需要使用該系統(tǒng)對(duì)其所教授課程的考試進(jìn)行分?jǐn)?shù)錄入、導(dǎo)出打印等,學(xué)生可以通過(guò)該系統(tǒng)及時(shí)地對(duì)考試成績(jī)進(jìn)行查詢、并且與其他同學(xué)或家長(zhǎng)進(jìn)行分享等。

由上,系統(tǒng)所主要面向的用戶可分為三大類:教學(xué)管理員、教師以及學(xué)生,各用戶類別可進(jìn)行的操作如下:

(1)教學(xué)管理員:課程管理、班級(jí)管理、考試管理、用戶管理;

(2)教師:分?jǐn)?shù)錄入、分?jǐn)?shù)導(dǎo)出;

(3)學(xué)生:分?jǐn)?shù)查詢。

2 系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)架構(gòu)

系統(tǒng)采用 C/S(Client/Server,客戶端/服務(wù)器)架構(gòu)。在該架構(gòu)中,客戶端通過(guò)互聯(lián)網(wǎng)與服務(wù)器形成連接,整個(gè)系統(tǒng)的工作將合理地分配到客戶端與服務(wù)器中,能夠充分地利用兩端的硬件資源,并降低系統(tǒng)的資源開(kāi)銷。該架構(gòu)模型如圖1所示。

在本系統(tǒng)中,客戶端主要負(fù)責(zé)數(shù)據(jù)呈現(xiàn)、操作提示、數(shù)據(jù)錄入查詢等功能,服務(wù)器端則主要負(fù)責(zé)數(shù)據(jù)庫(kù)的維護(hù)功能。

圖1 C/S架構(gòu)模式圖

2.2 功能模塊設(shè)計(jì)

根據(jù)本系統(tǒng)所面向的用戶分類,系統(tǒng)的功能模塊主要?jiǎng)澐譃榻虒W(xué)管理員用戶模塊、教師用戶模塊以及學(xué)生模塊。系統(tǒng)功能模塊圖如圖2所示。各模塊所實(shí)現(xiàn)功能詳細(xì)描述如下:

(1)管理員用戶模塊

①課程管理:對(duì)學(xué)校所開(kāi)設(shè)的所有課程進(jìn)行添加、刪除、修改等;

②班級(jí)管理:根據(jù)不同的學(xué)年,對(duì)班級(jí)進(jìn)行添加、刪除等更改;

③考試管理:根據(jù)不同班級(jí)、不同課程進(jìn)行考試的管理;

④用戶管理:對(duì)本系統(tǒng)的用戶進(jìn)行管理,包括教師、學(xué)生。

(2)教師用戶模塊

①分?jǐn)?shù)錄入:對(duì)自身教授課程所開(kāi)設(shè)的考試進(jìn)行分?jǐn)?shù)的錄入;

②分?jǐn)?shù)導(dǎo)出:能夠?qū)⒛炒慰荚嚨某煽?jī)按班級(jí)劃分導(dǎo)出成Excel文檔;

③個(gè)人信息管理:更新個(gè)人信息。

(3)學(xué)生用戶模塊

①分?jǐn)?shù)查詢:對(duì)參加過(guò)的考試進(jìn)行分?jǐn)?shù)查詢;

②個(gè)人信息管理:更新個(gè)人信息。

圖2 系統(tǒng)功能模塊

2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

系統(tǒng)采用MySQL數(shù)據(jù)庫(kù),其具有體積小、速度快等優(yōu)點(diǎn),足夠用于保存成績(jī)管理系統(tǒng)所需數(shù)據(jù)。系統(tǒng)數(shù)據(jù)庫(kù)共包含以下12個(gè)數(shù)據(jù)表:用戶信息表、學(xué)生表、教師表、系統(tǒng)管理員表、年級(jí)表、班級(jí)表、課程表、課程分配表、考試表、考試班級(jí)表、考試課程表、分?jǐn)?shù)表。各數(shù)據(jù)表所包含字段信息如下:

(1)用戶信息表:id、用戶類型、學(xué)/工號(hào)、性別、年齡、聯(lián)系方式、登錄密碼;

(2)學(xué)生表:id、對(duì)應(yīng)用戶信息外鍵、所在班級(jí)外鍵;

(3)教師表:id、對(duì)應(yīng)用戶信息外鍵;

(4)系統(tǒng)管理員表:id、對(duì)應(yīng)用戶信息外鍵;

(5)年級(jí)表:id、學(xué)年值;

(6)班級(jí)表:id、所在年級(jí)外鍵、班級(jí)序號(hào);

(7)課程表:id、課程名稱;

(8)課程分配表:id、對(duì)應(yīng)課程外鍵、對(duì)應(yīng)班級(jí)外鍵、對(duì)應(yīng)教師外鍵;

(9)考試表:id、考試名稱、考試日期時(shí)間;

(10)考試班級(jí)表:id、對(duì)應(yīng)考試外鍵、考試班級(jí)外鍵;

(11)考試課程表:id、對(duì)應(yīng)考試外鍵、考試課程外鍵;

(12)分?jǐn)?shù)表:id、對(duì)應(yīng)考試課程外鍵、對(duì)應(yīng)學(xué)生外鍵、得分。

3 系統(tǒng)實(shí)現(xiàn)

3.1 開(kāi)發(fā)模式

系統(tǒng)采用WPF技術(shù)進(jìn)行開(kāi)發(fā),能夠編寫出美觀的界面,為用戶提供良好的交互體驗(yàn)。并且使用MVVM(Model-View-ViewModel,模型-視圖-視圖模型)開(kāi)發(fā)模式進(jìn)行開(kāi)發(fā)。其中模型即代表所用數(shù)據(jù),視圖即為用戶使用該系統(tǒng)時(shí)所能夠看見(jiàn)的頁(yè)面、外觀(UI),而視圖模型相當(dāng)于數(shù)據(jù)與視圖間的媒介,通過(guò)數(shù)據(jù)創(chuàng)建好視圖模型后傳遞給視圖進(jìn)行數(shù)據(jù)的呈現(xiàn)。不同于MVC(Model-View-Controller,模型-視圖-控制器)模式通過(guò)控制器進(jìn)行主要業(yè)務(wù)邏輯處理,MVVM模式則主要通過(guò)數(shù)據(jù)模型中所包含操作命令(Command)以及XAML中的綁定器(Binder)等對(duì)數(shù)據(jù)進(jìn)行邏輯處理。這種模式能夠更好地促進(jìn)視圖層開(kāi)發(fā)與其他層次的分離,使得程序開(kāi)發(fā)更為模塊化,從而提升開(kāi)發(fā)效率。

3.2 數(shù)據(jù)庫(kù)操作

本系統(tǒng)中數(shù)據(jù)庫(kù)連接、操作使用.NET框架下的Entity Framework(簡(jiǎn)稱EF)實(shí)現(xiàn)。使用EF對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作主要分為代碼優(yōu)先模式和數(shù)據(jù)庫(kù)優(yōu)先模式,由于本系統(tǒng)中數(shù)據(jù)庫(kù)結(jié)構(gòu)較為復(fù)雜,因此采用數(shù)據(jù)庫(kù)優(yōu)先模式,即根據(jù)已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)在項(xiàng)目中直接生成數(shù)據(jù)庫(kù)中各項(xiàng)數(shù)據(jù)表所對(duì)應(yīng)的實(shí)體類。

要對(duì)MySQL數(shù)據(jù)庫(kù)使用EF數(shù)據(jù)庫(kù)優(yōu)先模式,在開(kāi)發(fā)機(jī)器中必須安裝MySQL for Visual Studio、MySQL Connector Net,并且在項(xiàng)目中通過(guò)NuGet包管理器添加MySQL.Data以及MySQL.Data.Entity包,且該4項(xiàng)軟件包的版本必須相互對(duì)應(yīng),否則無(wú)法進(jìn)行正常運(yùn)作,一個(gè)可行的對(duì)應(yīng)版本號(hào)有:2.0.5、6.10.7、6.10.7、6.10.7。各軟件包安裝完成后,只需通過(guò)新建項(xiàng)在項(xiàng)目中添加ADO.NET實(shí)體數(shù)據(jù)模型,并按照對(duì)應(yīng)提示連接數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)模型和數(shù)據(jù)表后即可自動(dòng)生成所選擇的數(shù)據(jù)表對(duì)應(yīng)的實(shí)體類以及一個(gè)DbContext類,所有對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作均通過(guò)該類來(lái)進(jìn)行。例如讀取所有考試班級(jí)的示例代碼如下:

var list=dbContext.ExamClasses.Include(nameof(Exam?Class.exam))

.Include(nameof(ExamClass.t_class).ToList();

其中dbContext即為DbContext類的示例,Exam?Classes為數(shù)據(jù)庫(kù)中的所有考試班級(jí),后兩項(xiàng)Include則表示各個(gè)考試班級(jí)需包含其對(duì)應(yīng)的考試以及班級(jí)信息。

3.3 Excel數(shù)據(jù)導(dǎo)出

系統(tǒng)采用NPOI開(kāi)源庫(kù)進(jìn)行Excel數(shù)據(jù)導(dǎo)出功能的實(shí)現(xiàn),需首先通過(guò)NuGet包進(jìn)行安裝該庫(kù)。使用NPOI可在系統(tǒng)未安裝Office組件時(shí)完成對(duì)Word、Ex?cel等文檔的讀寫,并同時(shí)支持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í)例作為文檔的對(duì)象,并通過(guò)CreateSheet方法在該文檔內(nèi)創(chuàng)建表格Sheet對(duì)象,隨后通過(guò)遍歷DataTable中的各行各列往表格中插入數(shù)據(jù),最后通過(guò)FileStream以及Write方法將文檔實(shí)際保存至filepath文件中。

4 結(jié)語(yǔ)

本文簡(jiǎn)要介紹了使用.NET框架中WPF技術(shù)對(duì)面向中小學(xué)的學(xué)生考試成績(jī)管理系統(tǒng)進(jìn)行分析、設(shè)計(jì)以及實(shí)現(xiàn),相信對(duì)使用WPF技術(shù)的開(kāi)發(fā)人員具有一定的借鑒性,并希望該系統(tǒng)能夠?yàn)橹行W(xué)的教務(wù)管理人員帶來(lái)工作效率的提升。

猜你喜歡
視圖分?jǐn)?shù)數(shù)據(jù)庫(kù)
分?jǐn)?shù)的由來(lái)
把握物理難點(diǎn),分?jǐn)?shù)更上一步
視圖
Y—20重型運(yùn)輸機(jī)多視圖
SA2型76毫米車載高炮多視圖
數(shù)據(jù)庫(kù)
Django 框架中通用類視圖的用法
數(shù)據(jù)庫(kù)
……的近似分?jǐn)?shù)的若干美妙性質(zhì)
數(shù)據(jù)庫(kù)
宿州市| 米林县| 玛曲县| 綦江县| 全椒县| 陇川县| 云和县| 石棉县| 侯马市| 鞍山市| 徐州市| 辰溪县| 天等县| 施秉县| 邵阳市| 淄博市| 武夷山市| 东海县| 嫩江县| 阿荣旗| 荃湾区| 时尚| 咸阳市| 金堂县| 光山县| 二连浩特市| 抚顺市| 张家界市| 北宁市| 青海省| 遂昌县| 洞口县| 腾冲县| 金平| 海宁市| 南丰县| 加查县| 固原市| 湄潭县| 明水县| 门源|