2024-05-21-数据库课程设计高校教务管理系统
数据库课程设计——高校教务管理系统
第1章 绪论
1.1课题的背景与意义
教育信息化是国家教育现代化的重要内容,高校教务系统作为教育信息化的重要组成部分,其发展水平直接关系到教育现代化的进程。
随着互联网、大数据、云计算、人工智能等信息技术的不断进步,为高校教务系统的建设提供了技术支撑。
高校教务系统的研究与应用对于推动高等教育信息化、提升教学管理水平、促进教育公平、服务学生个性化发展等方面具有重要的理论和实践意义。随着技术的不断进步和教育需求的不断变化,高校教务系统的研究与应用仍需不断深化和创新,以适应新时代教育发展的新要求。
1.2 国内外研究现状
国内高校教务管理系统的研究与应用正逐步深入,许多高校在借鉴和吸收国内外先进教务管理模式的基础上,结合自身实际情况,设计开发了符合自身条件的教务管理系统。但国内高校普遍缺乏自主研发能力,多数高校倾向于购买软件公司产品来搭建综合教务管理平台。
国外发达国家高度重视信息技术对教育的影响和作用,通常拥有较大规模的稳定技术队伍提供服务和技术支持。
1.3 本文研究内容
本文基于目前对高校教务管理系统的研究现状以及实际需求,描述关于一个简单的高校教务系统的设计开发过程以及对系统的测试。
1.4 本文安排
第一章:绪论:对本文中所实现的高校教务系统进行一个基本的分析,指出了课题背景意义以及国内外研究现状并给出本文的一个结构概述。
第二章:相关技术:介绍本文所实现的教务系统所采用的技术栈,例如winform窗体编程,MySQL。
第三章:系统分析:根据研究背景以及现状对高校教务管理系统做一个需求分析,分为可行性分析,功能需求分析两个部分
第四章:系统设计:基于需求分析逐步设计系统,包括总体架构,GUI界面设计,数据库设计以及后端逻辑设计。
第五章:系统实现:基于系统分析与系统设计实现了一个简单的教务管理系统。
第六章:系统测试:对实现的高校教务管理系统的各个功能进行测试
总结与展望:对本文所涉及的高校教务管理系统的设计与实现过程做一个总结,并对该系统未来可能出现的情况做一个展望。
第2章 相关技术
2.1 Winform窗体编程
WinForms(Windows Forms)是微软公司推出的一种用于开发Windows桌面应用程序的框架,它是.NET Framework的一部分。WinForms提供了一套丰富的控件库,使得开发者能够快速地创建具有图形用户界面(GUI)的应用程序。WinForms编程通常使用C#、VB.NET等语言进行。编程过程中最常见的两个概念便是窗体和控件:
窗体是WinForms应用程序的主窗口,是用户与应用程序交互的界面。开发者可以使用Visual Studio等IDE(集成开发环境)来设计窗体的布局和外观,添加各种控件,如按钮、文本框、列表框等。
控件是构成窗体界面的基本元素,用于实现特定的功能。WinForms提供了多种控件,例如button用于执行指令或触发事件,ComboBox结合了文本框和列表框的功能,用户可以输入文本或从下拉列表中选择,MenuStrip用于创建菜单栏等。
另外,还有一些winform提供的利于编程的机制:
事件驱动编程:WinForms应用程序是基于事件驱动的。这意味着应用程序的执行流程是由用户操作(如点击按钮、输入文本等)触发的事件来控制的,需要为控件编写事件处理程序来响应这些事件。
多文档界面:WinForms支持多文档界面,允许创建一个主窗体,其中可以打开多个子窗体,这些子窗体可以独立操作。
并且,Visual Studio提供了强大的设计时支持,允许开发者在设计视图中直观地拖放控件,设置属性,以及编写事件处理代码,这使得开发者能够将大部分经历放在设计上而非工具使用上,使得开发者更加轻松地实现系统开发。
2.2 MySQL
MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,后来被Sun Microsystems公司收购,最终在2010年被甲骨文公司(Oracle Corporation)收购。MySQL以其高性能、高可靠性和易用性而闻名,是目前最流行的数据库之一,尤其在Web应用领域。
MySQL具有许多特点例如:开源,跨平台,高性能,安全等,这使得在开发一些需要使用一个庞大的关系型数据库来管理系统的数据时尤为方便和快捷,并且还能够保证系统数据的安全性。
MySQL的应用场景:Web应用:MySQL是构建动态网站和Web应用的流行选择,如WordPress、Joomla、Drupal等。数据仓库:MySQL可以作为数据仓库的存储引擎,用于存储和分析大量数据。嵌入式应用:MySQL的轻量级版本可以嵌入到各种设备和应用中。
第3章 系统分析
3.1 可行性分析
本系统是一个能够管理高校中教师,学生信息的系统,旨在管理教师的相关信息例如授课信息等,管理学生的相关信息例如选课信息等。
3.1.1 技术可行性
本系统所采用的技术栈均为目前市场环境下较为常见的技术(使用MySQL进行数据库的实施,使用C#语言以及winform窗体编程来实现GUI界面),技术的复杂程度不算太高,能够在学习过程中实现对系统功能模块的开发。
3.1.2 经济可行性
本系统实现过程中所使用的软件以及工具均为开源的,不需要额外的费用用于系统开发,并且数据库中存放的数据量也不是很大,不需要额外费用来对系统进行维护。
3.1.2 安全可行性
本系统所实现的管理中每一类用户均有账号密码,需要正确提供才能够进入系统进行相关操作,并且在数据库中会设置日志表来记录相关人员对数据进行的操作,保证了数据的安全。
3.2 功能需求分析
3.2.1 系统用户以及管理逻辑分析
对于高校教务管理而言,最为常见及重要的用户是管理员,教师,学生
系统提供一个“三级管理”模式来对系统进行使用和管理:管理员能够管理和查询教师相关信息,教师能够管理和查询学生相关信息,学生能够查询自身相关信息。
3.2.2 功能分析
系统实现功能模块主要包括:管理员模块,教师模块,学生模块,数据库实施模块。
- 管理员模块,提供管理教师信息的功能,具体包括对教师基本信息(教师编号,姓名等)进行修改,查询教师信息,添加教师信息,删除教师信息。
- 教师模块提供管理学生信息的功能,具体包括修改学生基本信息(学号,姓名等),添加学生信息,删除学生信息。
- 学生模块提供查看自身信息的功能,具体包括查询某门课程成绩(绩点),查询所有课程平均成绩,自主选课。
系统数据流图如图3.1所示:
4.数据库实施模块:
首先需要设置日志表来记录用户添加删除或修改信息,保证数据安全。另外数据库中需要有存储各个实体相关信息的表,数据库设置8张表来存储这些信息,设置两张表作为日志表。
其次是设置触发器来保证前端点击了按钮后需要对数据库进行操作来实现对应的逻辑,例如当一个学生选了某门课程后,数据库中需要在选课表中插入该学生的选课信息,此时需要由一个触发器来更新该学生的总学分;类似的触发器一共需要提供6个:选课插入触发器,选课删除触发器,成绩更新触发器,学生删除触发器,总学分更新触发器,授课更新触发器。
另外,数据库中还需要创建存储过程来根据用户输入的某些信息来查询相应的结果,例如用户输入某个学生的学号能够查询到该学生的平均学分绩点GPA;存储过程一共设置两个,查询某课程平均分(输入课程名),查询某个学生的平均学分绩点(输入学生学号)。
最后,由于数据库中的一些信息需要被经常查询,数据库还要设置视图来方便用户查询相关信息;例如快速查询学生某门课程成绩便需要一个视图来实现这一功能,数据库设置3个视图,课程信息与授课教师视图,学生成绩-课程信息-授课教师视图,学生-学院-专业视图。
第4章 系统设计
4.1 系统总体架构设计
本系统采用winform窗体编程,C#语言设计GUI界面,使用MySQL进行数据库的实施。
由上一章对于系统的分析能够设计出系统总体的一个架构:系统主要由四个模块所构成,总体架构如图4.1所示:
图4.1 系统总体架构图
4.2 概念结构设计
4.2.1 实体设计
通过系统分析部分对于系统功能的描述,可以提炼出系统中涉及的实体总共有7个,实体的具体信息如下:
学生:学号,姓名,性别,年龄
选课(关系):学号,课程号,成绩
教师:教师编号,姓名,年龄
课程:课程号,课程名,学分
授课(关系):课程号,教师编号
专业:专业编号,专业名
学院:学院编号,学院名
学生实体共设置4个属性,学号为主键,用一个字符串表示,姓名,性别和年龄不能为空,也用一个字符串给出。
教师实体设置3个属性,教师编号为主码,用字符串表示,姓名不能为空,用字符串表示,年龄不能为空,用整型数据表示。
课程实体设置3个属性,课程号为主键,用字符串表示,课程名不能为空,用字符串表示,学分不能为空,用两位小数的numeric表示。
专业实体共设置2个属性,专业编号为主键,用字符串表示,专业名不能为空,用字符串表示。
学院实体设置两个属性,学院编号为主键,用字符串表示,学院名不能为空,用字符串表示。
学生实体与课程实体间存在选课关系,设置3个属性,(学号,课程号)为主键,成绩可以为空,用整型数据表示。
教师实体与课程实体存在授课关系,设置2个属性,(教师编号,课程号)为主键。
4.2.2 数据库E-R图设计
由以上功能分析以及实体设计能够设计出数据库E-R图:
数据库局部E-R图:
- 5个实体对应的E-R图
学生,教师,课程,专业,学院实体对应的E-R图如图4.2所示
(a)
(b)
(c)
(d)
(e)
图4.2 各个单独实体的E-R图
- 5个关系对应的E-R图
关系所对应的E-R图如图4.3所
图4.3 关系对应的E-R图
数据库全局E-R图:
整合以上的数据库局部E-R图可以得到数据库的全局E-R图如图4.4所示:
图4.4 数据库全局E-R图
4.3 逻辑结构设计
4.3.1 关系模型的设计
由前两个部分中对数据库的功能分析以及对概念结构的设计可以得到如下关系模型:
学生(学号,姓名,性别,年龄,专业编号)
主键:学号
外键:专业编号
课程(课程号,课程名,学分)
主键:课程号 外键:无
专业(专业编号,专业名,学院编号) 主键:专业编号
外键:学院编号
学院(学院编号,学院名)
主键:学院编号
外键:无
教师(教师编号,姓名,年龄,学院编号,课程号)
主键:教师编号
外键:学院编号,课程号
选课(学号,课程号,成绩)
主键:学号,课程号
外键:无
教授(课程号,教师编号)
主键:课程号,教师编号
4.4 物理结构设计
高校教务管理系统数据库中各个表结构设计结果见表。每个表表示在数据库中的一张表。
学生表中有如下字段:学生学号、学生姓名、性别、年龄、专业编号,如表4.1所示。
表 4.1 学生表
字段名 数据类型 长度 是否空 备注
Sno | Varchar | 10 | Not null | 主键 |
Sname | Varchar | 20 | Not null | |
Sex | Varchar | 2 | Not Null | |
Sage | Varchar | 15 | Not null | |
Mno | Varchar | 11 | null | 外键 |
教师表中有如下字段:教师编号、教师姓名、年龄、专业编号,如表4.2所示。
表 4.2 教师表
字段名 数据类型 长度 是否空 备注
Tno | Varchar | 20 | Not null | 主键 |
Tname | Varchar | 20 | Not null | |
Tage | int | Not Null | ||
Mno | varchar | 20 | null | 外键 |
专业表中有如下字段:专业编号、专业名称、学院编号,如表4.3所示。
表 4.3 专业表
字段名 | 数据类型 | 长度 | 是否空 | 备注 |
Mno | Varchar | 20 | Not null | 主键 |
Mname | Varchar | 20 | Not null | |
COno | varchar | 20 | null | 外键 |
学院表中有如下字段:学院编号、学院名称,如表4.4所示。
表 4.4 学院表
字段名 数据类型 长度 是否空 备注
COno | Varchar | 20 | Not null | 主键 |
COname | Varchar | 20 | Not null |
课程表中有如下字段:课程编号、课程名称、课程学分,如表4.5所示。
表 4.5 课程表
字段名 数据类型 长度 是否空 备注
Cno | Varchar | 20 | Not null | 主键 |
Cname | Varchar | 20 | Not null | |
Credit | Numeric(3,2) | Not Null |
选课表中有如下字段:学生学号、课程编号、分数,如表4.6所示。
表 4.6 选课表
字段名 | 数据类型 | 长度 | 是否空 | 备注 |
Sno | Varchar | 10 | Not null | 主键 |
Cno | Varchar | 20 | Not null | 主键 |
grade | int | Null |
教授表中有如下字段:课程编号、教师编号,如表4.7所示。
表 4.7 教授表
字段名 | 数据类型 | 长度 | 是否空 | 备注 |
Cno | Varchar | 20 | Not null | 主键 |
Tno | Varchar | 20 | Not null | 主键 |
数据库表与表之间的关系如图 4.5 所示
图 4.5 表间关系图
4.5 视图,触发器,存储过程设计
4.5.1 视图设计
由需求分析阶段,本系统一个需要设计三个视图。
- 学生成绩视图
在本系统中,学生用户最主要的一个功能就是查询成绩,因此系统中对学生课程成绩的查询频率会很高,考虑到这一点,本系统设置一个学生成绩视图来方便查询。该视图的查询结果显示为(学生学号,姓名,课程号,课程名,课程学分,课程成绩,授课教师姓名),最终的查询结果实例如图4.6所示:
图4.6 学生成绩视图查询结果
- 课程详细信息视图
另外,学生在选课时事先不知道可选课程的信息,而学生选课在本系统中属于一个频繁的操作,考虑设置一个课程详细信息视图来呈现出可选课程的信息。该视图查询结果为所有可选课程的信息(课程号,课程名,课程学分,授课教师姓名),最终的查询结果示例如图4.7所示:
图4.7 课程详细信息视图查询结果
- 学生-学院-专业视图
最后,系统中学生用户还有一项比较重要的功能:查询自身专业学院信息,这项操作同样会频繁进行,也考虑设置一个学生-学院-专业视图来处理。该视图查询结果的主要信息包括(学生学号,学生所属学院名,学生所属学院负责人名,学生所学专业名),最终的查询结果示例如图4.8所示:
图4.8 学生-学院-专业视图查询结果
4.5.2 触发器设计
由需求分析阶段,本系统共需要六个触发器。
- 选课插入触发器
某个学生在选课后选课表SC中会添加其选课信息,选了课之后学生的总学分发生了变化,所以需要设置一个after型的触发器来实现这一个功能。具体来说:当有新的选课记录被插入到SC表中时,触发器after_SC_insert会被触发执行,它会根据新插入的选课记录中的学生编号(Sno)和课程编号(Cno)来更新学生表中相应学生的总学分。
- 选课删除触发器
同选课插入,当一个学生退选了一门课程后,该学生的总学分应该去除这门退选课程的学分,总学分数发生变化,也需要一个after触发器来实现。具体来说,当有选课记录从SC表中被删除时,触发器after_SC_delete会被触发执行,它会根据被删除的选课记录中的学生编号(Sno)和课程编号(Cno)来更新学生表中相应学生的总学分。
- 成绩更新触发器
当某个学生的成绩发生变化时,系统需要捕捉这一变化来确保数据的安全性,于是便设计一个成绩更新触发器来实现这一功能。具体来说,当有成绩记录在SC表中被更新时,触发器after_SC_grade_update会被触发执行,它会检查更新操作是否涉及成绩字段的改变,如果是,则将更新前后的成绩信息以及更新时间记录到成绩变化日志表中。
- 学生删除触发器
当某个学生的信息因某种情况(例如毕业或者退学)被删除时,为了保证数据库的参照完整性,需要将选课表中该学生的选课信息一并删除,于是设置一个after型触发器实现该功能,具体来说,当有学生记录从Student表中被删除时,触发器after_Student_delete会被触发执行,它会删除SC表中所有与被删除学生编号(Sno)相匹配的选课记录。
- 授课更新触发器
当有老师的信息发生变更时,为了保证数据库中数据的安全,需要将变更记录加入日志表,于是设置一个after型触发器来实现这一功能。具体来说,当有授课记录在SK表中被更新,并且更新操作涉及教师编号字段时,触发器after_SK_update会被触发执行,它会将变更前后的教师编号、课程编号以及变更时间记录到教师变更日志表中。
- 学生总学分更新触发器
在本系统中,当一个学生所修读的学分超过了学校要求的最大学分数后将该学生的状态调整为“毕业”,于是设置一个触发器来实现这一功能。具体来说,当有学生记录在Student表中被更新,且更新操作涉及总学分字段时,触发器after_Student_TotalCredits_update会被触发执行,它会检查更新后的总学分是否满足毕业条件,并相应地更新学生状态。
4.5.3 存储过程设计
根据需求分析阶段,本系统一共需要设计两个存储过程。
- 计算课程平均分
系统中能够查询某门课程的平均分,但数据库中并没有一个表具有平均分这一字段,此时便需要设计一个存储过程来实现这一功能。该存储过程接受一个课程名称作为输入参数,并输出该课程的平均分。调用存储过程时,可以指定一个课程名称,存储过程会计算该课程所有学生的平均成绩,并将结果存储在一个输出参数中,最终通过输出参数显示查询结果。下面是查询“操作系统”这门课程平均分的一个查询结果示例,如图4.9所示:
图4.9 操作系统平均分
- 计算平均学分绩点
同样,系统还能够查询一名学生的平均学分绩点,数据库中依旧没有一个字段来存储这一信息,同样可以设置一个存储过程来实现该功能。该存储过程接受一个学生学号作为输入参数,并输出该学生的GPA。下面是查询学号为“222241807609”的学生的GPA的一个查询结果示例,如图4.10所示:
图4.10 学号222241807609学生的GPA
第5章 系统实现
本项目为高校教务管理系统,本章内容介绍了项目的开发环境,系统的架构以及系统功能的实现。
5.1开发环境
本项目对软件开发环境和各组件的版本进行了配置。其中操作系统版本是Windows11。开发语言为C#,编码方式为UTF-8。Visual Studio工具的版本是Visual Studio 2022。采用数据库SQL Server和可视化管理工具Navicat。
5.2系统的架构
该项目采用前后端分离模式开发实现,前端采用Visual Studio 2022中Win form框架及Win form组件实现,后端使用了SQL Server数据库和可视化管理工具Navicat。下面将分别从前端和后端介绍项目的具体结构。
5.2.1 前端结构
该项目前端采用 开发,其在 Visual Studio 2022中结构如图所示。
该项目共分为如下几个:
- Dao.cs:类文件,定义Dao类,连接数据库SQL Server,包含SQL语句的查找和更新操作函数。
- Form.cs:窗体文件包含:Form.cs(源码),Form.designer.cs(窗体设计代码),Form.resx(窗体的资源文件)
- Program.cs:应用程序的启动文件
5.2.2 后端结构
后端采用Navicat,数据库可视化软件,定义本项目的数据库,便于设计数据库。如图所示:
- SQL-server:数据库连接。
- EAMS:本项目的数据库EAMS。
- dbo:EAMS数据库下的模式。
- 表:定义dbo模式下的表,包括字段、索引、外键和触发器。
- 视图:定义dbo模式下的视图,保障数据的安全,提高查询效率。
- 函数:定义dbo模式下的函数,对SQL功能的一个扩展。
- 查询:定义dbo模式下的查询,SQL语句的代码编写。
5.3系统功能的实现
5.3.1用户的登录模块:
用户分为学生、老师和管理员,在前端中用户选择对应的身份,正确输入账号和密码。检查确认无误后送入后端,在SQL Server数据库对应的表中,执行SQL语句查询,根据账号查找相关的数据,如果存在该用户则允许登录,跳转到对应的窗体。
5.3.2学生模块
- 学生选 课:在窗体中可以查看到所有的课程信息,并可点击选课从而选择对应的课程,同时在选课时,会进一步提示错误,避免了重复选课的现象。
2.我的课程:在窗体中可以查看到所有的已选课程信息,并可点击取消选课从而取消选择对应的课程,同时在取消选课时,会进一步提示是否要取消选择这门课程,避免了误点的现象。
3.成绩查询:输入课程名称,点击查询,窗体显示学生对应课程的成绩,并可以同时显示出该课程的平均成绩以及该学生的总绩点。
4.我的学院和专业:学生可以查看所在的学院和专业的所有详细信息。
5.学生修改密码:学生可以修改自己的密码用于保护自己的信息。(初始密码为123456)
5.3.3老师模块:
- 学生信息:窗体中显示所有学生的详细信息,并且可以选择不同的功能。
2.添加学生信息:输入相应的信息,点击保存,在后端数据库学生表插入对应的元组信息。
3.修改学生信息:窗体显示选择学生的所有的信息,修改对应信息后,点击修改,在后端数据库学生表中,修改对应的信息。
4.删除学生信息:选择对应的学生后,点击删除,在后端数据库学生表中选择对应的学生删除,同时在删除时,会进一步提升是否需要删除,避免了误操作的现象。
5.学生成绩设计:窗体中显示所有学生的成绩,输入姓名、课程名称和对应的成绩,点击设置,在后端数据库选课表中设置成绩。
6.老师修改密码:老师可以修改自己的密码用于保护自己的信息。(初始密码为123456)
5.3.4管理员模块:
- 老师信息:窗体中显示所有老师的详细信息,并且可以选择不同的功能。
2.添加老师信息:输入相应的信息,点击保存,在后端数据库教师表插入对应的元组信息。
3.修改老师信息:窗体显示选择老师的所有的信息,修改对应信息后,点击修改,在后端数据库教师表中,修改对应的信息。
- 4.删除老师信息:选择对应的老师后,点击删除,在后端数据库教师表中选择对应的教师删除,同时在删除时,会进一步提升是否需要删除,避免了误操作的现象。
第6章 系统测试
6.1 测试概述
系统测试采用黑盒测试的方式,根据测试用例对所有的功能点进行全功能测试,测试高校教务管理系统中各个功能模块是否运行正常。通过测试,我们能对该系统做出更好的判断,在测试中能发现系统的各种不足,给系统的维护带来很大的便利。同时,通过测试,开发人员能感受系统与用户之间的交互性,及时做出调整。在测试中,还可以找出一些设计上的不足,在未来的系统改进中,完善和调整,使其更加贴合人们的生活,更受人们的喜爱。
6.2 测试结果
本系统的用户登录模块的测试有学生、老师和管理员登录,其具体测试结果如表所示
测试功能点 | 前置动作 | 预期结果 | 测试结果 |
学生登录 | 点击选课,跳转到学生界面 | 跳转到学生界面,显示学生个人的所有信息 | 通过 |
老师登录 | 选择老师,点击登录,跳转到老师界面 | 跳转到老师界面,显示所有学生的信息。 | 通过 |
管理员登录 | 选择管理员,点击登录,跳转到管理员界面 | 跳转到管理员界面,显示所有老师的信息 | 通过 |
系统的老师模块的测试有学生选课、我的课程、成绩查询、我的学院和专业和修改密码,其具体测试结果如表所示
测试功能点 | 前置动作 | 预期结果 | 测试结果 |
学生选课 | 点击选课 | 选课成功 | 通过 |
我的课程 | 点击我的课程,跳转到我的课程界面 | 跳转到我的课程界面,显示已选课程的信息 | 通过 |
成绩查询 | 点击成绩查询,跳转成绩查询界面,输入数据,点击查询 | 在成绩查询界面,出现一条新添的成绩数据 | 通过 |
我的学院和专业 | 点击我的学院和专业,跳转到我的学院和专业界面 | 跳转到我的学院和专业界面,显示所有学院和专业信息 | 通过 |
修改密码 | 点击修改密码,跳转到修改密码界面,输入数据,点击修改 | 修改成功 | 通过 |
系统的老师模块的测试有学生信息、添加学生信息、修改学生信息、删除学生信息、设置学生成绩和修改密码,其具体测试结果如表所示
测试功能点 | 前置动作 | 预期结果 | 测试结果 |
学生信息 | 老师权限登录 | 跳转到老师界面,显示所有学生的信息 | 通过 |
添加学生信息 | 点击添加学生信息,跳转到添加界面,输入数据,点击添加 | 添加成功,出现一条新添的学生数据 | 通过 |
修改学生信息 | 选择学生信息,点击修改学生信息,跳转到修改界面,输入数据,点击修改 | 修改成功 | 通过 |
删除学生信息 | 选择学生信息,点击删除学生信息,跳转到是否删除界面 | 删除成功 | 通过 |
设置学生成绩 | 点击设置学生成绩,跳转到设置界面,输入数据 | 设置成功 | 通过 |
修改密码 | 点击修改密码,跳转到修改密码界面,输入数据,点击修改 | 修改成功 | 通过 |
系统的管理员模块的测试有老师信息、添加老师信息、修改老师信息、删除老师信息其具体测试结果如表所示
测试功能点 | 前置动作 | 预期结果 | 测试结果 |
老师信息 | 管理员权限登录 | 跳转到管理员界面,显示所有老师的信息 | 通过 |
添加老师信息 | 选择老师信息,点击添加老师信息,跳转到添加界面,输入数据,点击添加 | 添加成功,出现一条新添的老师数据 | 通过 |
修改老师信息 | 点击修改老师信息,跳转到修改界面,输入数据,点击修改 | 修改成功 | 通过 |
删除老师信息 | 选择老师信息,点击删除老师信息,跳转到是否删除界面 | 删除成功 | 通过 |
总结与展望
系统设计部分:在实现系统设计部分时,将自己代入甲方与乙方的具体身份,根据具体实际的需求来进行对于整个系统的实现,不仅要满足一些最基本的技术方面的要求,同时在以后对接项目时也许更多的考虑到用户使用时的详细要求,力求做到呈现给用户的是一个更加便利更加高效的应用,来解决用户的实际需要,并且在此过程中我学会了将相关相似功能部分进行整合和统一,将不同的功能按其实际需求进行划分,将模块化的思想代入项目中,可以在很大意义上提高工作的效率,以及减少代码和功能的冗余度,使得程序更加高效。
数据库实施部分:在实现这一系统数据库的过程中,加深了我对SQL语言的理解与认识,也提升了我运用SQL语句编写数据库中存储数据的表,编写触发器,视图,存储过程等查询的能力,同时我还在数据库中设置了两张日志表来记录修改某些特定信息时的操作,加强数据库中数据的安全性,更加深刻地理解了数据库中日志表这一机制的重要性,另外,我还认识到数据库中数据完整性的重要性,数据缺失完整性会带来很严重的后果,因此在设计表时需要格外地关注完整性约束,防止出现数据库中数据不一致的情况。总体而言,承担数据库实施任务加强了我设计数据库的能力,同时也锻炼了我与同伴沟通设计需求的能力。
后端逻辑设计部分:参照学校教务管理系统,设计简易的三级高校教务管理系统,学生、老师和管理员。进入登入界面,选择登录权限,跳转到不同的界面。学生界面可以选课、查看课程成绩和平均成绩、查看GPA、查看学院专业详细信息和修改密码。老师界面可以查看学生信息、添加学生信息、修改学生信息、删除学生信息、设置学生成绩和修改密码。管理员界面可以查看老师信息、添加老师信息、修改老师信息和删除学生信息。因此,总体可以分为三个模块实现对应的功能,使用后端技术栈VisualStudio、Winform实现业务逻辑,包括用户认证、权限控制、数据处理等,使用SQL嵌入式语言实现对数据库数据的处理。
GUI界面设计部分:GUI界面设计关注的是用户与产品交互时的视觉和感觉体验。GUI设计的目的是创造既美观又实用的界面,使用户能够轻松高效地完成他们的目标。同时GUI界面的设计也要考虑到实现的时间与技术成本问题,这次我们使用C#加MFC设计了一个本地部署的GUI界面,技术栈设计的本科知识较多,比其他的实现方法成本要低。在未来我将要深入学习一些前端知识,包括:HTML、CSS、JavaScript和Vue等,为未来能够用网页部署UI界面打下基础。
希望本文设计的这一简单的系统能够帮助管理一些教务信息。
组长:柏政
小组成员:毕增、曹江涛、柏政、陈卜豪
68747470733a2f2f62:6c6f672e6373646e2e6e65742f6d305f37343337303430302f:61727469636c652f64657461696c732f313339313030303531