学生成绩管理系统的设计Word文档下载推荐.docx
《学生成绩管理系统的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统的设计Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
主要用于维护学生信息。
功能包括对学生信息的添加、删改和查询。
主要用于维护课程信息,功能包括课程的添加、删改和查询。
用于维护成绩信息,功能包括成绩的添加和查询。
第二章总体设计及流程图
上面的需求分析已经对系统的功能需求、环境需求做了较为明确的阐述。
根据上述需求,下面按照开发设计思想、功能模块、图形用户界面、数据库等方面阐述成绩管理系统的总体设计。
2.1开发与设计的总体思想
作为学校使用的成绩管理系统,能够满足成绩管理的基本功能需求,界面简单、操作简便是设计的一个重要考虑。
2.2系统模块结构图
2.2.1模块设计
图2-7主窗体菜单设计的效果图
1.教师管理菜单设计
(1)教师信息添加界面设计
教师信息添加界面使用文本框输入教师相关基本信息,使用组合列表框选择部门和性别。
单击添加按钮保存教师信息,单击返回按钮返回主菜单。
具体设计效果图如图2-8所示。
图2-8具体设计效果图
(2)教师信息修改删除界面设计
图2-9具体设计效果图
2.学生管理界面设计
(1)学生信息添加界面设计
学生信息添加界面使用文本框输入学生的姓名、学号、生日、电话、地址和备注信息。
同时使用了两个组合列表框,分别用于选择班级和性别。
组合列表框中的数据会在窗体加载的时候就进行初始化。
具体设计效果图如图1-11所示。
(2)学生信息删改界面设计
在学生信息删改界面中,在班级组合列表框中选择班级,该班级的所有学号会添加到学号组合列表框中,在学号组合列表框中选择学号,就会在下方显示该学生的基本信息。
根据需要单击修改按钮来修改学生信息,也可以单击删除按钮来删除该学生的信息,或是单击返回按钮返回主菜单。
具体设计效果图如图2-10所示。
图2-10具体设计效果图
(3)学生信息查询界面设计
学生信息查询办面提供了四种查询方式:
全部、按班级查询、按学号查询和按姓名查询。
提供了一个表格用于赤示查询结果。
3.课程管理界面设计
(1)课程信息添加界面设计
课程添加界面提供了文本框,用于输入课程名称、课程编号、课程学时数和学分等课程基本信息。
并且提供了两个组合列表框,分别用于选择课程类型和任课教师。
这两个组合列表框的数据是在加载窗体的时候进行初始化的。
(2)课程信息删改界面设计
课程信息删改界面提供了文本框,用于输入课程编号,单击查询按钮就会查找该课程编号所代表的课程信息,找到后将信息显示出来。
修改和删除按钮用于完成修改和删除操作。
具体设计效果图如图2-11所示。
图2-11具体设计效果图
4.成绩管理界面设计
(1)成绩录入界面设计
成绩界面使用文本框输入学生学号和课程成绩。
使用组合列表框选择课程编号。
使用表格显示查询结果。
使用两个文本框显示学生姓名和课程名称。
这两个文本框是不可编辑的。
具体设计效果图如图2-12所示。
图2-12具体设计效果图
(2)成绩删改界面设计
图2-13具体设计效果图
(3)成绩查询界面设计
成绩查询界面提供了三种查询方式:
按学号、按课程和按成绩查询。
2.2.3数据库设计
根据系统功能设计的要求以及功能模块的划分,数据库表结构设计如下。
1.学生信息表
名称:
学生信息表(见表2-1)
表名称标识:
studentInfo
数据来源:
学生管理模块进行录入。
2.教师信息表
教师信息表(见表2-2)
teacherInfo
教师管理模块进行录入。
3.班级信息表
表2-3班级信息表
名称
字段名称
类型
主键
非空
班级编号
ClassNo
文本
Yes
班级名称
className
No
4.部门信息表
表2-4部门信息表
部门编号
Dept_no
部门名称
Dept_name
5.课程信息表
表2-5课程信息表
序号
自动编号
课程编号
Course_no
课程名称
Course_name
课程类型
Course_type
学时数
Course_hours
数字
学分
Score
授课教师
Teacher
6.成绩信息表
表2-6成绩信息表
编号
学号
Stu_no
课程号
成绩
第三章详细设计
基于系统需求分析与系统总体设计的结论,本系统采用VisualBasic6.0实现各模块的功能,下面按照功能模块的划分来分别阐述系统的详细设计和实现过程。
3.1学生管理模块
1.功能描述
为用户提供学生信息的添加、修改、删除和查询界面,完成学生信息的添加、修改、删除和查询功能。
2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-1。
表3-1窗体列表
窗体各称
窗体文件名
作用
frmStudent
frmStudent.frm
用于学生信息添加
frmUpdateStudent
frmUpdateStudent.frm
用于修改、删除学生信息
frmQueryStudent
frmQueryStudent.frm
用于查询学生信息
Module1
Module1.bas
用于定义全局变量和公用函数
3.2教师管理模块
1.功能描述
该模块提供教师信息的添加、修改、删除和查询界面,完成教师信息的添加、修改、删除和查询功能。
2.窗体和源文件定义
表3-3窗体列表
窗体名称
frmAddTeacher
frmAddTeacher.frm
用于教师信息添加
frmUpdateTeacher
frmUpdateTeacher.frm
用于修改、删除教师信息
frmQueryTeacher
frmQueryTeacher.frm
用于查询教师信息
3.变量声明
‘窗体模块中的声明
PublicsqlstrAsString
PublicmsgTextAsString
‘代码模块中的声明
PublicdbpathAsString
PublicconnStrAsString
4.函数与方法声明
表3-4主要函数与方法
函数/方法名
SubinitDepartment()
在组合列表框中列出所有部门名称
SubinitForm()
初始化窗体上的文本框和组合列表框
PrivatesubcmdOK_Click()
添加教师信息
SubinitTeacherNo()
在组合列表框中列出所有教师编号
SubgetTeacherNo()
获取教师信息
PrivatesubcmdDelete_click()
删除教师信息
privatesubcmdUpdate_click()
修改教师信息
SubinitTitles()
在组合列表框中列出所有的职称
PrivatesubqueryTeacher()
查询教师信息
处理:
1)获取信息输入窗口中填写的数据。
2)执行查询得到结果集,然后调用结果集对象的addNew方法。
3)设置各个字段的值。
4)调用update方法更新结果集,完成教师信息添加。
输出:
将数据写入教师信息表
程序清单:
与学生信息添加代码类似,请参考本书提供的源代码。
(3)frmUpdateTeacher窗体:
privatesubcmdUpdate_Click()
功能:
主要用来完成教师信息的修改,将窗体上修改后的信息添加到数据库中。
输入:
教师信息删改窗体上输入的数据。
1)获取信息输入窗口中填写的数据并得到SQL语句。
2)执行SQL语句完成数据修改。
将修改后的数据写入教师信息表。
PrivatesubcmdUpdate_Click()
DimconnAsADODB.Connection
sqlStr=“UPDATEteacherInfoset[birthdate]=#”&
txtBirth&
“#,[department]=’”&
cboDept(0).Text&
“’,[telno]=’”&
txtTel.Text&
”’,[title]=’”&
txtTitle.Text&
”’”&
“whereteacher_no=’”&
txtNo.Text&
“’”
onErrorGoToexitsub
setconn=NewADODB.Connection
conn.OpenconnStr
conn.Executesqlstr
MsgBox“成功修改数据!
!
”
Exitsub:
Conn.close
initDepartment
endsub
3.5成绩管理模块
该模块提供成绩信息的录入、修改、删除和查询界面,完成成绩信息的录入、修改、删除和查询功能。
该功能模块涉及到的窗体名称和文件名参见表3-9。
表3-9窗体列表
frmAddScore
frmAddScore.frm
用于成绩信息添加
frmUpdateScore
frmUpdateScore.frm
用于修改、删除成绩信息
frmQueryScore
frmQueryscore.frm
用于查询成绩信息
‘窗体模块中的声明
4.函数与方法声明
表3-10主要函数与方法
SubinitCourseNo()
在下拉列表框中显示所有课程号
PrivatesubtxtStuNo_KeyPress(KeyAsciiAsInteger)
文本框响应回车键,如果输入学号后回车,就会查找并显示学生姓名
PrivatesubcboCourseNo_Click()
在组合列表框中选择课程编号,触发click事件,查找显示课程名称
向数据库中添加成绩信息
SubgetScoreInfo()
从数据库中查找成绩信息
PrivatesubcmdUpdate_click()
修改成绩信息
PrivatesubcmdDelete_Click()
删除成绩信息
查询成绩
(1)frmAddScore窗体:
privatesubtxtStuNo_KeyPress(KeyAsciiAsInteger)
相应键盘事件,如果是回车键,则按学号查询学生姓名。
按键的ASCII码。
1)判断按键是否为回车键。
2)如果为回车键,刚转3,否则退出。
3)查询学生姓名并显示出来。
学生姓名。
PrivatesubtxtStuNo_keypress(keyAsciiAsInteger)
DimrstStudentAsADODB.Recordset
IfKeyAscii=13Then
sqlStr=“selectnamefromstudentInfo”
setrststudent=ExecuteSQL(sqlStr,msgText)
IfNotrstStudent.EOFThen
txtName=rstStudent.Fields(0)
Else
MsgBox“未找到学生的信息记录!
”,vbOKOnly+vbExclamation,“警告”
Exitsub
EndIf
rstStudent.Close
EndIf
Endsub
(2)frmAddScore窗体:
privatesubcmdOK_Click()
将窗体中的成绩信息添加到数据库中。
成绩添加窗体中填写的数据。
4)调用update方法更新结果集,完成成绩信息添加。
将成绩信息写入数据库。
Privatesubcmdok_click()
DimrstScoreAsADODB.Recordset
DimstuNoAsString
DimcourseNoAsString
DimscoreAsString
‘获取数据
stuNo=Trim(txtstuNo.Text)
courseNo=Trim(cboCourseNo.Text)
score=Trim(txtScore.Text)
IfstuNo=“”orscore=“”Then
MsgBox“请将信息补充完整”,vbOKOnly+vbExclamation,“警告”
Exitsub
‘添加新记录
sqlStr=”select*fromscoreInfo”
setrstScore=ExecuteSQL(sqlStr,msgText)
rstScore.AddNew
rstScore.Fields(“stu_no”)=stuNo
rstScore.Fields(“course_no”)=courseNo
rstScore.Fields(“course_score”)=score
rstScore.Update
rstScore.Close
MsgBox“成绩信息添加完成!
”,vboOKOnly+vbExclamation,“警告”
initForm
Endsub
(3)frmUpdateScore窗体:
subgetScoreInfo()
根据课程编号和学号,从数据库中读取成绩信息、课程名和学生名。
课程编号和学号。
1)获取课程名称和学号,得到多表查询的SQL语句。
2)执行查询得到结果集。
3)从结果集中读取各个字段的值并显示出来。
学生姓名、课程名称、考试成绩。
SubgetScoreInfo()
‘从数据库中读取成绩相关信息并添加到窗体中的输入框
sqlStr=“selectname,course_name,coure_scorefrom
courseInfo,studentInfo,scoreInfo”&
“wherescoreInfo.course_no=’”&
cbocourseNo.text&
“’”&
“ANDscoreInfo.course_no=courseInfo.course_no”&
“ANDscoreInfo.stu_no=studentInfo.stu_no”&
“ANDscoreInfo.stu_no=’”&
txtStuNo.Text&
txtName=Trim(rstScore.Fields(“name”))
txtCourseName.Text=trim(rstScore.Fields(“dourse_name”))
txtScore.Text=Trim(rstScore.Fields(“course_score”))
Else
MsgBox“没找到符合条件的数据!
rstScore.Close
(4)frmQueryScore窗体:
privatesubcmdOk_Click()
根据查询条件查找成绩信息。
查询方式和关键字。
1)获取查询方式和输入的关键字。
2)形成SQL语句,执行SQL语句得到结果集。
3)从结果集中读取全部数据,并在表格中显示出来。
符合查询条件的课程成绩信息。
Dimsqlstr1AsString
Dimsqlcond1AsString
Dimsqlcond2AsString
Dimsqlcond3AsString
DimsignAsBoolean
Sqlcond1=“”
Sqlcond2=“”
Sqlcond3=“”
Sign=False
Sqlstr=”selectstudentInfo.stu_noasstuNo.studentInfo.nameasstuName,”_
&
“courseInfo.course_nameascourseName,scoreInfo.course_scoreasscore”&
_
“fromstudentInfo,courseInfo,scoreInfoWHERE”
‘检查是否已选择了查询条件
IfchkOp(0).value<
>
1AndchkOp91).value<
1AndchkOp
(2).value<
1Then
MsgBox“请选择查询条件!
!
Endif
‘获得子查询条件
IfchkOp(0).value=1Then
Sqlcond1=“studentInfo.stu_no=’”&
Trim(txtstuNo.Text)&
IfchkOp
(1).value=1Then
Sqlcond2=“scoreInfo.course_no=’”&
Trim(txtCourseNo.Text)&
IfchkOp
(2).value=1Then
IfcboOperator.Text<
“between”Then
Sqlcond3=“scoreInfo.course_score”&
cboOperator.Text&
Trim(txtscore1.Text)
“”&
Trim(txtScore1.Text)&
“AND”&
Trim(txtScore2.Text)
Ifsqlcond1<
“”Then
Sqlstr=sqlstr&
sqlcond1
Sign=true
Ifsqlcond3<
If