《学生管理信息系统.docx》由会员分享,可在线阅读,更多相关《学生管理信息系统.docx(42页珍藏版)》请在三一办公上搜索。
1、 q申ETAIYUAN UNIVERSITY OF SCIENCE AND TECHMOLOGY华科学院计算机科学与技术系计算机专业软件工程课程设计报告(2010/2011学年 第一学期)学生姓名:强海荣学生班级:计算机072202H学生学号:200722030217指导教师:赵旭俊2010年12月27日目录第一章系统概述11.1系统开发的背景11.2系统开发的意义11.3系统开发的目标1第二章需求分析22。1综合要求22。1.1功能要求22.1。2性能需求22。2数据流图22。3数据字典52。4系统E-R图9第三章概要设计113。1合理方案设计 113。2系统功能模块设计113.3数据库设计
2、12第四章详细设计144。1数据库及表创建144。1。1新建表144.1。2设计表164.2结构程序设计174.2。1添加信息程序流程图 174。2。2修改信息程序流程图174.2。3删除信息程序流程图 184.2.4查询信息程序流程图 194.2。5系统程序流程图 194。3人机界面设计21第五章系统编码与实现215。1创建工程项目215。2工程主窗体215。3用户登陆窗体225。4学生信息窗体235.4.1学生信息添加窗体235.4.2学生信息删改(删除、修改)窗体275。4。3学生信息查询窗体31第六章系统测试336。1测试方法336.2测试用例336。2。1 用户登陆 336.2.2学
3、生信息 33结束语错误!未定义书签。参考文献38第一章系统概述1。1系统开发的背景随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生各门课程 的成绩的各种信息量也成倍增长,而目前许多高校的学生信息管理仍停留在复杂的人工 操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发学生管理信息系统来提 高管理工作的效率。1.2系统开发的意义学生管理信息系统,在学生信息的规范管理、科学统计和快速查询方面具有较大的 实用意义.它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。为了能够学以致用,通过对学生管理信息系统的简单开发,不仅可以巩固书本上所 学知识,从而能够对所
4、学内容加以深化,拓宽自己的知识面。通过学习与实践相结合, 提高自己的编程能力,为今后的毕业设计和以后的软件开发奠定了基础。1.3系统开发的目标学生管理信息系统是面向教育部门的学生管理系统,包括学生基本信息管理,学生成 绩管理等工作,是利用计算机进行集中管理而开发的系统。该系统是以Visual Basic 6.0 为开发环境,以SQL 2000为后台数据库进行开发的管理系统,力求与实际相结合具有查 询、管理等功能,使教育的管理趋于计算机化,使之更加方便、快捷以提高工作效率。根据学生管理的需求和特点,该系统实施后,应达到以下目标:1。灵活地运用表格输入数据,使信息传递更快捷;2。系统采用人机对话方
5、式,界面美观友好、数据存储安全可靠;3。键盘操作,快速响应;4。实现各种信息的添加、删除、修改、查询等;5。系统运行稳定、安全可靠。第二章系统需求分析2。1综合要求2。1.1功能要求在学生管理信息系统中,主要有用户登陆、学生信息管理、班级信息管理、学生成 绩管理、课程信息管理、用户信息管理等功能。1. 用户登陆管理员登陆,普通用户对信息的查询登陆,管理员和普通用户必须在登陆页面输入用 户名及密码,只有验证通过方可进入其它操作。2. 学生信息管理包括4个功能模块:学生信息添加、学生信息修改、学生信息删除和学生信息查询。3. 班级信息管理包括4个功能模块:班级信息添加、班级信息修改、班级信息删除和
6、班级信息查询。4. 学生成绩管理包括4个功能模块:学生成绩添加、学生成绩修改、学生成绩删除和学生成绩查询。5. 课程信息管理包括4个功能模块:课程信息添加、课程信息修改、课程信息删除和课程信息查询。6. 用户信息管理包括2个功能模块:用户信息添加和用户密码修改。2.1。2性能需求要求该系统易操作、可维护、具有开放性,时刻保持数据的有效性与安全性,并且只 有管理员才能对数据进行修改。开发环境:Visual Basic 6。0.数据库:SQL Server2000.操作系统:Windows XP.2。2数据流图分析学生管理信息系统的数据来源和去向,绘制出数据流图的顶层数据流图,如图21 所示。图2
7、-1学生管理信息系统的顶层数据流图按自顶向下、逐层分解的方法对顶层数据流图进一步细化,绘制出0层数据流图,如图2。2所示.图2。2学生管理信息系统的0层数据流图2.3数据字典该学生信息管理系统的数据字典如下:(1)、数据名称:学生信息数据流数据字典数据名:录入学生的基本信息来源: 管理员数据结构:学号+姓名+性别+出生日期+班级编号+入学时间+住址+备注简要说明:该学生信息管理系统的主要结构,定义了一个学生的基本信息数据项数据字典数据名:学号存储处:学生信息表数据元素:类型:字符型长度:50含义:学生的唯一标识简要说明:在学生信息表中可以唯一的标识每一位学生数据名:入学时间存储处:学生信息表数
8、据元素:类型:datetime长度:8含义:学生的入学时间信息简要说明:记录每一位学生的入学时间数据加工数据字典项目名:添加学生信息输入:学生信息输出:简要说明:可以添加学生信息项目名:修改学生信息输入:学生信息(2) 、数据名称:班级信息数据流数据字典数据名:录入班级的基本信息来源:管理员数据结构:班级编号+班级名称+辅导员+系名称+班主任简要说明:该学生信息管理系统的主要结构之一,定义了一个班级的基本信息数据项数据字典数据名:班级编号存储处:班级信息表数据元素:类型:字符型长度:50含义:班级的唯一标识简要说明:在班级信息表中可以唯一的标识每一门课程数据名:班主任存储处:班级信息表数据元素
9、:类型:字符长度:50含义:该课程的负责人简要说明:记录每一个班级的班主任数据加工数据字典项目名:添加班级信息输入:班级信息输出:简要说明:可以添加班级信息项目名:修改班级信息输入:班级信息输出:简要说明:可以修改错误的班级信息(3) 、数据名称:学生成绩信息数据流数据字典数据名:录入学生成绩信息来源:管理员数据结构:学号+课程编号+成绩简要说明:该学生信息管理系统的主要结构之一数据项数据字典数据名:学号存储处:成绩信息表数据元素:类型:字符型长度:50含义:学生的唯一标识简要说明:在成绩信息表中可以唯一的标识每一位学生数据名:成绩存储处:成绩信息表数据元素:类型:numeric长度:9含义:
10、学生的成绩信息简要说明:记录每一位学生的成绩信息数据加工数据字典项目名:添加成绩信息输入:成绩信息输出:简要说明:可以添加成绩信息项目名:查询成绩信息输入:输出:成绩信息简要说明:可以查询每一位学生的成绩信息(4) 、数据名称:课程信息表数据流数据字典数据名:录入课程的基本信息来源: 管理员数据结构:课程编号+课程名称+课程类型+开课时间+学时+学分简要说明:该学生信息管理系统的主要结构之一数据项数据字典数据名:课程编号存储处:课程信息表数据元素:类型:字符型长度:50含义:课程的唯一标识简要说明:在课程信息表中可以唯一的标识每一门课程数据名:开课时间存储处:课程信息表数据元素:类型:date
11、time长度:8含义:学生的开课时间信息简要说明:记录每一门的课程的开课时间数据加工数据字典项目名:添加课程信息输入:课程信息输出:简要说明:可以添加课程信息项目名:修改课程信息输入:课程信息输出:简要说明:可以修改错误的课程信息2.4系统ER图绘制学生管理信息系统的E-R图,如图2-3所示。图2。3学生管理信息系统的E-R图图2。4学生实体图图2。5班级实体图图2.6课程实体图图2。7成绩实体图第三章系统概要设计3.1合理方案设计在需求分析的基础上,寻找实现学生管理信息系统的各种不同的方案,并选取若干 个合理方案,经分析比较,从中选出一个最佳方案.本方案是在Visual Basic 6.0、
12、SQL Server2000的环境下,实现对学生管理信息系统 的用户登陆、学生信息管理、班级信息管理、学生成绩管理、课程信息管理、用户信息 管理等功能。3.2系统功能模块设计学生管理信息系统功能包括可视化窗口,对各种信息的添加、修改、删除和查询等 具体功能如图31所示.学生管理信息系统用户信息添加用户密码修改学生信息添加学生信息修改学生信息删除班级信息删除班级信息修改班级信息添加学生信息查询学生成绩查询课程信息删除课程信息修改课程信息添加班级信息查询图3.1学生管理信息系统功能模块3.3数据库设计在需求分析阶段所确定的学生管理信息系统数据需求的基础上,进一步设计数据库。1。系统用户数据表(用户
13、信息表)记录系统所有用户名和密码信息,表中的各个字段以及各个字段的说明如表31所示:表31用户信息表结构列名数据类型长度说明用户名varchar50允许空密码varchar50允许空用户类型char10允许空2.学生信息表记录学生学号、姓名等基本信息,表中的各个字段以及各个字段的说明如表32所示:表3-2学生信息表结构列名数据类型长度说明学号varchar50主键姓名varchar50允许空性别varchar10允许空出生日期datetime8允许空班级编号varchar50允许空电话号码varchar50允许空入学时间datetime8允许空住址varchar100允许空备注varchar2
14、00允许空3.班级信息表记录班级编号、班级名称及相关的信息,表中各个字段以及各个字段的说明如表33所示:表3-3班级信息表结构列名数据类型长度说明班级编号varchar50主键班级名称varchar50允许空辅导员varchar50允许空系名称varchar50允许空班主任varchar50允许空4。课程信息表记录课程编号、课程名称等相关信息,表中各个字段以及各个字段的说明如表34所示:表3-4课程信息表结构列名数据类型长度说明课程编号varchar50主键课程名称varchar50允许空课程类型varchar50允许空开课时间carhar10允许空课时int4允许空学分int4允许空5.学生
15、成绩表记录学生学号、课程编号及相关的成绩,表中各个字段以及各个字段的说明如表3-5所示:表35学生成绩表结构列名数据类型长度说明学号varchar50主键课程编号varchar50主键成绩numeric9允许空第四章系统详细设计4.1数据库及表创建启动SQL2000 Server,右击“数据库”点击“新建数据库”,在弹出的“数据库属性对话框中可键入数据库名及其它信息,如图4-1所示:图4.1新建数据库4。1.1新建表数据库创建完毕后,点击可打开。右击“表选择“新建表,可以进行表的创建以及 进行相关的表属性设置。1. 用户信息表如图42所示:列名数据类型长度允许空nam ewarchar50Ci
16、jdu50Ur=mg:Hchar107图4.2新建用户信息表2. 学生信息表如图4-3所示:列名数据类型长度允许空学号v:r c h=Lt50姓名v:rch:r50性别v:rch:r10W出生日期d=itt! tirriti85班级编号v:r c h:=Lt507电话号码V=xf:h=LT507入学时间date time8U住址v:rch=r100V备注V:di- C h=il2005图4.3新建学生信息表3. 班级信息表如图4-4所示:列名数据类型长度允许空班敏编号T=if:h=xr50班缀名称v:rch:-LT50辅导员v=d-i:h=ii-50V系芒称v:dl C h=Lt50V班主任T
17、=a-ch=U_50W图4。4新建班级信息表4.课程信息表如图4-5所示:列名数据类型长度允许空课程编号v:r c h=Lt50课程名称v:rch:r50课程类型v:rch=r50开谡时间ehsr10课时int4V学为int4图4.5新建课程信息表5.学成成绩表如图4-6所示:列名数据类型长度允许空学号v:rch:ir50课程编号也oh:竺50成筋nijjn eric9图4。6新建学生成绩表4。1。2设计表创建完表后右击对应表名“打开表“返回所有行,可对表进行添加、修改、插入、删除等相应编辑操作。1. 设计用户信息表如图47所示:TL=dIFl 6co der mn巴 ea-lri i n立
18、dm 1 n管理员lijingLijing:普通用户图4.7设计用户信息表2. 设计学生信息表如图48所示:学号200722030101200722030102200722030115姓名性别I出生日期I班级编号电话号码入学时间住址1987-05-150722030113643602007-09-01山西省大同市1989-05-140T22030113803432007-09-01山西省永济市1388-10-060T22030115834062007-09-01山西省大同市备注图4。8设计学生信息表3. 设计班级信息表如图49所示:班裁编号班瓠名称辅导员系名称班主任07220301计篁机OT2
19、2O1H刈战唯计苴机科学与技术系武研07Z20302计萱机DTWZDEH刻战峰计萱机科学与技术系司敏南图4.9设计班级信息表4. 设计课程信息表如图4-10所示:课程编号课程名称0001 加旎 0003 0034 0005 OOO&马克思主义原理 中国近现代史弱要 犬学英语 大学物理 数据结构 制成原理课程类型谢说谓胃-诺W 出出检检上上5 5 5 5 dM- dM-基基基基专专开课时间课时32如64646464学分图4。10设计课程信息表5. 设计学生成绩表如图4-11所示:学号课程编号成注20072203011500017B2007220301150002B0200722030115000
20、395200722030115000493200722030115000585200722030115000687图4.11设计学生成绩表4.2结构程序设计4。2。1添加信息程序流程图绘制添加信息流程图,如图4-12所示。图4.12添加信息4。2.2修改信息程序流程图绘制修改信息流程图如图4-13所示。图4。13修改信息4.2。3删除信息程序流程图绘制删除信息流程图如图4-14所示。4.2。4查询信息程序流程图绘制查询信息流程图如图4-15所示图4.15查询信息4。2。5系统程序流程图采用自顶向下、逐步求精的程序设计方法,使用顺序、选择和循环这3种基本控制 结构进行连接,并且每个代码块只有一个
21、入口和出口。4.3人机界面设计认真处理好系统响应时间、用户帮助设施、出错信息处理和命令交互这4个问题。 先创建设计模型,接下来用原型实现这个设计模型并由用户调试和评估原型,然后根据 用户意见修改原型。1. 系统响应时间:稳定在1秒。2. 用户帮助设施:选择附加的帮助设施。3. 出错信息处理:1)当输入用户名不存在时,给出提示;2)当输入密码不正确时,给出提示;3)当查询信息不存在时,给出提示;4)其他出错提示.4。命令交互:用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软 件功能。第五章系统编码与实现5.1创建工程项目图5.1 VB 6.0界面1。启动VB 6。0,出现VB 6.0
22、运行界面,如图5-1所示:2。点击“文件一一“保存工程”保存当前工程文件。5。2工程主窗体在VB程序设计中,主界面负责应用程序的主界面,由它调用其它模块。因此,主 界面应该具有操作性好、界面清晰、使用户能够很方便地找到所需功能的特点。本系统 的主界面部在相应的系统菜单组成,用户只需要点击相应的菜单使可调出对应的系统模 块。工程主窗体如图5-2所示。图5。2工程主窗体5.3用户登陆窗体本模块用于用户登陆窗体主要由文本框及命令按钮组成,利用 ADODC控件及DataGrid控件实现程序代码与SQL数据的连接(如图53所示)。图5。3用户登陆窗体对应代码如下:Option ExplicitPriva
23、te Sub Command1_Click()Dim cn As New ADODB。 ConnectionDim rs As New ADODB。 RecordsetDim cn_str As StringDim rs_str As String cn_str = driver=sql server; server=.; uid=sa; pwd=; database=XSXX cn.Open cn_strrs_str = select 大 from mima where name= & Trim(Text1。 Text) & rs.Open rs_str, cn, adOpenKeyset,
24、 adLockOptimisticIf Textl.Text And Text2.Text ThenIf rs。 RecordCount 0 ThenIf Text2.Text = Trim (rs。 Fields (code) ) Then MsgBox 成功登录!”,64, 提示MDIfrm_main.ShowUnload MeMe。HideElseMsgBox 输入的密码不对,请重新输入! , 64, 提示Text2。 SetFocusText2。 SelStart = 0Text2。 SelLength = Len(Text2。 Text)End IfElseMsgBox ”没有该操作
25、员!”,64, 提示”End IfElseIf Text1.Text = ” And Text2.Text ” ThenMsgBox 请输入操作员!”,64, 提示”Text1.SetFocusElseIf Text1。 Text And Text2。 Text = ThenMsgBox ”请输入密码! , 64, ”提示”Text2.SetFocusElseIf TextloText = And Text2。 Text = ThenMsgBox ”请输入操作员和密码!”,64, ”提示”Text1.SetFocusEnd IfEnd IfEnd SubPrivate Sub Command2
26、_Click ()Unload MeEnd SubPrivate Sub Form_Load ()Textl.Text = ”Text2oText =”MeIcon = LoadPicture(”)Label5o Caption = Year(Date)End SubPrivate Sub Text1_Change()End Sub5.4学生信息窗体本窗体通过ADODC控件连接数据库的学生表,可以实现对学生信息的添加、修改 删除和查询。5.4.1学生信息添加窗体学生信息的添加窗体,如图54所示。图5.4学生信息添加窗体对应代码如下:Option ExplicitDim s, y, i, jDi
27、m rs As New ADODB。 RecordsetPrivate Sub Form_Load ()MS1.Rows = 2MS1。 Cols = 10y = Array(-序号”,”学号(*)”, ”姓名”,”性别,”出生日期,班级编号”,电话号 码,”入学时间,”住址”,备注”)For i = 0 To MS1。 Cols 1MS1。 TextMatrix (0, i) = y(i)MS1。 FixedAlignment (i) = 4MS1.ColAlignment (i) = 4NextMS1。 FixedRows = 1: MS1。 FixedCols = 1MS1.TextMa
28、trix(1, 0) = 1MS1.ColWidth(0) = 450Toolbar1.Buttons (8).Enabled = FalseToolbar1.Buttons (10)。 Enabled = FalseMS1。 Enabled = False Textl.Text = End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Unload MeMDIfrm_main。 Picturel.Visible = TrueEnd SubPrivate Sub Form_Resize()MSl
29、.Width = Me。 Width 200MSlo Height = Me.HeightFor i = 1 To MSlo Cols 1MSlo ColWidth(i) = MSl.Width / 9。3NextEnd SubPrivate Sub MSl_Click ()If MSl.Row = l And MSl.TextMatrix(MSl.Row l, MSl。Cols l)” ThenTextl.Visible = TrueTextl.SetFocusEnd IfEnd SubPrivate Sub MSl_EnterCell()Module1o entercell MSl, Te
30、xtlEnd SubPrivate Sub MSl_RowColChange()For i = l To MS1o Rows l MSl.TextMatrix (i, 0) = iNextEnd SubPrivate Sub Textl_Change()MSl.Text = Text1o TextEnd SubPrivate Sub Textl_KeyDown (KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyUp ThenModulel。 moveup MS1, Textl End IfIf KeyCode = vbKeyRig
31、ht Or KeyCode = vbKeyReturn ThenModule1.moveright MS1, Text1 End IfIf KeyCode = vbKeyDown ThenModule1。 movedown MS1, Text1End IfIf KeyCode = vbKeyLeft ThenModule1。 moveleft MS1, Text1End If End SubPrivate Sub MS1_Scroll()Text1.Width = MS1.CellWidth: Text1。 Height = MS1。 CellHeightText1。 Left = MS1.L
32、eft + MS1。 CellLeft: Text1。 Top = MS1。 CellTop + MS1。 Top End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib。 Button)Select Case Button。 Key Case add”Toolbar1。 Buttons (8)。 Enabled = TrueToolbar1。 Buttons (10)。 Enabled = TrueText1。 Visible = True: Text1。 Text = MS1。 Enabled = True T
33、ext1.SetFocus Text1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeight Text1。 Left = MS1。 CellLeft + MS1。 Left: Text1.Top = MS1.CellTop + MS1.TopCase save” For i = 1 To MS1。 Rows - 1 If MS1。 TextMatrix(i, 1) Then rs.Open select * from student_info”, cnn , adOpenKeyset, adLockOptimisticrs。 AddNewFo
34、r j = 1 To MS1。 Cols - 1If MS1。TextMatrix (i, j) Then rs.Fields(j 1) = Trim (MS1。 TextMatrix(i, j)Next jrs。 Updaters.CloseEnd IfNextMsgBox ”添加成功!”,64, ”提示For i = 1 To MS1。 Rows 1For j = 1 To MS1.Cols 1MS1。 TextMatrix(i, j)= ” Next jNext iMS1。 Rows = 2Text1.Visible = FalseMS1.Enabled = FalseToolbar1.
35、Buttons (8).Enabled = FalseToolbar1.Buttons(10)。 Enabled = False Case cancelFor i = 1 To MS1.Rows - 1For j = 1 To MS1.Cols - 1MS1。 TextMatrix(i, j)= Next jNext iMS1.Rows = 2Text1.Visible = FalseMS1.Enabled = FalseToolbar1。 Buttons(8)。 Enabled = FalseToolbar1。 Buttons(10).Enabled = FalseCase closeUnl
36、oad MeMDIfrm_main。 Picture1.Visible = TrueEnd SelectEnd Sub5.4。2学生信息删改(删除、修改)窗体学生信息的删改窗体,如图55所示。图5。5学生信息删改窗体对应代码如下:Option ExplicitDim i As IntegerPrivate Sub Command1_Click()Adodc1.RecordSource = select 大 from student_info where student_infc。 & Combol.Text& ” like + & Textl.Text & ” + %Adodcl.Refres
37、hEnd SubPrivate Sub Command2_Click ()If Not Adodcl.Recordset.BOF Then Adodcl。 Recordset.MoveFirstEnd SubPrivate Sub Command3_Click ()If Adodcl.Recordseto RecordCount 0 ThenIf Adodcl.Recordset.BOF = False Then Adodcl.Recordset.MovePreviousIf Adodclo Recordseto BOF = True Then Adodcl.Recordset.MoveFir
38、stEnd IfEnd SubPrivate Sub Command4_Click ()If Adodcl.Recordseto RecordCount 0 ThenIf Adodcl.Recordseto EOF = False Then Adodcl.Recordset.MoveNextIf Adodclo Recordseto EOF = True Then Adodclo Recordset.MoveLastEnd IfEnd SubPrivate Sub Command5_Click()If Not Adodc1.Recordset.EOF Then Adodc1。 Recordse
39、t。 MoveLast End SubPrivate Sub Command6_Click ()DataGrid1.AllowUpdate = TrueCommand9。 Enabled = TrueEnd SubPrivate Sub Command7_Click () DataGrid1.AllowDelete = True Dim iOn Error Resume Nexti = MsgBox(”是否确定删除该记录?”,64,提示) If i = vbOK ThenAdodc1。 Recordseto DeleteAdodc1。 RefreshEnd IfEnd SubPrivate S
40、ub Command8_Click()MDIfrm_main。 Picture1.Visible = True Unload MeEnd SubPrivate Sub Command9_Click ()DataGrid1.AllowUpdate = FalseDataGrid1.AllowDelete = FalseDataGrid1o RefreshMsgBox ”操作成功!” , 64, 提示 Command9.Enabled = False End SubPrivate Sub Form_Activate()Combo1o AddItem ”学号”Combo1o AddItem 姓名”Combol.ListIndex = 0Textl.Text = ”Command9。 Enabled = FalseEnd SubPrivate Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)MDIfrm_main。 Picture1.Visible = TrueEnd SubP