关键词:Access数据库2010;学生信息管理
第一章绪论
因此我根据实际情况开发的这个系统是针对学校学生信息的特点以及管理中实际需要而设计的,目的是使学校在学生信息管理方面更加规范化,快捷化,使使用者提供更好更便利的操作环境。
根据系统的应用需求说明,我首先要对数据库进行分析和设计,然后进行系统功能模块的划分和设计,再根据设计的要求在Access中建立数据库,定义好数据表、查询、窗体、宏和报表等对象,最后将这些对象连接起来构成一个完整、好用的管理信息系统。
数据库设计的目标是正确建立好数据表,使得数据结构化、数据共享性好,并且数据的独立性强,且尽量减少数据的冗余等。一般数据库设计都要经过需求分析、概念设计、逻辑设计和物理实现等几个阶段。
1.概念设计
概念设计阶段的主要任务和目标是根据需求分析的结果找出所有实体,包括一般的实体和联系实体,画出对应的ER图。
2.逻辑设计
逻辑设计阶段的主要任务和目标是根据概念设计的结果(ER图)设计出数据库的逻辑结构模式,主要是确定数据库中需要哪些基本表,每个基本表应包括哪些属性的名称、数据类型和长度等内容进行确定。
Access是Office系列软件中用来专门管理数据库的应用软件。所谓数据库是指经过组织的、关于特定主题或对象的信息集合。数据库管理系统分为两类:文件管理系统和关系型管理系统。Access应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。它可运行于各种MicrosoftWindows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。本章将专门介绍Access2002(下面简称为Access)的基本功能及其常用的操作,主要内容包括创建和使用数据表,建立和使用查询、窗体,以及数据表与其他数据文件之间的转换等。
MicrosoftAccessBasic提供了一个丰富的开发环境。这个开发环境给你足够的灵活性和对MicrosoftWindows应用程序接口的控制,同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。
学校的信息管理系统并不需要是一个过于复杂的工作环境,一般来说:最合适的才是最好的。软件设计必须符合学校实际工作的需要,从目前学校网络运用的情况和教育部门对无纸化办公的实际情况来看,系统主要是为了满足对学生学籍信息的登记和查询,同时为了将来扩充的需要,能够非常方便地进行系统的升级。
目前学生信息管理在我们学校应用管理中变得越来越重要。它能够使使用者大大的减少不必要的人力消耗、提高个人的工作效率等,所以拥有良好的人机交互界面、原始数据修改简单方便、方便的数据查询等应用及其重要。
该系统所需硬件设备,如服务器、PC机、打印机及网络配件等,市场上有销售且价格较低,能满足系统功能要求。软件上,操作系统采用WindowsNT,数据库管理系统采用SQLServer2000,这些软件在MIS开发中已被大量应用,技术上都比较成熟。因此技术上是可行的。
作为学校教务信息管理系统之一的选课系统,对它的管理也是很方便的,只需要先将系统配置运行起来,然后分配好系统的三个主要角色,就可以投入实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。根据以上几方面的可行性分析,可以得出结论:学生网上选课系统的开发可行。
在数据库的概念设计中,通常采用E-R数据模型来表示数据库的概念结构。E-R数据模型将现实世界的信息结构统一用属性、实体以及它们之间的联系来描述。
数据库的E-R图如下:
系统ER图
学生表
教师表
课程表
教师任课表
学生选课成绩表
PrivateSubcmd_cancel_Click()
Me!txt_uid=""
Me!txt_pw=""
EndSub
PrivateSubcmd_ok_Click()
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimstrAsString
DimctypeAsString
Combo_type.SetFocus
ctype=Combo_type.Text
Setconn=CurrentProject.Connection
SelectCasectype
Case"学生"
str="select*from学生表where学号='"
str=str&Me!txt_uid&"'and密码='"&Me!txt_pw&"'"
rs.Openstr,conn
Ifrs.EOFThen
MsgBox"学号或密码错误,请重新输入!"
Me!txt_uid.SetFocus
Else
sno=rs!学号
sname=rs!姓名
DoCmd.OpenForm"学生主窗体"
EndIf
Case"教师"
str="select*from教师表where教工号='"
MsgBox"教工号或密码错误,请重新输入!"
tno=rs!教工号
tname=rs!教师姓名
DoCmd.OpenForm"教师主窗体"
Case"管理员"
IfMe!txt_uid<>"sa"OrMe!txt_pw<>"abcdef"Then
MsgBox"用户或密码错误,请重新输入!"
admin=Me!txt_uid
DoCmd.OpenForm"管理员主窗体"
EndSelect
Setrs=Nothing
Setconn=Nothing
学生所有的功能都能在窗体中打开来实现。
图6.2学生用户主窗体
教师所有的功能都能在窗体中打开来实现。
图6.3教师用户主窗体
图6.4学生选课界面
DimxqAsString
DimcnameAsString
DimcnoAsString
DimttnameAsString
DimttnoAsString
ttname=Me.Combo_teacher.Value
str="select教工号,课程号from教师任课信息查询where"
str=str&"课程名称='"&cname&"'and任课学期='"&xq
str=str&"'and教师姓名='"&ttname&"'"
IfNotrs.EOFThen
ttno=rs!教工号
cno=rs!课程号
str="select*from学生选课成绩表where课程号='"&cno
str=str&"'and学号='"&sno&"'"
MsgBox"你已经选学过这门课程,请选择其他课程!"
rs.Open"学生选课成绩表",conn,adOpenKeyset,adLockOptimistic
rs.AddNew
rs!学号=sno
rs!课程号=cno
rs!任课教师=ttno
rs!选课学期=sq
rs.Update
MsgBox"已经成功选课!"
Combo_courses.Value=""
Combo_teacher.Value=""
PrivateSubCombo_courses_AfterUpdate()
Me.Combo_courses.SetFocus
cname=Me.Combo_courses.Value
str="selectdistinct教师姓名from教师任课信息查询where课程名称='"
str=str&cname&"'and任课学期='"&xq&"'"
Combo_teacher.RowSourceType="Table/Query"
Combo_teacher.RowSource=str
PrivateSubCombo_teacher_AfterUpdate()
Me.Combo_teacher.SetFocus
PrivateSubForm_Load()
Ifsno=""Then
DoCmd.CloseacForm,"学生选课窗体"
Lbl_students.Caption="欢迎您!"&sname&"同学"
str="selectdistinct任课学期from教师任课表orderby任课学期desc"
IfNotrs.EOFThenxq=rs!任课学期
Txt_xq=xq
str="selectdistinct课程名称from教师任课信息查询"
str=str&"where任课学期='"&xq&"'"
Combo_courses.RowSourceType="Table/Query"
Combo_courses.RowSource=str
图6.5学生成绩查询界面
图6.6学生对教师评价界面
IfTxt_pj.Value=""Then
MsgBox"请对教师进行评价!"
str="update教师任课表set学生评价=学生评价+',"
str=str&Txt_pj&"'where课程号='"&cno&"'and教工号='"
str=str&ttno&"'and任课学期='"&xq&"'"
conn.Executestr
MsgBox"已经成功提交评价信息!"
Combo_course.Value=""
Txt_tname.Value=""
PrivateSubCombo_course_AfterUpdate()
cname=Combo_course.Value
str="select教师姓名,任课教师,课程号,选课学期from学生选课成绩信息查询"
str=str&"where学号='"&sno&"'and课程名称='"&cname&"'"
ttno=rs!任课教师
ttname=rs!教师姓名
xq=rs!选课学期
Txt_tname=ttname
DoCmd.CloseacForm,"学生对教师的教学评价"
Lbl_sname.Caption="欢迎您!"&sname&"同学"
str="select课程名称from学生选课成绩信息查询"
str=str&"where学号='"&sno&"'"
Combo_course.RowSourceType="table/query"
Combo_course.RowSource=str
图6.7学生成绩报表界面
图6.8教师任课界面
PrivateSubCmd_all_Click()
Me.FilterOn=False
PrivateSubcmd_query_Click()
Me.Filter=[Combo_col]&"like'*"&[txt_content]&"*'"
Me.FilterOn=True
图6.9学生信息报表界面
在毕业设计中,我们遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如何分析、建立、开发一个系统。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对数据库的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献
[1]史济明等编著,软件工程-原理、方法与应用,高等教育出版社,2002
[2]汪孝宜等,信息系统开发实例精粹(C#版),电子工业出版社,2006