学生管理信息系统.docx
《学生管理信息系统.docx》由会员分享,可在线阅读,更多相关《学生管理信息系统.docx(39页珍藏版)》请在冰豆网上搜索。
学生管理信息系统
华科学院计算机科学与技术系计算机专业
《软件工程课程设计》报告
(2010/2011学年第一学期)
学生姓名:
强海荣
学生班级:
计算机072202H
学生学号:
200722030217
指导教师:
赵旭俊
2010年12月27日
第一章系统概述
1.1系统开发的背景
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生各门课程的成绩的各种信息量也成倍增长,而目前许多高校的学生信息管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发学生管理信息系统来提高管理工作的效率。
1.2系统开发的意义
学生管理信息系统,在学生信息的规范管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。
为了能够学以致用,通过对学生管理信息系统的简单开发,不仅可以巩固书本上所学知识,从而能够对所学内容加以深化,拓宽自己的知识面。
通过学习与实践相结合,提高自己的编程能力,为今后的毕业设计和以后的软件开发奠定了基础。
1.3系统开发的目标
学生管理信息系统是面向教育部门的学生管理系统,包括学生基本信息管理,学生成绩管理等工作,是利用计算机进行集中管理而开发的系统。
该系统是以VisualBasic6.0为开发环境,以SQL2000为后台数据库进行开发的管理系统,力求与实际相结合具有查询、管理等功能,使教育的管理趋于计算机化,使之更加方便、快捷以提高工作效率。
根据学生管理的需求和特点,该系统实施后,应达到以下目标:
1.灵活地运用表格输入数据,使信息传递更快捷;
2.系统采用人机对话方式,界面美观友好、数据存储安全可靠;
3.键盘操作,快速响应;
4.实现各种信息的添加、删除、修改、查询等;
5.系统运行稳定、安全可靠。
第二章系统需求分析
2.1综合要求
2.1.1功能要求
在学生管理信息系统中,主要有用户登陆、学生信息管理、班级信息管理、学生成绩管理、课程信息管理、用户信息管理等功能。
1.用户登陆
管理员登陆,普通用户对信息的查询登陆,管理员和普通用户必须在登陆页面输入用户名及密码,只有验证通过方可进入其它操作。
2.学生信息管理
包括4个功能模块:
学生信息添加、学生信息修改、学生信息删除和学生信息查询。
3.班级信息管理
包括4个功能模块:
班级信息添加、班级信息修改、班级信息删除和班级信息查询。
4.学生成绩管理
包括4个功能模块:
学生成绩添加、学生成绩修改、学生成绩删除和学生成绩查询。
5.课程信息管理
包括4个功能模块:
课程信息添加、课程信息修改、课程信息删除和课程信息查询。
6.用户信息管理
包括2个功能模块:
用户信息添加和用户密码修改。
2.1.2性能需求
要求该系统易操作、可维护、具有开放性,时刻保持数据的有效性与安全性,并且只有管理员才能对数据进行修改。
开发环境:
VisualBasic6.0.
数据库:
SQLServer2000.
操作系统:
WindowsXP.
2.2数据流图
分析学生管理信息系统的数据来源和去向,绘制出数据流图的顶层数据流图,如图2-1所示。
图2-1学生管理信息系统的顶层数据流图
按自顶向下、逐层分解的方法对顶层数据流图进一步细化,绘制出0层数据流图,如图2.2所示。
图2.2学生管理信息系统的0层数据流图
2.3数据字典
该学生信息管理系统的数据字典如下:
(1)、数据名称:
学生信息
数据流数据字典
数据名:
录入学生的基本信息
来源:
管理员
数据结构:
学号+姓名+性别+出生日期+班级编号+入学时间+住址+备注
简要说明:
该学生信息管理系统的主要结构,定义了一个学生的基本信息
数据项数据字典
数据名:
学号
存储处:
学生信息表
数据元素:
类型:
字符型
长度:
50
含义:
学生的唯一标识
简要说明:
在学生信息表中可以唯一的标识每一位学生
数据名:
入学时间
存储处:
学生信息表
数据元素:
类型:
datetime
长度:
8
含义:
学生的入学时间信息
简要说明:
记录每一位学生的入学时间
数据加工数据字典
项目名:
添加学生信息
输入:
学生信息
输出:
简要说明:
可以添加学生信息
项目名:
修改学生信息
输入:
学生信息
(2)、数据名称:
班级信息
数据流数据字典
数据名:
录入班级的基本信息
来源:
管理员
数据结构:
班级编号+班级名称+辅导员+系名称+班主任
简要说明:
该学生信息管理系统的主要结构之一,定义了一个班级的基本信息
数据项数据字典
数据名:
班级编号
存储处:
班级信息表
数据元素:
类型:
字符型
长度:
50
含义:
班级的唯一标识
简要说明:
在班级信息表中可以唯一的标识每一门课程
数据名:
班主任
存储处:
班级信息表
数据元素:
类型:
字符
长度:
50
含义:
该课程的负责人
简要说明:
记录每一个班级的班主任
数据加工数据字典
项目名:
添加班级信息
输入:
班级信息
输出:
简要说明:
可以添加班级信息
项目名:
修改班级信息
输入:
班级信息
输出:
简要说明:
可以修改错误的班级信息
(3)、数据名称:
学生成绩信息
数据流数据字典
数据名:
录入学生成绩信息
来源:
管理员
数据结构:
学号+课程编号+成绩
简要说明:
该学生信息管理系统的主要结构之一
数据项数据字典
数据名:
学号
存储处:
成绩信息表
数据元素:
类型:
字符型
长度:
50
含义:
学生的唯一标识
简要说明:
在成绩信息表中可以唯一的标识每一位学生
数据名:
成绩
存储处:
成绩信息表
数据元素:
类型:
numeric
长度:
9
含义:
学生的成绩信息
简要说明:
记录每一位学生的成绩信息
数据加工数据字典
项目名:
添加成绩信息
输入:
成绩信息
输出:
简要说明:
可以添加成绩信息
项目名:
查询成绩信息
输入:
输出:
成绩信息
简要说明:
可以查询每一位学生的成绩信息
(4)、数据名称:
课程信息表
数据流数据字典
数据名:
录入课程的基本信息
来源:
管理员
数据结构:
课程编号+课程名称+课程类型+开课时间+学时+学分
简要说明:
该学生信息管理系统的主要结构之一
数据项数据字典
数据名:
课程编号
存储处:
课程信息表
数据元素:
类型:
字符型
长度:
50
含义:
课程的唯一标识
简要说明:
在课程信息表中可以唯一的标识每一门课程
数据名:
开课时间
存储处:
课程信息表
数据元素:
类型:
datetime
长度:
8
含义:
学生的开课时间信息
简要说明:
记录每一门的课程的开课时间
数据加工数据字典
项目名:
添加课程信息
输入:
课程信息
输出:
简要说明:
可以添加课程信息
项目名:
修改课程信息
输入:
课程信息
输出:
简要说明:
可以修改错误的课程信息
2.4系统E-R图
绘制学生管理信息系统的E-R图,如图2-3所示。
图2.3学生管理信息系统的E-R图
图2.4学生实体图
图2.5班级实体图
图2.6课程实体图
图2.7成绩实体图
第三章系统概要设计
3.1合理方案设计
在需求分析的基础上,寻找实现学生管理信息系统的各种不同的方案,并选取若干个合理方案,经分析比较,从中选出一个最佳方案。
本方案是在VisualBasic6.0、SQLServer2000的环境下,实现对学生管理信息系统的用户登陆、学生信息管理、班级信息管理、学生成绩管理、课程信息管理、用户信息管理等功能。
3.2系统功能模块设计
学生管理信息系统功能包括可视化窗口,对各种信息的添加、修改、删除和查询等具体功能如图3-1所示。
图3.1学生管理信息系统功能模块
3.3数据库设计
在需求分析阶段所确定的学生管理信息系统数据需求的基础上,进一步设计数据库。
1.系统用户数据表(用户信息表)记录系统所有用户名和密码信息,表中的各个字段以及各个字段的说明如表3-1所示:
表3-1用户信息表结构
列名
数据类型
长度
说明
用户名
varchar
50
允许空
密码
varchar
50
允许空
用户类型
char
10
允许空
2.学生信息表记录学生学号、姓名等基本信息,表中的各个字段以及各个字段的说明如表3-2所示:
表3-2学生信息表结构
列名
数据类型
长度
说明
学号
varchar
50
主键
姓名
varchar
50
允许空
性别
varchar
10
允许空
出生日期
datetime
8
允许空
班级编号
varchar
50
允许空
电话号码
varchar
50
允许空
入学时间
datetime
8
允许空
住址
varchar
100
允许空
备注
varchar
200
允许空
3.班级信息表记录班级编号、班级名称及相关的信息,表中各个字段以及各个字段的说明如表3-3所示:
列名
数据类型
长度
说明
班级编号
varchar
50
主键
班级名称
varchar
50
允许空
辅导员
varchar
50
允许空
系名称
varchar
50
允许空
班主任
varchar
50
允许空
表3-3班级信息表结构
4.课程信息表记录课程编号、课程名称等相关信息,表中各个字段以及各个字段的说明如表3-4所示:
列名
数据类型
长度
说明
课程编号
varchar
50
主键
课程名称
varchar
50
允许空
课程类型
varchar
50
允许空
开课时间
carhar
10
允许空
课时
int
4
允许空
学分
int
4
允许空
表3-4课程信息表结构
5.学生成绩表记录学生学号、课程编号及相关的成绩,表中各个字段以及各个字段的说明如表3-5所示:
表3-5学生成绩表结构
列名
数据类型
长度
说明
学号
varchar
50
主键
课程编号
varchar
50
主键
成绩
numeric
9
允许空
第四章系统详细设计
4.1数据库及表创建
启动SQL2000Server,右击“数据库”点击“新建数据库”,在弹出的“数据库属性”对话框中可键入数据库名及其它信息,如图4-1所示:
图4.1新建数据库
4.1.1新建表
数据库创建完毕后,点击可打开。
右击“表”选择“新建表”,可以进行表的创建以及进行相关的表属性设置。
1.用户信息表如图4-2所示:
图4.2新建用户信息表
2.学生信息表如图4-3所示:
图4.3新建学生信息表
3.班级信息表如图4-4所示:
图4.4新建班级信息表
4.课程信息表如图4-5所示:
图4.5新建课程信息表
5.学成成绩表如图4-6所示:
图4.6新建学生成绩表
4.1.2设计表
创建完表后右击对应表名——“打开表”——“返回所有行”,可对表进行添加、修改、插入、删除等相应编辑操作。
1.设计用户信息表如图4-7所示:
图4.7设计用户信息表
2.设计学生信息表如图4-8所示:
图4.8设计学生信息表
3.设计班级信息表如图4-9所示:
图4.9设计班级信息表
4.设计课程信息表如图4-10所示:
图4.10设计课程信息表
5.设计学生成绩表如图4-11所示:
图4.11设计学生成绩表
4.2结构程序设计
4.2.1添加信息程序流程图
绘制添加信息流程图,如图4-12所示。
图4.12添加信息
4.2.2修改信息程序流程图
绘制修改信息流程图如图4-13所示。
图4.13修改信息
4.2.3删除信息程序流程图
绘制删除信息流程图如图4-14所示。
图4.14删除信息
4.2.4查询信息程序流程图
绘制查询信息流程图如图4-15所示
图4.15查询信息
4.2.5系统程序流程图
采用自顶向下、逐步求精的程序设计方法,使用顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和出口。
4.3人机界面设计
认真处理好系统响应时间、用户帮助设施、出错信息处理和命令交互这4个问题。
先创建设计模型,接下来用原型实现这个设计模型并由用户调试和评估原型,然后根据用户意见修改原型。
1.系统响应时间:
稳定在1秒。
2.用户帮助设施:
选择附加的帮助设施。
3.出错信息处理:
1)当输入用户名不存在时,给出提示;
2)当输入密码不正确时,给出提示;
3)当查询信息不存在时,给出提示;
4)其他出错提示。
4.命令交互:
用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能。
第五章系统编码与实现
5.1创建工程项目
图5.1VB6.0界面
1.启动VB6.0,出现VB6.0运行界面,如图5-1所示:
2.点击“文件”——“保存工程”保存当前工程文件。
5.2工程主窗体
在VB程序设计中,主界面负责应用程序的主界面,由它调用其它模块。
因此,主界面应该具有操作性好、界面清晰、使用户能够很方便地找到所需功能的特点。
本系统的主界面部在相应的系统菜单组成,用户只需要点击相应的菜单使可调出对应的系统模块。
工程主窗体如图5-2所示。
图5.2工程主窗体
5.3用户登陆窗体
本模块用于用户登陆窗体主要由文本框及命令按钮组成,利用ADODC控件及DataGrid控件实现程序代码与SQL数据的连接(如图5-3所示)。
图5.3用户登陆窗体
对应代码如下:
OptionExplicit
PrivateSubCommand1_Click()
DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
Dimcn_strAsString
Dimrs_strAsString
cn_str="driver={sqlserver};server=.;uid=sa;pwd=;database=XSXX"
cn.Opencn_str
rs_str="select*frommimawherename='"&Trim(Text1.Text)&"'"
rs.Openrs_str,cn,adOpenKeyset,adLockOptimistic
IfText1.Text<>""AndText2.Text<>""Then
Ifrs.RecordCount>0Then
IfText2.Text=Trim(rs.Fields("code"))Then
'MsgBox"成功登录!
",64,"提示"
MDIfrm_main.Show
UnloadMe
'Me.Hide
Else
MsgBox"输入的密码不对,请重新输入!
",64,"提示"
Text2.SetFocus
Text2.SelStart=0
Text2.SelLength=Len(Text2.Text)
EndIf
Else
MsgBox"没有该操作员!
",64,"提示"
EndIf
Else
IfText1.Text=""AndText2.Text<>""Then
MsgBox"请输入操作员!
",64,"提示"
Text1.SetFocus
ElseIfText1.Text<>""AndText2.Text=""Then
MsgBox"请输入密码!
",64,"提示"
Text2.SetFocus
ElseIfText1.Text=""AndText2.Text=""Then
MsgBox"请输入操作员和密码!
",64,"提示"
Text1.SetFocus
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Me.Icon=LoadPicture("")
Label5.Caption=Year(Date)
EndSub
PrivateSubText1_Change()
EndSub
5.4学生信息窗体
本窗体通过ADODC控件连接数据库的学生表,可以实现对学生信息的添加、修改删除和查询。
5.4.1学生信息添加窗体
学生信息的添加窗体,如图5-4所示。
图5.4学生信息添加窗体
对应代码如下:
OptionExplicit
Dims,y,i,j
DimrsAsNewADODB.Recordset
PrivateSubForm_Load()
MS1.Rows=2
MS1.Cols=10
y=Array("序号","学号(*)","姓名","性别","出生日期","班级编号","电话号码","入学时间","住址","备注")
Fori=0ToMS1.Cols-1
MS1.TextMatrix(0,i)=y(i)
MS1.FixedAlignment(i)=4
MS1.ColAlignment(i)=4
Next
MS1.FixedRows=1:
MS1.FixedCols=1
MS1.TextMatrix(1,0)=1
MS1.ColWidth(0)=450
Toolbar1.Buttons(8).Enabled=False
Toolbar1.Buttons(10).Enabled=False
MS1.Enabled=False
Text1.Text=""
EndSub
PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)
UnloadMe
MDIfrm_main.Picture1.Visible=True
EndSub
PrivateSubForm_Resize()
MS1.Width=Me.Width-200
MS1.Height=Me.Height
Fori=1ToMS1.Cols-1
MS1.ColWidth(i)=MS1.Width/9.3
Next
EndSub
PrivateSubMS1_Click()
IfMS1.Row>=1AndMS1.TextMatrix(MS1.Row-1,MS1.Cols-1)<>""Then
Text1.Visible=True
Text1.SetFocus
EndIf
EndSub
PrivateSubMS1_EnterCell()
Module1.entercellMS1,Text1
EndSub
PrivateSubMS1_RowColChange()
Fori=1ToMS1.Rows-1
MS1.TextMatrix(i,0)=i
Next
EndSub
PrivateSubText1_Change()
MS1.Text=Text1.Text
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyUpThen
Module1.moveupMS1,Text1
EndIf
IfKeyCode=vbKeyRightOrKeyCode=vbKeyReturnThen
Module1.moverightMS1,Text1
EndIf
IfKeyCode=vbKeyDownThen
Module1.movedownMS1,Text1
EndIf
IfKeyCode=vbKeyLeftThen
Module1.moveleftMS1,Text1
EndIf
EndSub
PrivateSubMS1_Scroll()
Text1.Width=MS1.CellWidth:
Text1.Height=MS1.CellHeight
Text1.Left=MS1.Left+MS1.CellLeft:
Text1.Top=MS1.CellTop+MS1.Top
EndSub
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"add"
Toolbar1.Buttons(8).Enabled=True
Toolbar1.Buttons(10).Enabled=True
Text1.Visible=True:
Text1.Text=""
MS1.Enabled=True
Text1.SetFocus
Text1.Width=MS1.CellWidth:
Text1.Height=MS1.CellHeight
Text1.Left=MS1.CellLeft+MS1.Left:
Text1.Top=MS1.CellTop+MS1.Top
Case"save"
Fori=1ToMS1.Rows-1
IfMS1.TextMatrix(i,1)<>""Then
rs.Open"select*fromstudent_info",cnn,adOpenKeyset,adLockOptimistic
rs.AddNew
Forj=1ToMS1.Cols-1
IfMS1.TextMatrix(i,j)<>""Thenrs.Fields(j-1)=Trim(MS1.TextMatrix(i,j))
Nextj
rs.Update
rs.Close
EndIf
Next
MsgBox"添加成功!
",64,"提示"
Fori=1ToMS1.Rows-1
Forj=1ToMS1.Cols-1
MS1.