基于WPF的学生成绩管理系统应用开发
2018-10-13扶婕
扶婕
(江西财经大学软件学院,南昌 330032)
0 引言
随着社会的发展以及教育质量的提高,我国中小学教学规模不断扩大,招生人数日渐增多,所教学的课程以及对学生的考核形式也逐渐多样化,这使得教务管理工作在数量和难度上都大大增加。学生考试成绩管理在教务管理工作中处于核心地位,考试成绩管理工作是衡量教学及管理质量的重要指标。而当今不少中小学对成绩管理依然采用传统的人工管理方式,这种管理方式不仅效率低下,并且随着时间的推移,将产生大量的文件和数据,对于查找、更新和维护都带来诸多的困难和不便。
在目前信息时代下,利用计算机技术进行信息处理无疑是更好的解决方案。使用微软.NET框架中的WPF技术以及C#高级编程语言,能够高效率地开发出Windows平台下的桌面应用程序。利用这些技术开发一款学生成绩管理系统,能够帮助教务管理者对学生成绩信息更加高效地管理、维护,从而对教学质量有进一步的提升。
1 功能需求分析
针对当今中小学状况来看,不同地区、不同学校的教学手段不尽相同,甚至可能有着较大的区别,在学生成绩管理工作中则主要体现在其所开设课程以及考核方式等不同。例如对于高中而言,各班级具有理科班、文科班等区分,对其所开设的考试也有不同的侧重处,因此在本系统中应当实现课程管理、班级管理和考试管理功能,使得教学管理人员能够针对不同课程、不同班级进行不同的考核方式。
考试成绩管理工作能够影响到学校中的每一位师生,而考试成绩管理系统也是如此。教师需要使用该系统对其所教授课程的考试进行分数录入、导出打印等,学生可以通过该系统及时地对考试成绩进行查询、并且与其他同学或家长进行分享等。
由上,系统所主要面向的用户可分为三大类:教学管理员、教师以及学生,各用户类别可进行的操作如下:
(1)教学管理员:课程管理、班级管理、考试管理、用户管理;
(2)教师:分数录入、分数导出;
(3)学生:分数查询。
2 系统设计
2.1 系统架构
系统采用 C/S(Client/Server,客户端/服务器)架构。在该架构中,客户端通过互联网与服务器形成连接,整个系统的工作将合理地分配到客户端与服务器中,能够充分地利用两端的硬件资源,并降低系统的资源开销。该架构模型如图1所示。
在本系统中,客户端主要负责数据呈现、操作提示、数据录入查询等功能,服务器端则主要负责数据库的维护功能。
图1 C/S架构模式图
2.2 功能模块设计
根据本系统所面向的用户分类,系统的功能模块主要划分为教学管理员用户模块、教师用户模块以及学生模块。系统功能模块图如图2所示。各模块所实现功能详细描述如下:
(1)管理员用户模块
①课程管理:对学校所开设的所有课程进行添加、删除、修改等;
②班级管理:根据不同的学年,对班级进行添加、删除等更改;
③考试管理:根据不同班级、不同课程进行考试的管理;
④用户管理:对本系统的用户进行管理,包括教师、学生。
(2)教师用户模块
①分数录入:对自身教授课程所开设的考试进行分数的录入;
②分数导出:能够将某次考试的成绩按班级划分导出成Excel文档;
③个人信息管理:更新个人信息。
(3)学生用户模块
①分数查询:对参加过的考试进行分数查询;
②个人信息管理:更新个人信息。
图2 系统功能模块
2.3 数据库设计
系统采用MySQL数据库,其具有体积小、速度快等优点,足够用于保存成绩管理系统所需数据。系统数据库共包含以下12个数据表:用户信息表、学生表、教师表、系统管理员表、年级表、班级表、课程表、课程分配表、考试表、考试班级表、考试课程表、分数表。各数据表所包含字段信息如下:
(1)用户信息表:id、用户类型、学/工号、性别、年龄、联系方式、登录密码;
(2)学生表:id、对应用户信息外键、所在班级外键;
(3)教师表:id、对应用户信息外键;
(4)系统管理员表:id、对应用户信息外键;
(5)年级表:id、学年值;
(6)班级表:id、所在年级外键、班级序号;
(7)课程表:id、课程名称;
(8)课程分配表:id、对应课程外键、对应班级外键、对应教师外键;
(9)考试表:id、考试名称、考试日期时间;
(10)考试班级表:id、对应考试外键、考试班级外键;
(11)考试课程表:id、对应考试外键、考试课程外键;
(12)分数表:id、对应考试课程外键、对应学生外键、得分。
3 系统实现
3.1 开发模式
系统采用WPF技术进行开发,能够编写出美观的界面,为用户提供良好的交互体验。并且使用MVVM(Model-View-ViewModel,模型-视图-视图模型)开发模式进行开发。其中模型即代表所用数据,视图即为用户使用该系统时所能够看见的页面、外观(UI),而视图模型相当于数据与视图间的媒介,通过数据创建好视图模型后传递给视图进行数据的呈现。不同于MVC(Model-View-Controller,模型-视图-控制器)模式通过控制器进行主要业务逻辑处理,MVVM模式则主要通过数据模型中所包含操作命令(Command)以及XAML中的绑定器(Binder)等对数据进行逻辑处理。这种模式能够更好地促进视图层开发与其他层次的分离,使得程序开发更为模块化,从而提升开发效率。
3.2 数据库操作
本系统中数据库连接、操作使用.NET框架下的Entity Framework(简称EF)实现。使用EF对数据库进行操作主要分为代码优先模式和数据库优先模式,由于本系统中数据库结构较为复杂,因此采用数据库优先模式,即根据已经创建好的数据库在项目中直接生成数据库中各项数据表所对应的实体类。
要对MySQL数据库使用EF数据库优先模式,在开发机器中必须安装MySQL for Visual Studio、MySQL Connector Net,并且在项目中通过NuGet包管理器添加MySQL.Data以及MySQL.Data.Entity包,且该4项软件包的版本必须相互对应,否则无法进行正常运作,一个可行的对应版本号有:2.0.5、6.10.7、6.10.7、6.10.7。各软件包安装完成后,只需通过新建项在项目中添加ADO.NET实体数据模型,并按照对应提示连接数据库、选择数据模型和数据表后即可自动生成所选择的数据表对应的实体类以及一个DbContext类,所有对数据库进行的操作均通过该类来进行。例如读取所有考试班级的示例代码如下:
var list=dbContext.ExamClasses.Include(nameof(Exam⁃Class.exam))
.Include(nameof(ExamClass.t_class).ToList();
其中dbContext即为DbContext类的示例,Exam⁃Classes为数据库中的所有考试班级,后两项Include则表示各个考试班级需包含其对应的考试以及班级信息。
3.3 Excel数据导出
系统采用NPOI开源库进行Excel数据导出功能的实现,需首先通过NuGet包进行安装该库。使用NPOI可在系统未安装Office组件时完成对Word、Ex⁃cel等文档的读写,并同时支持97-2003版本及其以后版本的Office文档。以下示例代码为将DataTable中的内容导出至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); 以上代码中首先创建XSSFWorkbook实例作为文档的对象,并通过CreateSheet方法在该文档内创建表格Sheet对象,随后通过遍历DataTable中的各行各列往表格中插入数据,最后通过FileStream以及Write方法将文档实际保存至filepath文件中。 本文简要介绍了使用.NET框架中WPF技术对面向中小学的学生考试成绩管理系统进行分析、设计以及实现,相信对使用WPF技术的开发人员具有一定的借鉴性,并希望该系统能够为中小学的教务管理人员带来工作效率的提升。4 结语