摘 要
随着计算机相关技术在各行各业应用的不断深入,其诸多益处已为人们深刻认识。作为这些应用的一部分,使用计算机相关技术对学生成绩信息进行管理,具有手工管理所无法比拟的优点。这一运用可以减轻教学人员的工作量,加快查询速度,加强管理,使各项管理更加规范化。同时,可以使学生能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。
关键词:Access数据库2010;学生信息管理
第一章 绪论
1.1背景
学校的师生都非常关心课程的选修、成绩的录入和查看这些基本工作。我设计的学生成绩查询与管理系统是为高等院校的师生和教务员服务的,不同类型的用户,如学生、教师和教务管理员会有不同的操作界面,进入系统后能够快速、方便地完成各自希望的有关课程及其成绩方面的相关操作。
因此我根据实际情况开发的这个系统是针对学校学生信息的特点以及管理中实际需要而设计的,目的是使学校在学生信息管理方面更加规范化,快捷化,使使用者提供更好更便利的操作环境。
1.2研究目的
一直以来人们使用传统人工的方式管理档档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 学生成绩查询系统成为教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。可以说它是完全为学生朋友服务的系统,并且适用于各所高校。
1.3数据库设计与实现
根据系统的应用需求说明,我首先要对数据库进行分析和设计,然后进行系统功能模块的划分和设计,再根据设计的要求在Access中建立数据库,定义好数据表、查询、窗体、宏和报表等对象,最后将这些对象连接起来构成一个完整、好用的管理信息系统。
数据库设计
数据库设计的目标是正确建立好数据表,使得数据结构化、数据共享性好,并且数据的独立性强,且尽量减少数据的冗余等。一般数据库设计都要经过需求分析、概念设计、逻辑设计和物理实现等几个阶段。
1.概念设计
概念设计阶段的主要任务和目标是根据需求分析的结果找出所有实体,包括一般的实体和联系实体,画出对应的ER图。
2.逻辑设计
逻辑设计阶段的主要任务和目标是根据概念设计的结果(ER图)设计出数据库的逻辑结构模式,主要是确定数据库中需要哪些基本表,每个基本表应包括哪些属性的名称、数据类型和长度等内容进行确定。
第二章 设计开发的环境和工具
2.1 Microsoft Office Access 简介
Access是Office系列软件中用来专门管理数据库的应用软件。所谓数据库是指经过组织的、关于特定主题或对象的信息集合。数据库管理系统分为两类:文件管理系统和关系型管理系统。Access应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。它可运行于各种Microsoft Windows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。本章将专门介绍Access 2002(下面简称为Access)的基本功能及其常用的操作,主要内容包括创建和使用数据表,建立和使用查询、窗体,以及数据表与其他数据文件之间的转换等。
2.2 Microsoft Office Access 主要特点
Microsoft Access Basic提供了一个丰富的开发环境。这个开发环境给你足够的灵活性和对Microsoft Windows应用程序接口的控制,同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。
第三章 系统分析
学校的信息管理系统并不需要是一个过于复杂的工作环境,一般来说:最合适的才是最好的。软件设计必须符合学校实际工作的需要,从目前学校网络运用的情况和教育部门对无纸化办公的实际情况来看,系统主要是为了满足对学生学籍信息的登记和查询,同时为了将来扩充的需要,能够非常方便地进行系统的升级。
3.1需求分析
目前学生信息管理在我们学校应用管理中变得越来越重要。它能够使使用者大大的减少不必要的人力消耗、提高个人的工作效率等,所以拥有良好的人机交互界面、原始数据修改简单方便、方便的数据查询等应用及其重要。
3.1.1 技术上的可行性
该系统所需硬件设备,如服务器、PC机、打印机及网络配件等,市场上有销售且价格较低,能满足系统功能要求。软件上,操作系统采用WindowsNT, 数据库管理系统采用SQL Server2000,这些软件在 MIS开发中已被大量应用,技术上都比较成熟。因此技术上是可行的。
3.1.2管理上的可行性
作为学校教务信息管理系统之一的选课系统,对它的管理也是很方便的,只需要先将系统配置运行起来,然后分配好系统的三个主要角色,就可以投入实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。 根据以上几方面的可行性分析,可以得出结论:学生网上选课系统的开发可行。
第四章 系统功能流程图
本系统在执行时,需要有相关的用户和密码才可以使用操作,总体来说,本系统属于一个全线型操作管理系统。
第五章 数据库的设计
5.1数据库概念结构设计
在数据库的概念设计中,通常采用E-R数据模型来表示数据库的概念结构。 E-R数据模型将现实世界的信息结构统一用属性、实体以及它们之间的联系来描述。
数据库的E-R图如下:
系统ER图
5.2建立数据库及表
学生表
教师表
课程表
教师任课表
学生选课成绩表
第六章 主要内容
6.1 用户登录界面
用于输入用户名和密码登录,若用户名或登录密码错误则不能进入本系统。
图6.1用户登录界面
登录代码
Private Sub cmd_cancel_Click()
Me!txt_uid = ""
Me!txt_pw = ""
End Sub
Private Sub cmd_ok_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Dim ctype As String
Combo_type.SetFocus
ctype = Combo_type.Text
Set conn = CurrentProject.Connection
Select Case ctype
Case "学生"
str = "select * from 学生表 where 学号='"
str = str & Me!txt_uid & "'and 密码='" & Me!txt_pw & "'"
rs.Open str, conn
If rs.EOF Then
MsgBox "学号或密码错误,请重新输入!"
Me!txt_uid = ""
Me!txt_pw = ""
Me!txt_uid.SetFocus
Else
sno = rs!学号
sname = rs!姓名
DoCmd.Close acForm, "用户登录窗体"
DoCmd.OpenForm "学生主窗体"
End If
Case "教师"
str = "select * from 教师表 where 教工号='"
str = str & Me!txt_uid & "'and 密码='" & Me!txt_pw & "'"
rs.Open str, conn
If rs.EOF Then
MsgBox "教工号或密码错误,请重新输入!"
Me!txt_uid = ""
Me!txt_pw = ""
Me!txt_uid.SetFocus
Else
tno = rs!教工号
tname = rs!教师姓名
DoCmd.Close acForm, "用户登录窗体"
DoCmd.OpenForm "教师主窗体"
End If
Case "管理员"
If Me!txt_uid <> "sa" Or Me!txt_pw <> "abcdef" Then
MsgBox "用户或密码错误,请重新输入!"
Me!txt_uid = ""
Me!txt_pw = ""
Me!txt_uid.SetFocus
Else
admin = Me!txt_uid
DoCmd.Close acForm, "用户登录窗体"
DoCmd.OpenForm "管理员主窗体"
End If
End Select
Set rs = Nothing
Set conn = Nothing
End Sub
6.2 学生用户主窗体
学生所有的功能都能在窗体中打开来实现。
图6.2 学生用户主窗体
6.3 教师用户主窗体
教师所有的功能都能在窗体中打开来实现。
图6.3 教师用户主窗体
6.4 学生选课界面
图6.4 学生选课界面
学生选课代码
Dim xq As String
Dim cname As String
Dim cno As String
Dim ttname As String
Dim ttno As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Private Sub cmd_ok_Click()
Set conn = CurrentProject.Connection
ttname = Me.Combo_teacher.Value
str = "select 教工号,课程号 from 教师任课信息查询 where"
str = str & " 课程名称='" & cname & "'and 任课学期= '" & xq
str = str & "' and 教师姓名= '" & ttname & "'"
rs.Open str, conn
If Not rs.EOF Then
ttno = rs!教工号
cno = rs!课程号
End If
Set rs = Nothing
str = "select * from 学生选课成绩表 where 课程号='" & cno
str = str & "'and 学号='" & sno & "'"
rs.Open str, conn
If Not rs.EOF Then
MsgBox "你已经选学过这门课程,请选择其他课程!"
Else
Set rs = Nothing
rs.Open "学生选课成绩表", conn, adOpenKeyset, adLockOptimistic
rs.AddNew
rs!学号 = sno
rs!课程号 = cno
rs!任课教师 = ttno
rs!选课学期 = sq
rs.Update
MsgBox "已经成功选课!"
End If
Combo_courses.Value = ""
Combo_teacher.Value = ""
Set rs = Nothing
Set conn = Nothing
End Sub
Private Sub Combo_courses_AfterUpdate()
Me.Combo_courses.SetFocus
cname = Me.Combo_courses.Value
str = "select distinct 教师姓名 from 教师任课信息查询 where 课程名称 ='"
str = str & cname & "'and 任课学期 ='" & xq & "'"
Combo_teacher.RowSourceType = "Table/Query"
Combo_teacher.RowSource = str
Combo_teacher.Value = ""
End Sub
Private Sub Combo_teacher_AfterUpdate()
Me.Combo_teacher.SetFocus
ttname = Me.Combo_teacher.Value
End Sub
Private Sub Form_Load()
If sno = "" Then
MsgBox "您还没有登录,请先登录!"
DoCmd.Close acForm, "学生选课窗体"
DoCmd.OpenForm "用户登录窗体"
Else
Lbl_students.Caption = "欢迎您!" & sname & "同学"
str = "select distinct 任课学期 from 教师任课表 order by 任课学期 desc"
Set conn = CurrentProject.Connection
rs.Open str, conn
If Not rs.EOF Then xq = rs!任课学期
Set rs = Nothing
Set conn = Nothing
Txt_xq = xq
str = "select distinct 课程名称 from 教师任课信息查询 "
str = str & " where 任课学期='" & xq & " '"
Combo_courses.RowSourceType = "Table/Query"
Combo_courses.RowSource = str
Combo_courses.Value = ""
Combo_teacher.Value = ""
End If
End Sub
6.5学生成绩查询界面
图6.5 学生成绩查询界面
6.6 学生对教师评价界面
图6.6 学生对教师评价界面
学生对教师评价的相关代码
Dim str As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cname As String
Dim ttname As String
Dim ttno As String
Dim cno As String
Dim xq As String
Private Sub cmd_ok_Click()
If Txt_pj.Value = "" Then
MsgBox "请对教师进行评价!"
Else
Set conn = CurrentProject.Connection
str = " update 教师任课表 set 学生评价 = 学生评价 + ',"
str = str & Txt_pj & "' where 课程号 ='" & cno & "'and 教工号 ='"
str = str & ttno & "' and 任课学期 ='" & xq & "'"
conn.Execute str
MsgBox "已经成功提交评价信息!"
Set conn = Nothing
Combo_course.Value = ""
Txt_tname.Value = ""
End If
End Sub
Private Sub Combo_course_AfterUpdate()
cname = Combo_course.Value
str = " select 教师姓名,任课教师,课程号,选课学期 from 学生选课成绩信息查询 "
str = str & "where 学号 ='" & sno & "'and 课程名称 = '" & cname & "'"
Set conn = CurrentProject.Connection
rs.Open str, conn
If Not rs.EOF Then
ttno = rs!任课教师
ttname = rs!教师姓名
cno = rs!课程号
xq = rs!选课学期
End If
Set rs = Nothing
Set conn = Nothing
Txt_tname = ttname
End Sub
Private Sub Form_Load()
If sno = "" Then
MsgBox "您还没有登录,请先登录!"
DoCmd.Close acForm, "学生对教师的教学评价"
DoCmd.OpenForm "用户登录窗体"
Else
Lbl_sname.Caption = "欢迎您!" & sname & "同学"
str = "select 课程名称 from 学生选课成绩信息查询"
str = str & " where 学号='" & sno & "'"
Combo_course.RowSourceType = "table/query"
Combo_course.RowSource = str
Combo_course.Value = ""
Txt_tname.Value = ""
End If
End Sub
6.7 学生成绩报表界面
图6.7 学生成绩报表界面
6.8 教师任课界面
图6.8 教师任课界面
教师任课界面的相关代码
Private Sub Cmd_all_Click()
Me.FilterOn = False
End Sub
Private Sub cmd_query_Click()
Me.Filter = [Combo_col] & " like '*" & [txt_content] & "*'"
Me.FilterOn = True
End Sub
6.9 学生信息报表界面
图6.9 学生信息报表界面
结论
在毕业设计中,我们遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如何分析、建立、开发一个系统。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对数据库的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献
[1] 史济明等编著,软件工程-原理、方法与应用,高等教育出版社,2002
[2] 汪孝宜等,信息系统开发实例精粹(C#版),电子工业出版社,2006
[3] 张立,C#2.0宝典,电子工业出版社,2007
[4] 何玉洁编著,数据库原理与应用,机械工业出版社,2006