学籍管理系统-数据库课程设计_第1页
学籍管理系统-数据库课程设计_第2页
学籍管理系统-数据库课程设计_第3页
学籍管理系统-数据库课程设计_第4页
学籍管理系统-数据库课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告科目:设计题目:学生学籍管理系统专业:计算机系软件工程0402班姓名:XXXXX学号:XXXXXXX目录绪论……………2数据库设计……………………21.需求分析……………..21.1数据需求…………..21.2功能需求…………..32.数据库设计…………..32.1概念结构设计……………………..42.2逻辑结构设计……………………..52.3物理结构设计……………………..63.系统功能设计………………………..84.系统功能实现………………………..94.1程序的运行环境…………………..94.2系统的开发环境…………………..94.3数据库的创立和链接……………..94.4运行界面及其对应的源代码…………………….105.实验总结…………….236.参考文献…………….23绪论学生学籍管理是教育教学单位不可缺少的局部,它的内容对教学管理和学校的决策者都非常重要。给学校教学管理提供了很大的方便性,提高了工作效率。但是一直以来人们用传统人工的方式管理文件文档,这种管理方式效率低,保密性差,出错不易更改,同时也消耗了大量的人力财力,时间一长,将产生大量的文件数据,这对于查找,维护,更新都带来了很大的困难。随着科学技术的不断开展,尤其是计算机软件水平的日益提高,使得以上问题得到了很好的解决。使用计算机可以方便的对大量数据进行增加,删除,更新等操作。它有着人工管理永远无法比较的优点:检索迅速,查找方便,可靠性大,存储量大,保密性好,寿命长,本钱低等。例如:通过校园网,我们可以方便的进行学生信息查询,学生成绩的添加,以及最新的教务通知等。当然,这些都离不开数据库技术和网络技术的支持。数据库是数据管理的最新技术,是计算机计算机技术的重要分支,也是计算机领域开展最快的学科之一。学生学籍管理系统就是数据库在网络上应用。综上,开发这样的一套软件十分必要。同时旧的人工管理机制必将被以计算机为根底的信息管理所取代,从而实现对数据的高效,长久,平安的管理。数据库设计需求分析1.数据需求:〔1〕数据字典主要涉及到以下几个表,分别为:学生根本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。以下是数据字典:学生根本信息表专业信息表Sno学生的学号Sname学生姓名Ssex性别Ssbirth学生的出生年月Pno专业编号Pname专业名称Pnum专业人数Pdept专业所在院系课程表课程设置表Cno课程号Cname课程名Cperiod学时Cno课程号Cname课程名Cperiod学时学生选课表学生与专业的属于表Sno学生的学号psenior学期cno课程编号grade成绩sno学生的学号pno专业的编号管理人员密码表uname管理人员的编号upasw管理人员的密码〔2〕数据流图第一层学生名单学籍管理系统学生教师学生信息学籍管理系统学生教师成绩学生管理人员统计表成绩单学生管理人员第二层2.查询处理2.查询处理1.录入存储处理学生记录学生信息成绩学生记录本次考试成绩历次考试成绩本次考试成绩历次考试成绩4.升留级处理4.升留级处理3.统计处理班平均成绩升留级表各科平均成绩第三层1.3录入存储学生信息各科成绩1.3录入存储学生信息各科成绩1.2是否新生审计1.1学生信息合格单新生信息1.2是否新生审计1.1学生成绩学生信息学生成绩学生信息第四层班级平均班级平均成绩3.1班级统计选择3.1学生信息统计选择3.1统计成绩各科平均成绩3.3各科平均成绩3.3各科第五层更新记录4.2是否升留级4.1更新记录4.2是否升留级4.1学生信息升留级名单学生记录成绩标准成绩标准2.功能需求:〔1〕实现学生根本情况的录入,修改,删除等根本操作。〔2〕对学生根本信息提供灵活的查询方式。〔3〕完成一个班级的学期选课功能。〔4〕实现学生成绩的录入,修改,删除等根本操作。〔5〕能方便的对学生的个人学期成绩进行查询。〔6〕具有成绩统计,排名等功能。〔7〕具有留级,休学等特殊情况的处理功能。〔8〕能输出常用的各种报表。〔9〕具有数据备份和数据恢复功能。二.数据库设计1.概念结构设计局部ER图人数专业号专业名学号姓名性别人数专业号专业名学号姓名性别出生年月院系专业学生出生年月院系专业学生课程号学时课程名课程号学时课程名课程课程整体的ER图专业专业学生课程院系专业号学时出生年月性别姓名学号密码课程号专业名人数专业号设置课程号学期课程号选课属于学号成绩学期课程名2.逻辑结构设计(1)ER图转换为关系模型由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:学生根本信息表:S(sno,sname,ssex,sbirth,spasw)课程根本信息表:C(cno,cname,cperiord)专业根本信息表:P(pno,pname,pnum,psdept)对应的属性分别为:学号,姓名,性别,出生日期,登陆密码课程编号,课程名,学期专业编号,专业名,专业人数,所在院系对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一局部。以上ER图的三个联系为多对多,所以转换为关系模式为:课程设置表:pc(pno,psenior,cno)与设置相连的实体有专业和课程,根据多对多的转换原那么:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。学生选课表:SC(sno,psenior,cno,grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即〔sno,cno,psenior〕。此外,选课表还有一个非主属性grade。学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。〔2〕关系模式的优化:学生表s(sno,sname,ssex,sbirth,spasw)该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的局部函数依赖,可以到达2NCF。另外,该关系模式的函数依赖为:sno->sname,sno->ssex,sno->ssex,sno->sbirth,sno->spasw,其间不存在传递依赖,故学生表可到达3NCF.课程表C(cno,cname,cperiod)该关系模式的码为cno,cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的局部函数依赖,可以到达2NCF。另外,该关系模式的函数依赖为:cno->cname,cno->cperiod,cname->cno,cname->cperiod.因为cno->cname,cname->cperiodcno->cperiod,所以该关系模式中存在传递依赖,不能到达3NCF。故优化该表为:C1(cno,period),C2〔cname,cperiod〕.从而两表都到达了3NCF。专业表P(pno,pname,pnum,pdept)该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的局部函数依赖,故可到达2NCF。另外,此关系模式的函数依赖为:pno->pname,pno->pnum,pno->pdept,pname->pno,pname->pnum,pname->pdept;由于存在传递依赖:pno->pname,pname->pnum,pno->pnum.,所以未能到达3NCF。优化分解为:P1(pno,pnum,pdept),P2(pname,pnum,pdept)明显,两表都到达了3NCF.课程设置表PC(pno,psenior,cno),该关系模式的码为:(pno,psenior,cno)为全码,所以可直接到达3NCF学生选课表SC(sno,psenior,cno,grade)该关系模式的码为:〔sno,psenior,cno〕,因为不存在非主性grade对码的局部函数依赖,所以可到达2NCF,由于不存在函数依赖〔表中的函数依赖只有〔sno,psenior,cno〕->grade〕故也到达了3NCF属于表SP(sno,pno)该关系模式的码(sno,pno)也是全码,所以也到达了3NCF用户表U(uname,upasw)该表的码为uname,明显upasw对码uname是完全函数依赖的,从而到达2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表到达了3NCF物理结构设计〔1〕根本表学生表s列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)sname否否否无是Char(20)ssex否否否无是Char(2)只可取男或女sbirth否否否无是Char(20)spasw否否否无是Char(10)课程表c1列名主码候选码外码被参照表允许空数据类型约束条件cno是否否无否Char(10)cperiod否否否无是smallint课程表c2列名主码候选码外码被参照表允许空数据类型约束条件cname是否否无否Char(20)cperiod否否否无是smallint专业表p1列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)pnum否否否无是smallintPnum>=0psdept否否否无是Char(20)专业表p2列名主码候选码外码被参照表允许空数据类型约束条件pname是否否无否Char(20)pnum否否否无是smallintPnum>=0psdept否否否无是Char(20)课程设置表pc列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)学生选课表sc列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)grade否否否无是smallintgrade>=0学生与专业属于表sp列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)pno是否否无否Char(10)管理人员密码表u列名主码候选码外码被参照表允许空数据类型约束条件uname是否否无否Char(20)upasw否否否无否Char(10)(2)视图,索引a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。表s的主索引列为:sno表c1的主索引列为:cno表c2的主索引列为:cname表p1的主索引列为:pno表p2的主索引列为:pname表sc的主索引列为:(pno,psenior,cno)表sp的主索引列为:(sno,pno)表u的主索引列为:unameb.视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.三.系统功能设计学生学籍管理系统学生学籍管理系统信息维护添加用户学生管理人员密码管理成绩维护根本信息信息查询成绩查询系统管理查询成绩统计个人成绩专业成绩欢送界面身份及密码验证根本信息维护成绩维护根本信息维护成绩维护删除更新添加删除更新添加删除更新添加删除更新添加四.系统实现1.程序的运行环境类别标准配置最低配置计算机硬件Pentium(R)4CPU,128MB内存Pentium(R)4CPU1.8GHZ,128MB内存软件操作系统WindowsXPServicePack1,WindowsXPServicePack2,andWindows2000Windows98ODBC数据源命名为wangjiaDSN的数据源,连接系统数据库wangjia其他2.系统开发环境类别标准配置最低配置计算机硬件Pentium(R)4CPU,128MB内存Pentium(R)4CPU1.8GHZ,128MB内存软件操作系统WindowsXPServicePack1,WindowsXPServicePack2,andWindows2000Windows98数据库后台程序MicrosoftSQLServer2000前台开发程序MicrosoftVisualBasic6.0ODBC数据源命名为wanjiaDSN的数据源,连接系统数据库wangjia其他3.数据库的创立和链接本系统的前台开发工具为Microsoftvisualbasic6.0,除了一些常用的控件Commandbutton,Combobox,Textbox和Label外,这里还使用了控件ADO和DataGrid。ADO用来链接数据库与前台开发程序,指定链接的数据源和要访问的数据,并通过绑定要使用的数据来显示所获得的数据。DataGrid控件的作用是以表格的形式显示结果中的全部数据,但允许在表格中增加,删除和修改纪录。具体的链接过程如下:ADO〔步骤〕〔1〕选择“工程〞菜单中的部件命令,翻开部件对话框,在控件选项中选择MicrosoftADODataControl6.0(OLEDB)复选框,单击确定,工具栏中会出现ADO数据控件的图标,其微帮助名称为:Adodc。〔2〕在当前窗体上添加一个ADO控件。〔3〕翻开ADO的属性页,设置使用的ODBC数据资源的名称,〔如果没有那么新建一个〕即我所使用的数据库wangjiaDSN;设置身份验证,包括用户名称和密码;设置纪录源,命令类型选择adCmdTable.(因为我所用到的记录源都是表,所以设置为该属性。adCmdTable.表示的是数据源的属性是一个表名,表示其结果级是对该表执行无条件查询后得到的结果),表名或存储过程名那么选择自己所要用到的表。到此,便链接成功。DataGrid〔步骤〕〔1〕同ADO控件一样,选择选择“工程〞菜单中的部件命令,翻开部件对话框,在控件选项中选择MicrosoftDataGridControl6.0(OLEDB)复选框,单击确定,工具栏中会出现DataGrid数据控件的图标。〔2〕在当前窗体上添加一个DataGrid控件。〔3〕翻开DataGrid的属性页,设置标题名,列,列标题与其对应的数据段。颜色,字体等可根据需要设定。将DataGrid的Recordsource设置为该窗体对应的Adodc;另外可检索字段和删除字段,这样可以显示自己想要的字段,而不是将adodc所对应的内容全部显示出来。到此,链接成功。4.窗体及其所对应的源代码欢送界面登陆界面源代码OptionExplicitDimstuflagAsBoolean'标记用户是否为学生PublicLoginSucceededAsBooleanPrivateSubcmdCancel_Click()'设置全局变量为false'不提示失败的登录LoginSucceeded=FalseMe.HideEndSubPrivateSubcmdOK_Click()'检查正确的密码Dimnum1AsIntegerDimnum2AsIntegerIfLen(txtUserName.Text)>0AndLen(txtPassword)>0Andstuflag=FalseThen'管理人员Adodc1.Item(0).CommandType=adCmdTextAdodc1.Item(0).RecordSource="select*fromwjuserwhereuname='"&Trim(txtUserName.Text)&"'Andupasw='"&Trim(txtPassword.Text)&"'"Adodc1.Item(0).Refreshnum1=Adodc1.Item(0).Recordset.RecordCountElse'学生Adodc1.Item(1).CommandType=adCmdTextAdodc1.Item(1).RecordSource="selectsnamespaswfromwjstudentwheresname='"&Trim(txtUserName.Text)&"'Andspasw='"&Trim(txtPassword.Text)&"'"Adodc1.Item(1).Refreshnum2=Adodc1.Item(1).Recordset.RecordCountEndIfIfnum1<=0Andnum2<=0ThenMsgBox"无效的密码,请重试!",,"登录"txtPassword.SetFocusSendKeys"{Home}+{End}"ElseLoginSucceeded=TrueMe.HideMDIForm1.ShowEndIfEndSubPrivateSubOption1_Click(IndexAsInteger)IfIndex=0ThenIfstuflag=FalseThenstuflag=TrueEndIfElseIfstuflag=TrueThenstuflag=FalseEndIfEndIfEndSub主界面添加用户界面源代码PrivateSubCommand1_Click()'添加用户EndSubPrivateSubCommand2_Click()'更新Adodc1.Recordset.Fields("uname")=Trim(Text1.Text)Adodc1.Recordset.Fields("upasw")=Trim(Text2.Text)MsgBox"添加成功!",,"提示"EndSub用户密码修改界面源代码PrivateSubCommand1_Click()Command2.Enabled=False'使取消按钮不可用IfLen(Text4.Text)<>0Then'查看输入用户是否存在Adodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromwjuserwhereuname='"&Trim(Text1.Text)&"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"没有该用户!,请重新输入",,"提示"ElseIfLen(Text1.Text)<>0Then'查看旧密码是否正确Adodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromwjuserwhereupasw='"&Trim(Text4.Text)&"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"密码不正确,请重新输入!",,"提示"ElseIfLen(Text2.Text)<>0Then'确认密码并修改IfLen(Text3.Text)<>0ThenIfText2.Text<>Text3.TextThenMsgBox"您的输入不一致,请重新确认!",,"提示"ElseAdodc1.Recordset.Fields("upasw")=Trim(Text3.Text)MsgBox"修改成功",,"提示"EndIfEndIfEndIfEndIfEndIfEndIfEndIfEndSubPrivateSubCommand2_Click()'取消Command1.Enabled=False'使修改按钮不可用EndSubPrivateSubCommand3_Click()UnloadMeEndSub学生密码修改界面源代码PrivateSubCommand1_Click()'修改Command2.Enabled=False'使取消按钮不可用IfLen(Text4.Text)<>0Then'查看输入学号是否存在Adodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromwjstudentwheresno='"&Trim(Text4.Text)&"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"没有该学号!,请重新输入",,"提示"ElseIfLen(Text1.Text)<>0Then'查看旧密码是否正确Adodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromwjstudentwherespasw='"&Trim(Text1.Text)&"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"密码不正确,请重新输入!",,"提示"ElseIfLen(Text2.Text)<>0Then'确认密码并修改IfLen(Text3.Text)<>0ThenIfText2.Text<>Text3.TextThenMsgBox"您的输入不一致,请重新确认!",,"提示"ElseAdodc1.Recordset.Fields("spasw")=Trim(Text3.Text)MsgBox"修改成功",,"提示"EndIfEndIfEndIfEndIfEndIfEndIfEndIfEndSubPrivateSubCommand2_Click()'取消Command1.Enabled=False'使修改按钮不可用EndSubPrivateSubCommand3_Click()'退出UnloadMeEndSub个人信息维护界面源代码PrivateSubCommand1_Click()'第一条EndSubPrivateSubCommand2_Click()'上一条IfAdodc1.Recordset.BOF=TrueThen'如果已经移到了第一行之前,那么指针定位在第一行EndIfEndSubPrivateSubCommand3_Click()'下一条IfAdodc1.Recordset.EOF=TrueThen'如果已经移到了最后一行之后,那么指针定位在最后一行EndIfEndSubPrivateSubCommand4_Click()'末一条EndSubPrivateSubCommand5_Click()'添加Command5.Enabled=FalseCommand6.Enabled=FalseCommand7.Enabled=TrueCommand8.Enabled=TrueEndSubPrivateSubCommand6_Click()'删除DimresAsIntegerres=MsgBox("要删除此记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThenIfAdodc1.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand7_Click()'更新Adodc1.Recordset.Fields("sno")=Trim(Text1.Text)Adodc1.Recordset.Fields("sname")=Trim(Text2.Text)Adodc1.Recordset.Fields("ssex")=Trim(Text3.Text)Adodc1.Recordset.Fields("sbirth")=Trim(Text4.Text)Command5.Enabled=True'使添加和删除按钮可用Command6.Enabled=TrueCommand8.Enabled=False'使取消按钮不可用EndSubPrivateSubCommand8_Click()Command5.Enabled=True'使添加和删除按钮可用Command6.Enabled=TrueCommand8.Enabled=False'使取消按钮不可用EndSubPrivateSubCommand9_Click()'退出UnloadMeEndSubPrivateSubForm_Load()'载入界面Command8.Enabled=False'使取消按钮不可用EndSub成绩维护界面源代码PrivateSubCommand1_Click()'添加Command1.Enabled=False'使添加,修改,删除按钮不可用Command3.Enabled=FalseCommand6.Enabled=True'使添加退出可用Command4.Enabled=TrueEndSubPrivateSubCommand2_Click()EndSubPrivateSubCommand3_Click()'删除DimresAsIntegerres=MsgBox("要删除该纪录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThenIfAdodc1.Recordset.EOF=TrueThenEndIfEndIfEndSubPrivateSubCommand4_Click()'退出UnloadMeEndSubPrivateSubCommand5_Click()'更新Adodc1.Recordset.Fields("sno")=Trim(Text1.Text)Adodc1.Recordset.Fields("cno")=Trim(Text2.Text)Adodc1.Recordset.Fields("grade")=Trim(Text3.Text)Command1.Enabled=True'使添加和删除按钮可用Command3.Enabled=TrueCommand6.Enabled=False'使取消按钮不可用EndSubPrivateSubCommand6_Click()'取消Command1.Enabled=TrueCommand3.Enabled=TrueEndSubPrivateSubCommand7_Click()IfAdodc1.Recordset.BOF=TrueThenEndIfEndSubPrivateSubCommand8_Click()IfAdodc1.Recordset.EOF=TrueThenEndIfEndSubPrivateSubCommand9_Click()EndSub成绩统计源代码:PrivateSubCommand1_Click()IfLen(Text1.Text)<>0ThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromwjscwheresno='"&Trim(Text1.Text)&"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"该学号不存在!请重新输入",,"提示"Else'求平均分和最高分Adodc1.RecordSource="selectavg(grade)as[avggrade],Max(grade)as[high]fromwjscwheresno='"&Trim(Text1.Text)&"'andpsenior='"&Trim(Combo1.Text)&"'"Adodc1.RefreshLabel4.Caption=Adodc1.Recordset.Fields("avggrade")Label6.Caption=Adodc1.Recordset.Fields("high")Label4.Alignment=2'使文字居中Label6.Alignment=2Adodc1.RecordSource="select*fromwjscwheresno='"&Trim(Text1.Text)&"'andpsenior='"&Trim(Combo1.Text)&"'andgrade<=59"Adodc1.RefreshIfAdodc1.Recordset.RecordCount<=0ThenMsgBox"该同学没有不及格的课程",,"提示"EndIfEndIfEndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSub信息查询源代码DimnameflagAsBoolean'标记是否按姓名查询PrivateSubCommand1_Click()'个人信息查询DimsearchSQLAsString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论