文档详情

学生信息管理系统 数据库课程设计

孙哥
实名认证
店铺
DOCX
323.23KB
约28页
文档ID:169954155
学生信息管理系统 数据库课程设计_第1页
1/28

目录第一章 系统概述 11.1 系统开发的背景 11.2系统开发的意义 1第二章系统需求分析 22.1系统功能要求 22.2 需求分析概述 22.3 系统层次划分 32.4 系统数据流图 32.5 数据字典 4第三章 系统总体设计目标 103.1 系统总体设计目标 103.2 系统概念设计 103.2.1 概念模式(E-R图) 103.2.2 关系模式 123.2.3关系模式规范化说明 133.2.4 系统数据库表结构 13第四章 数据库系统实现 164.1系统实现工具简介 164.2 学生信息管理系统数据库实现 16结束语 26参考文献 27第一章 系统概述1.1 系统开发的背景随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成 倍增加面对庞大的信息量,传统的人工方式管理会导致学生信息管理上的混 乱,人力与物力过多浪费,管理费用的增加,从而使学校管理人员的负担过重, 影响整个学校的运作和控制管理,因此,必须制定一套合理、有效,规范和实 用的学生信息管理系统,对学生信息进行集中统一的管理通过这样的系统, 可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作 量。

另一方面,IT产业和In terne t获得了飞速发展,计算机应用已渗透到了 各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及 时性和正确性提高学生信息管理的工作效率,作到信息的规范管理,科学统计和快速查 询,让该系统更好的为学校,社会服务1.2 系统开发的意义学生信息管理作为计算机应用的一个分支,有着手工管理无法比拟的优点, 如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等 这些优点能够极大地提高学生信息管理的效率因此,开发一套能够为用户提 供充足的信息和快捷的查询手段的学生信息管理系统,将是非常必要的,也是 十分及时的通过对管理系统模型的研究,提出一套构造学生信息管理系统模块的方法, 并利用数据库,信息系统分析学的知识,结合其它学校管理业务知识,建立起 相关数据模型,利用面向对象开发工具对其进行设计与开发,建立一套有效的 学生信息管理系统,可以减少工作量,将管理工作科学化,规范化,提高学校 管理的工作质量和工作效率第二章 系统需求分析2.1 系统功能要求主要功能:(1) 学生信息管理:对学生基本信息的增加、修改和删除(2) 学生查询:对学生基本信息和成绩的查询(3) 学生选课:用于学生选择课程学习(4) 学生成绩:对学生各科成绩的添加、修改和删除等管理(5) 打印:用来打印学生的基本信息和成绩2.2 需求分析概述随着学校的普及和人们文化水平的提高,高效的教学管理系统越来越广泛应 用于各类信息化学校。

学生学籍管理系统要求实用性强、使用方便、效率高和安 全可靠等特点经分析我认为学生信息管理系统的具体要求为:1、能全面管理学生的各类信息,如学生信息管理,学生查询,学生选课,学生 成绩和打印等五项功能2、通过使用计算机能方便的维护(包括插入、删除、修改)各信息表3、能方便的实现基于多个表的连接查询4、系统具有操作方便、简捷等特点因而,所开发的管理系统正是围绕以上几个方面进行的,在开发过程中充分 考虑到本系统的应用特点,并进行了大量的检验,证明其的确达到了设计的要求2.3 系统层次划分系统层次划分如图 2.1 所示图 2.1 系统层次划分图2.4 系统数据流图数据流图是在对系统分析调查的基础上,以系统的科学性、管理的合理性 技术的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分 解,从逻辑上精确地描述应具有的数据加工功能、数据输入、数据输出、数据 存储及数据的来源和去向学生信息管理系统经过划分出各子系统及其各自的 功能,以及相互联系,绘制出数据流图如图 2.2 所示:图2.2 系统数据流程图2.5 数据字典(1)数据流的描述数据流编号:D—01数据流名称:输入请求 简述:向系统管理人员提交输入请求 数据流来源:查询信息管理 数据流去向:系统管理人员 数据项组成:学生姓名+学号+请求信息数据流量:约20张/日高峰流量:约 50 张/日数据流编号:D—02数据流名称:输出结果 简述:向查询信息处理输出结果 数据流来源:系统管理人员 数据流去向:查询信息处理 数据项组成:学生姓名+学号+查询信息数据流量:约20 张/日高峰流量:约50 张/日数据流编号:D—02数据流名称:请求结果 简述:向系统管理人员提交请求结果 数据流来源:添加修改信息处理模块 数据流去向:系统管理人员 数据项组成:学生姓名+学号+请求结果数据流量:约20 张/日高峰流量:约50 张/日数据流编号:D—04数据流名称:正确信息 简述:向添加修改信息处理模块输出正确信息 数据流来源:系统管理人员 数据流去向:添加修改信息处理模块 数据项组成:学生姓名+学号+正确信息数据流量:约20 张/日高峰流量:约50 张/日数据流编号:D—05数据流名称:删除请求 简述:向系统管理人员提交信息删除请求 数据流来源:删除信息模块数据流去向:系统管理人员 数据项组成:学生姓名+学号+删除请求 数据流量:约20张/日高峰流量:约50张/日数据流编号:D—06数据流名称:删除结果 简述:向删除信息处理模块输出删除结果 数据流来源:系统管理人员 数据流去向:删除信息处理模块 数据项组成:学生姓名+学号+删除结果 数据流量:约20张/日高峰流量:约50张/日2)处理逻辑的描述处理逻辑编号:P1 处理逻辑名称:查询信息处理简述:学生对自己的基本信息和成绩进行查询 输入的数据流:输出结果 处理描述:根据管理人员输出结果使用户可以查询所需要的信息 输出的数据流:输入请求处理频率:5 次/日处理逻辑编号:P2处理逻辑名称:添加、修改信息处理简述:通过请求结果对学生的基本信息和成绩进行添加、修改操作 输入的数据流:请求结果 处理描述:完善学生的基本信息和成绩的管理,使之更准确有效 输出的数据流:正确信息处理频率:5 次/日处理逻辑编号:P3处理逻辑名称:删除信息处理 简述:通过请求结果对学生的基本信息和成绩删除操作 输入的数据流:删除请求处理描述:对于错误信息或者失效信息进行删除操作 输出的数据流:删除结果处理频率:5 次/日处理逻辑编号:P4处理逻辑名称:选课处理简述:学生根据自己的时间和喜好对课程进行选择性学习 处理描述:完成学生的课程选择处理频率:5 次/日处理逻辑编号:P5处理逻辑名称:录入学生信息 简述:将学生的基本信息录入该系统 处理描述:对学生的信息进行录入 处理频率:5 次/日处理逻辑编号:P6处理逻辑名称:录入学生成绩 简述:将学生的考试成绩录入该系统处理描述:对学生的成绩进行录入处理频率:5次/日(3) 数据存储的描述数据存储编号:F1数据存储名称:学生信息基本表简述:包含学生所有的基本信息数据存储组成:学生姓名+学生学号+性别+年龄+出生年月+身份证号码+ 籍贯+政治面貌+社会关系+家庭住址+联系方式 关键字:学生学号+姓名相关处理:P2, P3, P5数据存储编号:F2数据存储名称:学生成绩表 简述:学生选修所有成绩的汇总表 数据存储组成:课程号+课程名+任课教师+上课地点+上课周次+考试成绩 关键字:课程号+课程名相关处理:P2, P3, P6数据存储编号:F3数据存储名称:课程存储简述:对学生所选的课程进行存储数据存储组成:学生姓名+学生学号+所选课程+课程教师+课程所在教室 关键字:学生学号+所选课程+课程教师+上课地点相关处理:P4(4) 外部实体的描述外部实体编号:S—01外部实体名称:学生简述:是该系统中进行信息和成绩查询的用户外部实体编号:S—02外部实体名称:系统管理人员简述:系统管理人员对学生信息进行添加、修改和删除操作输出的数据流:输出结果,正确信息,删除结果第三章 系统总体设计目标3.1 系统总体设计目标随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深 刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机 应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的 优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快 捷、保密性好、寿命长、成本低、便于打印等这些优点能够极大地提高学生 信息管理的效率,也是学生信息管理的科学化、正规化管理,与世界接轨的重要 条件因此,开发这样一套管理软件成为很有必要的事情使之减轻系统管理 人员的负担,充分发挥电脑的作用 学生信息管理系统是学生管理工作中不可缺少的部分 ,它的内容对于学校和学 生来说都至关重要,所以学生信息管理系统应该能够为管理者或使用者提供充 足的信息和快捷的数据处理手段对学生信息和成绩进行录入、查询、修改、 增加、删除等功能,而且可以实现选课功能高效性通过系统的实用,能够改 变旧的学生信息管理模式,使对学生的信息和成绩进行查询、增加、修改和删 除以及具备选课的功能便于学校的管理和学生的查询3.2 系统概念设计所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能学生信息管理信息系统可以划分的实体有:院系类别信息实体、班级信息 实体、专业信息实体、学生信息实体、教师信息实体和课程信息实体3.2.1概念模式(E-R图)1、E-R 图(1)班级实体图如图 3.1 所示4)课程实体图如图3.4所示图 3.4 课程实体图(5) 系统E-R图图3.5所示班级1n学生mn图3.5系统E-R图2、系统E-R图说明(1) 一个班级包括若干名学生(2) 一个学生可以选修多门课程,一个课程可以被多个学生选修(3) 一个教师可以讲授多门课程,一门课程可以被多名教师讲授3.2.2 关系模式班级(班号,班名,人数)学生(学号,姓名,性别,出生年月)课程(课程号,课程名,学分,开课学期)教师(教师号,姓名,性别)选修(学号,课程号,成绩)讲授(教师号,课程号,上课时间,上课地点)3.2.3 关系模式规范化说明(1) 班级表的主属性是班号,经分析班级模式在满足第一范式的基础上还满足 第二范式,并且它的任何一个非主属性都不传递依赖于主属性班号,因此也满 足第三范式。

2) 学生表的主属性是学号,经分析学生模式在满足第一范式的基础上还满足 第二范式,并且它的任何一个非主属性都不传递依赖于主属性学号,因此也满 足第三范式3) 课程表的主属性是课程号,经分析课程模式在满足第一范式的基础上还满 足第二范式,并且它的任何一个非主属性都不传递依赖于主属性课程号,因此 也满足第三范式4) 教师表的主属性是教师号,经分析教师模式在满足第一范式的基础上还满 足第二范式,并且它的任何一个非主属性都不传递依赖于主属性教师号,因此 也满足第三范式5) 选修表的主属性是学号和课程号,经分析选修模式在满足第一范式的基础 上还满足第二范式,并且它的任何一个非主属性都不传递依赖于主属性学号和 课程号,因此也满足第三范式6) 讲授表的主属性是教师号和课程号,经分析班级模式在满足第一范式的基 础上还满足第二范式,并且它的任何一个非主属性都不传递依赖于主属性,因 此也满足第三范式3.2.4 系统数据库表结构1) 表 3—1 数据库索引表表名中文名class班级表student学生表course课程表teacher教师表xuanxiu选修表jiangshou讲授表2) 表3-2 班级表字段名字段类型长度字段值约束对应中文名数据列举BHVarchar10Not null班号082202HBMVarchar20Not null班名信管RSVarchar10Not null人数403) 表3-3 学生表字段名字段类型长度字段值约束对应中文名数据列举SNVarchar20Not null学号200822040235SNAMEVarchar10Not null姓名张乐SEXVarchar4Not null性别女BIRTHVarchar10Not null出生年月1989.104) 表3-4 课程表字段名字段类型长度字段值约束对应中文名数据列举CNVarchar20Not null课程号080021CNAMEVarchar10Not null课程名管理信息系统XFVarchar4Not null学分5TIMEVarchar20Not null开课学期10-11学年第一学期5) 表3-5 教师表字段名字段类型长度字段值约束对应中文名数据列举TNVarchar20Not null教师号030010TNVarchar10Not null姓名武妍SEXVarchar10Not null性别女6) 表3-6 选修表字段名字段类型长度字段值约束对应中文名数据列举SNVarchar20Not null学号200822040235CNVarchar20Not null课程号080021CJVarchar10Not null成绩857)表 3-7 讲授表字段名字段类型长度字段值约束对应中文名数据列举TNVarchar20Not null教师号030010CNVarchar20Not null课程号080021SHIJIANVarchar10Not null上课时间第二节课PLACEVarchar10Not null上课地点18楼1阶第四章 数据库系统实现4.1系统实现工具简介SQL Server 2000 简介:SQL Server是一个关系数据库管理系统,它最初是由Microsoft Sybase和 Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本在 Windows NT推出后Microsoft与Sybase在SQL Server的开发上就分道扬镳 了 Microsoft将SQL Server移植到Windows NT。

系统上专注于开发推广SQL Server的Windows NT版本Sybase则较专注于SQL Server在UNIX操作系统 上的应用SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统 的最新版本,该版本继承了 SQL Server 7.0版本的优点,同时又比它增加了 许多更先进的功能,具有使用方便、可伸缩性、与相关软件集成程度高等优点, 可跨越从运行Microsoft Windows 98的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服务器等多种平台使用4.2学生信息管理系统数据库实现1.用SQL语言分别建立班级表、学生、课程、教师表代码如下:(1)班级表CREATE Table 班级表(班号 varchar(10)not null primary key(班号),班名 varchar(20),人数 varchar(10),)希表“班级表円中的数据.谊置是“学生营息管理"中、"(local)"上班号班名人数□8Z2024008230140$□8240240|*(2)学生表CREATE Table 学生表学号 varchar(20) not null primary key(学号),姓名 varchar(lO) not null,性别 varchar(4),出生年月 varchar(10), )侖表“学生表“中的隸据,住置是“学生常息管理"中、"(local)"上学号姓名性别出生年月_ 200822040235 张一乐1989.051989. 1Z200822040222 桑梦媛2 200822040238 越睫旨(3)课程CREATE Table 课程表(课程号 varchar(20) not null primary key(课程号),课程名 varchar(10),学分 varchar(4)开课学期varchar(20),)侖表“课程表"中內数据,应置是"学生信息管理”中、"(local) - ±凜翟号课程茗开谅学痴080021管理信息4第二学期LI8LILI22经济学4第一学期$080023运筹学3第二学期(4)教师表CREATE Table 教师表(教师号 varchar(20) not null primary key(教师号), 姓名 varchar(10),性别 varchar(lO),)濡表。

報师表1■中的数据,位置是“学生惜息管理"中、-(local)- ±教师号姓名性别030010030011李小波.0□30012女1 2、原代码设计(1) 登陆界面源代码Option ExplicitDim stuflag As Boolean '标记用户是否为学生Public LoginSucceeded As BooleanPrivate Sub cmdCancel_Click()'设置全局变量为false'不提示失败的登录LoginSucceeded = FalseMe.HideEnd SubPrivate Sub cmdOK_Click()'检查正确的密码Dim num1 As IntegerDim num2 As IntegerIf Len(txtUserName.Text) > 0 And Len(txtPassword) > 0 And stuflag = False Then '管理人员Adodc1.Item(0).CommandType = adCmdTextAdodc1.Item(0).RecordSource = "select * from wjuser where uname='" & Trim(txtUserName.Text) & "'And upasw='" & Trim(txtPassword.Text) & "'"Adodc1.Item(0).Refreshnum1 = Adodc1.Item(0).Recordset.RecordCountElse '学生Adodc1.Item(1).CommandType = adCmdTextAdodc1.Item(1).RecordSource = "select sname spasw from wjstudent where sname= '" & Trim(txtUserName.Text) & "'And spasw—" & Trim(txtPassword.Text) & "'"Adodc1.Item(1).Refreshnum2 = Adodcl.Item(l).Recordset.RecordCount End IfIf numl <= 0 And num2 <= 0 ThenMsgBox "无效的密码,请重试!",,"登录"txtPassword.SetFocusSendKeys "{Home}+{End}"ElseLoginSucceeded = TrueMe.HideMDIForm1.ShowEnd IfEnd SubPrivate Sub Option1_Click(Index As Integer)If Index = 0 ThenIf stuflag = False Then stuflag = TrueEnd IfElseIf stuflag = True Then stuflag = FalseEnd IfEnd IfEnd Sub图5.1系统登陆界面(2) 添加用户界面源代码Private Sub Command1_Click()'添加用户Adodd.Recordset.AddNewEnd SubPrivate Sub Command2_Click()'更新Adodc1.Recordset.Fields("uname") = Trim(Text1.Text)Adodc1.Recordset.Fields("upasw") = Trim(Text2.Text)Adodcl.Recordset.UpdateMsgBox "添加成功!",,"提示"End Sub忝加成功!i 图5.2用户添加界面(3) 用户密码修改界面源代码Private Sub Command1_Click()Command2.Enabled = False '使取消按钮不可用If Len(Text4.Text) <> 0 Then查看输入用户是否存在Adodcl.CommandType = adCmdTextAdodcl.RecordSource = "select * from wjuser where uname='" Trim(Textl.Text) & "'"Adodcl.RefreshIf Adodcl.Recordset.RecordCount <= 0 ThenMsgBox "没有该用户!,请重新输入",,"提示"ElseIf Len(Textl.Text) <> 0 Then查看旧密码是否正确Adodcl.CommandType = adCmdTextAdodcl.RecordSource = "select * from wjuser where upasw='" Trim(Text4.Text) & "'"Adodcl.RefreshIf Adodcl.Recordset.RecordCount <= 0 ThenMsgBox "密码不正确,请重新输入!",,"提示"ElseIf Len(Text2.Text) <> 0 Then '确认密码并修改If Len(Text3.Text) <> 0 ThenIf Text2.Text <> Text3.Text ThenMsgBox "您的输入不一致,请重新确认!",,"提示"ElseAdodcl.Recordset.Fields("upasw")Trim(Text3.Text)Adodcl.Recordset.Update MsgBox "修改成功",,"提示"End IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click()'取消Command1.Enabled = False '使修改按钮不可用Adodc1.Recordset.CancelUpdateEnd SubPrivate Sub Command3_Click()Unload MeEnd Sub设有谬用尸!』请重新输入图5.3密码修改界面(4) 学生密码修改界面源代码Private Sub Command1_Click()'修改Command2.Enabled = False '使取消按钮不可用If Len(Text4.Text) <> 0 Then查看输入学号是否存在Adodcl.CommandType = adCmdTextAdodcl.RecordSource = "select * from wjstudent where sno='" &Trim(Text4.Text) & "'"Adodc1.RefreshIf Adodc1.Recordset.RecordCount <= 0 ThenMsgBox "没有该学号!,请重新输入", , "提示"ElseIf Len(Text1.Text) <> 0 Then '查看旧密码是否正确 Adodc1.CommandType = adCmdTextAdodc1.RecordSource = "select * from wjstudent where spasw='" & Trim(Text1.Text) & "'"Adodc1.RefreshIf Adodc1.Recordset.RecordCount <= 0 Then MsgBox "密码不正确,请重新输入!", , "提示"ElseIf Len(Text2.Text) <> 0 Then '确认密码并修改If Len(Text3.Text) <> 0 ThenIf Text2.Text <> Text3.Text ThenMsgBox "您的输入不一致,请重新确认!", , "提示" ElseAdodc1.Recordset.Fields("spasw")Trim(Text3.Text)Adodc1.Recordset.UpdateMsgBox "修改成功", , "提示"End IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click() '取消Adodc1.Recordset.CancelUpdateCommand1.Enabled = False '使修改按钮不可用End SubPrivate Sub Command3_Click() '退出Unload MeEnd Sub密码不正确,诸重新输入!W:::J图5.4学生密码修改界面(5)信息查询源代码Dim nameflag As Boolean '标记是否按姓名查询Private Sub Commandl_Click()'个人信息查询Dim searchSQL As StringAdodd.CommandType = adCmdTextIf nameflag = False ThensearchSQL = "select * from wjstudent where sno ='" & Trim(Text1.Text) & "'"'按学号查询ElsesearchSQL = "select *from wjstudent where sname ='" & Trim(Text1.Text) & "'"'按姓名查询End IfAdodd.RecordSource = searchSQLAdodd.RefreshIf Adodd.Recordset.RecordCount <= 0 ThenMsgBox "不存在此纪录!请重新输入",,"警告"End IfEnd SubPrivate Sub Command2_Click()'退出查询信息窗体Unload MeEnd SubPrivate Sub Option1_Click(Index As Integer)'选择查询标准nameflag = FalseIf Index = 0 ThenIf nameflag = True Thennameflag = FalseEnd IfEnd IfIf Index = 1 ThenIf nameflag = False Then nameflag = TrueEnd IfEnd IfEnd Sub图5.5信息查询界面(6)成绩查询源代码Private Sub Commandl_Click()Dim str As StringAdodd.CommandType = adCmdTextAdodc1.RecordSource = "select * from wjsc where sno ='" & Trim(Text1.Text)& "'and psenior='" & Trim(Combo1.Text) & "'"'按学号查询 Adodd.RefreshIf Adodd.Recordset.RecordCount <= 0 ThenMsgBox "不存在此纪录!请重新输入",,"警告"End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub图5.6成绩查询界面结束语通过这次的实验,我对数据库在生活中的广泛应用有了更深的体会,同时 也加深了对 SQL2000 的认识,了解了相关的 VB 知识,尤其对数据库与开发程序 的链接有了进一步的认识。

这次课程设计我最大的收获并不是对书本知识的巩 固,而是通过实验我的自学能力得到了很好的锻炼,实践能力也提高了不少 只凭上课对这门学科的学习还是不够的,在设计的开始阶段进展很慢但是通 过网上查资料,与同学讨论,互相学习渐渐的把理论知识与实践相结合后来 的设计也就没有那么摸不着门路了当然,在这次课程设计中我还有很多没有解决的问题:不会使用存储过程 返回结果给变量;也没能掌握两个表以上的查询功能,只能基于单表的查询, 添加,删除等,以至功能不是很完善对于这一点我有很大的遗憾,如果可以 实现的话,相信我可以实现更加完善的功能如实现对班级专业的成绩统计, 实现灵活的成绩查询等等总结以上,这次课程设计,我收获很多不管怎样,今后我会更加努力学 习这门课程,不断提高自己参考文献[1] 陶宏才.数据库原理及设计.清华大学出版社.2002年[2] 范立南. SQL Server 2000 实用教程.清华大学出版社.1999年[3] 李香敏. SQL Server 2000 编程员指南.北京希望电子出版社.2000年[4] 黄梯云.管理信息系统.高等教育出版社.2009年[5] 王珊,萨师煊.数据库系统概论.高等教育出版社.2006年。

下载提示
相关文档
正为您匹配相似的精品文档