学生学籍管理系统课程设计.docx
- 文档编号:25044557
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:31
- 大小:535.01KB
学生学籍管理系统课程设计.docx
《学生学籍管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统课程设计.docx(31页珍藏版)》请在冰豆网上搜索。
学生学籍管理系统课程设计
课程设计报告
课程名称 数据库系统原理
设计题目 学生学籍管理系统
学生姓名
学 号
专业班级
指导教师
2012 年 12 月 22 日
目录
1.系统概述…………………………………………………………3
1.1开发目的和背景………………………………………………3
1.2开发环境和技术………………………………………………3
2.系统分析………………………………………………………….5
2.1系统需求分析……………………………………………..5
2.2功能需求分析………………………………………………5
2.3.划分功能模块………………………………………………7
3.数据流程分析……………………………………………………8
3.1数据流程图…………………………………………………8
3.2数据流程字典………………………………………………9
4.数据库设计………………………………………………………12
4.1概念结构设计……………………………………………….12
4.2逻辑结构设计…………………………………………………13
4.3物理结构设计…………………………………………………14
5.应用程序设计………………………………………………………16
5.1用户界面设计及相关程序代码………………………………16
5.2运行结果………………………………………………………28
6.心得体会……………………………………………………………32
7.参考文献……………………………………………………………33
1.系统概述
1.1开发目的和背景
这次实验的主要目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。
本实验主要在于实现一个通用学籍管理系统,完成对学生学籍信息的增加、删除、修改、查询、显示全部学生学籍信息等功能。
数据库应用设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
为了使数据库应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6个阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库的实施、数据库系统运行与维护阶段。
1.2开发环境和技术
系统开发环境为局域网或校园网网络环境,网络中有一台安装Windows2000Server的服务器,服务器上安装SQLServer2000。
该软件是在Windows2000AdvancedServer+VisualBasic6.0+SQLServer2000的环境下完成的。
下面就对这些开发工具进行介绍
1.2.1VisualBasic6.0
微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
利用VISUALBASIC程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。
故而,实现本系统VB是一个相对较好的选择。
1.2.1.1VisualBasic的编程特点
VisualBasic语言的出现为Windows下的编程提出了一个新概念,利用VisualBasic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序。
利用VisualBasic语言编程有以下几个特点:
1.可视化程序设计
在VisualBasic中开发的应用程序,不但有丰富的图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置ActiveX控件的属性即可。
2.强大的数据库和网络功能
随着VisualBasic语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用VisualBasic中的ODBC——开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用VisualBasic自带的可视化数据管理器和报表生成器,完全可以在VisualBasic就完成数据库的开发工作。
3.其它特性
在VisualBasic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了VisualBasic的发展。
从VisualBasic5.0版本开始,在VisualBasic中制作的应用程序都改变为编译执行,使得VisualBasic的代码效率有了很大的提高,同时执行的速度也加快了解30%(同VisualBasic4.0相比)。
当然在VisualBasic中还有其它特性,例如:
●面向对象的编程语言;
●结构化程序设计;
●事件驱动的程序设计:
在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。
从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。
在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。
事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。
这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。
●支持动态链接库;
●应用程序之间的资源共享。
1.2.1.2数据库开发中的三大工具
VisualBasic在数据库应用程序的开发领域中,提供包含数据管理(DataManager),数据控件(DataControl)以及数据编程对象(数据访问对象(DAO)、远程数据对象(RDO)和ActiveX数据对象(ADO))等功能强大的工具,协助设计人员轻松的连接数据库文件,并访问其中的数据,在功能方面与其他一些专业数据库软件(如FoxPro,MicosoftAccess等)不相上下。
2.系统分析
2.1系统需求分析
本系统的设计模拟一般学生学籍管理内容,经过充分地系统调研,发现本系统应包括学生信息、课程信息、学生专业信息等需管理信息。
进一步发现信息实体间管理信息有:
专业分期课程计划、学生选课及各科成绩统计等内容。
实现一个通用学籍管理系统,完成对学生学籍信息的增加、删除、修改、查询、显示全部学生学籍信息等功能。
(1)本系统需要管理的实体信息
①班级信息:
班号、班级名称、班主任工号等;
②学生基本信息:
学号、类别、姓名、性别、出生日期、电话、入校日期、家庭地址、备注等;
③专业信息:
专业编号、专业名称、创办年份、学生规模等;
④学期信息:
编号、学期名等;
⑤课程基本信息:
课程号、课程名、类型、学分等
⑥毕业信息:
毕业证号、性别、学号、姓名、毕业时间、已修学分、需修学分等。
(2)本系统要管理的实体联系信息
①学生入学时需录入登记,并选定一专业,每学期注册后即可选课(分必修课和选修课),每位学生选多门课,一门课应有多名学生修读。
学生考试后,要登记考试成绩。
②专业分学期课程计划情况(即专业教学计划),要反映是否必修课、是否学位课、是否考试课及备注信息。
③学生各科成绩需要登记,统计排名。
④学生毕业需计算学分,审核资格(学分、学习期数是否达到要求),顺利毕业的颁发毕业证。
⑤学生在校表现根据实际情况,进行奖惩记录。
2.2功能需求分析
本系统开发的目的,就是通过系统开发,实现课程管理有关工作的计算机化,提高关键环节的处理速度和规范化,并对有关的工作进行集成和重组,通过网络系统实现集中管理、分散操作,提高选课管理工作的质量和效率。
通过对学校的选课及成绩管理工作进行实际调查,学生可以自由选择课程、选老师,学生注册的行政班和教学班是游离的,开发工作需要涉及任课教师、学生、管理员(教务工作人员)三种用户。
学生需求
在学校规定的选课期间,学生通过任何一台连接因特网计算机的浏览器就能进行网上选课。
学生以用户名和密码进入选课系统。
选课系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的课程列表。
系统必须控制某一门课程在学期间只能选一次。
在学生选课时能自动进行有关逻辑判断,如:
是否选课超过了规定的门数,是否选择了不符合预修条件的课程,是否选择的课程超过此课程最大选择人数,只有符合要求的选择才能选课成功。
学生可以更改部分个人信息如密码,电话号码等;学生可以查询已修课程成绩和已选课程信息。
教师需求
任课教师登录后,可以查看自己所教课程的课程表;对于同一学期内有多门课程的教师,需要选择具体课程后,才能查看已选这门课程的学生信息:
期末,教师可以上传这些学生的成绩。
管理员需求
系统管理员登录后,可以对学生,教师,课程,教学班级的基本信息进行添加,修改,删除等工作。
课程安排是选课的核心,只有按照实际的教学情况安排出每个学期必修和选修的课程,才能保证选课的顺利进行。
在每学期,学生选课前,各院系管理员必须在该院系培养方案中录入本学期可以开设的课程和排课安排,对于需要预修条件的课程,需要设置好预修条件。
基础部管理员负责公共课的课程开设和排课安排。
其中排课及教学班级的安排上要保证同一个教师在同一时间只能上一门课程;同一个教室同一时间也只能开一门课程。
功能描述:
添加修改删除学生信息:
用户进入到主界面后,选择学生信息修改,会弹出一对话框,若想添加新的学生信息,可点击插入记录按钮,用户可在各对应的框内填写所要填写的信息。
当然这些不能胡乱的填写,要根据日常情况来填写。
若想把那些已不在的学生删除掉,可点击删除记录按钮。
用户填写所要删除学生的学号,点击确定。
若该学生的学籍信息不在数据库中,则会出现提示信息“无此学生”。
若在数据库中有该学生的学籍信息,则会显示另一提示信息“确定删除吗?
”,点击确定,又会出现一提示信息“删除成功”。
虽然有些繁琐,但能确保不误删学生的学籍信息。
倘若想修改那些由于各种情况所造成的错误信息时,可点击界面上的修改记录按钮,用户可以根据有错误信息的学生的学号,先进行查询,查询后会显示该学生的全部学籍信息,用于可将错误的信息纠正过来,然后点击修改。
返回主界面可点击退出按钮。
查询记录:
用户进入到主界面后,如果想要查看某个学生的学籍信息,可点击学生信息查询记录按钮。
则会跳出一查询记录的对话框,学生信息查询窗口,可按学号,姓名,专业进行查询。
双击学生信息查询窗口中表格左边,可弹出此窗口显示该学生选
课信息。
如果想看教师信息,点击教师信息查询,教师信息查询窗口,可按教师编号,姓名,职称部门进行查询,双击表格左部可显示教师授课信息。
退出:
用户进入到主界面后,进行了各种操作后,想要退出该学生学籍管理系统,可点击主界面上的退出按钮。
点击后,用户就可以退出本系统。
2.3划分功能模块
根据系统功能的需求分析和高等院校学籍管理的特点,经过模块化的分析得到如下图1-1所示的系统功能模块结构图。
取消学生成绩
图1-1系统功能模块
3.数据流程分析
3.1数据流程图
数据流图表达了数据和处理的关系,根据用户的需求分析和高校学籍管理系统的需求,得出如下图1-2所示的学籍管理数据流图。
顶层图:
图1-2学籍管理数据流图
3.2数据流程字典
数据字典:
数据流项目:
学生信息=姓名+学号+性别+年龄+专业+总学分
成绩单=姓名+课目+成绩
数据项条目:
数据项名:
成绩
类型:
int
长度:
4
范围:
100-0
加工条目:
处理过程:
过程名:
学籍管理系统
输入:
学生信息,考试成绩,学生记录
输出:
统计表,成绩单
数据字典:
数据存储:
数据存储名:
学生记录
组成:
姓名+学号+性别+年龄+专业+总学分
处理过程:
处理过程名:
录入存储处理
输入:
学生信息
处理要求:
如果没有所输入的学生记录,则建立新的学生记录,存储基本情况和课目成绩
处理过程名:
查询处理
输入:
学生信息,课程号
输出:
成绩
处理要求:
根据学生的学号查询相应的成绩
处理过程名:
统计处理
输入:
学生考试成绩
输出:
平均成绩,排名成绩
数据字典:
数据流:
新生信息=入学时间+姓名+年龄+专业+性别
合格单=姓名+专业
处理过程:
处理过程名:
审查
输入:
学生信息
输出:
合格单
处理要求:
根据学生信息判断是否是新生
处理过程名:
是否是新生
输入:
合格单
输出:
新生信息
处理要求:
根据合格单建立新生信息
处理过程名:
录入存储学生信息,各科成绩
输入:
新生信息,考试成绩
输出:
本次考试成绩
数据字典:
数据存储:
数据存储名:
考试成绩
组成:
姓名+专业+成绩+学号
组织方式:
一学号为关键字
处理过程:
处理过程名:
有效性检查
输入:
学号,课程号
输出:
有效查询
处理要求:
根据所输入的信息查询有效性
处理过程名:
成绩查询
输入:
考试成绩
输出:
成绩
处理要求:
根据考试成绩查询成绩
处理过程:
处理过程名:
统计选择
输入:
学生记录
输出:
按规定统计成绩
处理要求:
根据所输入学生记录查询成绩
4.数据库设计
4.1概念结构设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时,合理的数据库结构也将有利于应用系统程序的实现。
在充分需求分析的基础上,经过逐步抽象、概括、分析、充分研讨,可画出如下反映教学管理系统数据的整体E-R图
图4-1学生实体E-R图
图4-2课程实体E-R图
图4-3各实体之间的E-R图
4.2逻辑结构设计
逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
4.2.1关系模型
将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体型间的联系则有不同的情况。
将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:
1)学生(XS)(学号(sno),姓名(sname),专业(sdept),性别(ssex),出生日期(sbirth),总 学分(all_credit))
学生表:
主码:
学号(sno)
函数依赖:
sno U.
此表中,不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF
2)课程(KC)(课程号(cno),课程名(cname),开课学期(term),学时(class_hour),
学分(credit))
课程表:
主码:
课程号(cno)
函数依赖:
cno U
此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF
3)选课(XS-KC)(学号(sno),课程号(cno),成绩(grade))
选课表:
主码:
(学号,课程号)
外码:
学号,课程号
函数依赖:
(sno,cno) U
此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF
4)教师(TCH)(编号(tno),姓名(tname),性别(tsex),出生日期(tbirth),职称(professional),专业(department))
教师表:
主码:
编号(tno)
函数依赖:
tno U
此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF
5)授课(TCH-KC)(教师编号(tno),课程号(cno),上课地点(place))
授课表:
主码:
(教师编号,课程号)
外码:
教师编号,课程号
函数依赖:
(tno,cno) U
此表中不存在非主属性对码的部分依赖,传递依赖,以及主属性对码的部分依赖和传递依赖,故满足3NF
4.3物理结构设计
数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。
物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。
因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数
数据库的物理设计通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
设计的部分表结构如下截图所示;
1)教师信息数据表(teacher)
教师信息数据包含的数据项有编号、姓名、系编号、电话和Email,数据表中各字段的属性如图4-6所示。
图4-6“teacher”表的各字段属性
(5)学生信息数据表(student)
学生信息数据包含的数据项有编号、系编号、班编号、姓名、性别、生日、住址、电话、Email和简历,数据表中各字段的属性如图4-7所示。
图4-7“student”表的各个字段属性
(6)课程信息数据表(course)
课程信息数据表包含的数据项有编号、名称、教师和学分,数据表中各字段的属性如图4-8所示。
图4-8“course”表的各字段属性
(7)选课记录数据表(selectclass)
选课记录数据包含的数据项有编号、学生、课编号和成绩,数据表中各字段的属性如图4-9所示。
图4-9“selectclass”表的各字段属性
5.应用程序设计
5.1用户界面设计及相关程序代码
部分界面截图及代码如下:
此为主界面,有五个按钮,可进行查询,修改等操作。
程序代码如下:
PrivateSubCommand1_Click()
StuSearch.Show
EndSub
PrivateSubCommand2_Click()
AddStu.Show
EndSub
PrivateSubCommand3_Click()
AddStuCourse.Show
EndSub
PrivateSubCommand4_Click()
AddStuGrade.Show
EndSub
PrivateSubCommand5_Click()
TchSearch.Show
EndSub
相关程序代码如下:
PrivateSubCommand3_Click()'取消
Stusno.Text=""
Stusname.Text=""
Stusbirth.Text=""
Stusdept.Text=""
Stuall_credit.Text=""
Stusexm=False
Stusexf=False
EndSub
'修改元组
PrivateSubStuchange_Click()
IfTrim(Stusno.Text)=""OrTrim(Stusname.Text)=""Or(Stusexm=FalseAndStusexf=False)Then
MsgBox"加*数据项不能为空,请重新设置",vbOKOnly,"信息提示"
Stusno.SetFocus
ExitSub
EndIf
IfTrim(Stusbirth.Text)<>""Then
IfNotIsDate(Trim(Stusbirth.Text))Then
MsgBox"出生日期输入不正确,请重新输入",vbOKOnly,"信息提示"
Stusbirth.SetFocus
ExitSub
EndIf
EndIf
StuADO.Recordset.Fields("学号")=Trim(Stusno.Text)
StuADO.Recordset.Fields("姓名")=Trim(Stusname.Text)
StuADO.Recordset.Fields("出生日期")=Trim(Stusbirth.Text)
StuADO.Recordset.Fields("专业")=Trim(Stusdept.Text)
StuADO.Recordset.Fields("总学分")=Trim(Stuall_credit.Text)
IfStusexm=TrueThen
StuADO.Recordset.Fields("性别")="男"
Else:
Stusexf=True
StuADO.Recordset.Fields("性别")="女"
EndIf
StuADO.Recordset.Update
EndSub
'删除元组
PrivateSubStuDel_Click()
ret=MsgBox("是否要删除"+StuADO.Recordset("学号")+"号学生的记录?
",vbYesNo,"提示")
Ifret=vbYesThen
StuADO.Recordset.Delete
EndIf
StuADO.RecordSource="selectsno学号,sname姓名,sdept专业,ssex性别,sbirth出生日期,all_credit总学分fromXS"
Command3_Click
StuADO.Refresh
EndSub
'选中一行显示元组
PrivateSubStuDG_Click()
Stusno.Text=StuADO.Recordset("学号")
Stusname.Text=StuADO.Recordset("姓名")
Stusbirth.Text=StuADO.Recordset("出生日期")
Stusdept.Text=StuADO.Recordset("专业")
Stuall_credit=StuADO.Recordset("总学分")
IfTrim(StuADO.Recordset("性别"))="男"Then
Stusexm=True
Else
Stusexf=True
EndIf
EndSub
'插入元组
PrivateSubStudinsert_Click()
IfTrim(Stusno.Text)=""OrTrim(Stu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 系统 课程设计