数据库实验报告学生成绩管理系统.docx
《数据库实验报告学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据库实验报告学生成绩管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
数据库实验报告学生成绩管理系统
通信与信息工程学院
数据库实验报告
学生成绩管理数据库
姓名:
唐袁苹、李佼阳
学号:
09210373、09210375
班级:
0120903
指导教师:
邹洋
二0一二年五月
一、题目
学生成绩管理数据库
二、需求分析
1.背景介绍
每个学校都有成千甚至上万的学生,而每个学生的基本信息以及成绩不仅是学校所关注的,也是每个学生所关心的。
每一年的的六月份,有大批的毕业生离去;同年九月份,又有一批新同学加入进来。
离去的学生信息要及时的从学校管理系统中删除,新来的同学的信息要及时的录入系统。
别看只有两项大的任务,其实操作起来远非想象中的简单。
为了解决学生基本信息以及成绩的管理问题,本小组开发了一个简单的“学生成绩管理数据库”应用系统,可以对学生的信息进行管理。
2.任务概述
基于ACCESS,结合VBA和SQL语言,实现对学生基本信息以及成绩的管理,包括对学生信息的添加,删除,查询等。
管理员用自己的用户名和密码登录“学生成绩管理数据库”应用系统后,对学生相关的信息进行查看与管理。
3.功能需求
系统主菜单包括:
信息维护,信息浏览,报表,搜索查询,系统。
信息维护可以查看学生信息,课程信息,学生成绩;信息浏览可以查看学生信息,课程信息,成绩查询;报表可以打印输出学生信息,课程信息,学生成绩;搜索查询可以输入某一个学生的学号或姓名查看学生信息,学生成绩;系统里包含关于和退出两项功能。
系统总体功能结构图如下:
三、设计工具
ACCESS
四、详细设计
1.设计数据库概念模型
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效果以及实现的效果的影响。
合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整和一致。
同时,合理的数据库结构设计也将有利于应用系统程序的实现。
在充分需求分析的基础上,经过逐步抽象,概括,分析,充分研讨,可画出反映系统数据的整体E-R图。
数据库概念模型如图1-1所示:
n
n
成绩
图1-1E-R模型
2.设计数据库关系模型
根据前面设计的概念模型,按照E-R概念模型想关系模型转换的规则,课有如下的关系模式(其中带下划线的为主键,斜体字为外键):
课程(课程编号,课程名称,学分,学时)
学生(学号,姓名,性别,出生日期,专业,学院)
成绩(学号,课程编号,成绩)
教师(教师编号,姓名,性别,学院,文化程度,职称,电话,邮箱)
3.设计数据库表结构
根据设计的关系模型结果,设计关系数据库的数据表的逻辑结构,如表1-2所示。
表1-2表结构
表
字段名称
数据类型
主键/索引
查阅列
其他属性
学生
学号
文本
主键
姓名
文本
出生日期
日期/时期
性别
文本
有效性规则为:
”男”or”女”
专业
文本
学院
文本
课程
课程编号
文本
主键
课程名称
文本
学分
数字
学时
数字
成绩
学号
文本
主键
组合框
行来源于”学生”表
课程编号
文本
组合框
行来源于”课程”表
成绩
数字
信息表
用户名
文本
主键
密码
文本
教师
教师编号
文本
主键
教师姓名
文本
性别
文本
学院
文本
文化程度
文本
职称
文本
电话
文本
邮箱
文本
任课表
教师编号
文本
主键
课程编号
文本
4.在数据库中建立表,并输入数据内容
根据表1-2的设计要求,在数据库表设计视图中设计表的结构,在数据表视图正输入数据。
“学生”表的数据如图1-3所示,“课程”表的数据如图1-4所示,“成绩”表的数据如图1-5所示,“信息表”表的数据如图1-6所示。
图1-3“学生表“
图1-4“课程”表
图1-5“成绩”表
图1-6“信息表”表
5.建立查询
“学生成绩查询”,将作为其他窗体的数据来源,这里先建立该查询,起设计视图如图1-7所示,数据表视图如图1-8所示。
利用“学生成绩查询”可建立“学生信息”查询,“学生成绩”查询,设计视图如图1-9,1-10。
图1-7“学生成绩查询”设计视图
图1-8“学生成绩查询”结果
图1-9“学生信息”查询设计视图
图1-10“学生成绩”查询设计视图
6.建立“学生信息维护”窗体,“课程信息维护”窗体,“学生成绩维护”窗体
建立“学生信息维护”窗体,其数据来源于“学生”,起窗体布局如图1-11所示。
建立“课程信息维护“船体,其数据来源于“课程表”表,其窗体布局如图1-12所示。
建立“学生成绩维护”窗体,其主窗体数据来源于“学生”表,子窗体的数据来源于“成绩”表,其窗体布局如图1-13所示。
图1-11“学生信息维护”窗体
图1-12“课程信息维护”窗体
图1-13“学生成绩维护”窗体
7.建立“学生信息浏览”窗体,“课程信息浏览”窗体,“学生成绩查询”窗体
建立“学生信息浏览”窗体,其数据来源于“学生”表,其窗体布局如图1-14所示。
建立“课程信息浏览”窗体,其数据来源于“课程”表,其窗体布局如图1-15所示。
建立“学生成绩查询”窗体,其数据来源于“学生成绩查询”,其窗体布局如图1-16所示。
建立“任课教师表”窗体,其数据来源于“任课”表,其窗体布局如图1-17所示。
建立“教师信息浏览”窗体,其数据来源于“教师”表,其窗体布局如图1-18所示。
图1-14“学生信息浏览”窗体
图1-15“课程信息浏览”窗体
图1-16“学生成绩查询”窗体
图1-17“教师任课表”窗体
图1-18“教师信息浏览”窗体
8.建立“学生基本信息表”报表,“课程基本信息表”报表,“学生成绩表”报表
建立“学生信息表”报表,其数据来源于“学生”表,其窗体布局如图1-19所示。
建立“课程基本信息”报表,其数据来源于“课程”表,其窗体布局如图1-20所示。
建立“学生成绩表”报表,其数据来源于“学生成绩查询”,按“所属院系”字段进行分组排序,并按“学号”进行升序排序,其窗体布局如图1-21所示。
图1-19“学生基本信息”报表
图1-20“学生成绩表”报表
图1-21“课程基本信息”报表
9.建立“关于”窗体
建立一个简单介绍本系统的“关于”窗体,其窗体布局如图1-22所示。
图1-22“关于”窗体
10.主窗体和主菜单的设计
根据前面所做的设计,设计主窗体布局,如图1-23所示。
其中,主菜单栏中包含的菜单项在表1-24中列出。
主菜单通过宏来建立,通过菜单项命令可以打开前面做的窗体和报表。
图1-23主窗体
菜单名
下拉菜单子项
宏操作
说明
信息维护
学生信息
OpenForm
打开窗体“学生信息维护”
课程信息
OpenForm
打开窗体“课程信息维护”
学生成绩
OpenForm
打开窗体“学生成绩维护”
信息浏览
学生信息
OpenForm
打开窗体“学生信息浏览”
课程信息
OpenForm
打开窗体“课程信息浏览”
成绩查询
OpenForm
打开窗体“学生成绩查询”
报表
学生信息
OpenReport
打开报表“学生基本信息表”
课程信息
OpenReport
打开报表“课程基本信息”
学生成绩
OpenReport
打开报表“学生成绩表”
搜索查询
学生信息
OpenQuery
打开查询“学生信息”
学生成绩
OpenQuery
打开查询“学生成绩”
系统
关于
OpenForm
打开窗体“关于”
退出
Quit
退出系统
表1-24主菜单栏中所包含的菜单项
11.登录界面设计
通过“登录”窗体能够限制非法用户访问本系统,操作步骤如下:
1)设计“登录”窗体的界面布局,如图1-25所示。
其中密码对应的文本框的“输入掩码”属性设置为“密码”。
图1-25“登录”窗体
2)在窗体的“代码”窗口中,输入按钮控件的单击事件代码,参考代码如下所示:
PrivateSubCommand6_Click()’取消按钮单击事件
Me.Text1.Value=""
Me.Text3.Value=""
Me.Text1.SetFocus
EndSub
PrivateSubForm_activate()
n=0
EndSub
PrivateSubForm_load()
Me.Text3.SetFocus
Me.Text3=Null
Me.Text1=Null
EndSub
PrivateSubCommand5_Click()’登录按钮单击事件
OnErrorGoToErr_Command5_Click
DimstrAsString
Setrs=NewADODB.Recordset
Ifn<3Then
IfIsNull(Me.Text1)OrIsNull(Me.Text3)Then
MsgBox("用户名和密码不能为空!
")
Else
str="select*from信息表where用户名='"&Me.Text1
str=str&"'and密码='"&Me.Text3&"'"
rs.Openstr,CurrentProject.Connection,adOpenKeyset,adLockOptimistic
Ifrs.RecordCount>0Then
Me.Visible=False
DoCmd.OpenForm"学生成绩管理数据库"
Else
MsgBox("用户名或密码错误!
")
EndIf
EndIf
n=n+1
Else
MsgBox("你已3次出错,按任意键退出!
")
DoCmd.Close
EndIf
Exit_Command5_Click:
ExitSub
Err_Command5_Click:
MsgBox(Err.Description)
ResumeExit_Command5_Click
EndSub
12.设置自启动窗体
其操作步骤如下:
1)打开数据库文件。
2)在“数据库”窗口中,选择“工具”—>“启动”命令,打开“启动”对话框,如图1-26所示。
图1-26“启动”对话框
3)在“启动”对话框的“应用程序标题”文本框中输入“学生成绩管理数据库”,在“显示窗体/页”的下拉列表框中选择“登录”选项,取消选择“显示数据库窗口”复选框,单击“确定”按钮,结束自动启动窗体的设置。
五、关键技术
在做“学生成绩管理数据库”的过程中,使用到了access中的一些相关技术,虽然这些技术谈不上有多难,但是却实现了我们小组对这个管理系统设想的效果。
下面就让我们来分享一下这些技术中的一部分关键技术。
1.主键设置为组合框,并设置其相应的行来源
如图表1-2所示,“成绩”表的外键有学号和课程编号两个字段(字段学号和课程编号分别是其他表的主键)。
为了方便在数据表视图中输入数据,特设置成组合框,并设置其行来源为“学生”表和“课程”表。
这样在数据表视图中输入数据时,学生的学号可以在字段学号的下拉项中选择,课程编号也可在字段课程编号的下拉项中选择。
这样操作简单,且不易出错,甚至漏掉记录。
2.使用“查阅向导”定义“政治面貌”字段
在输入字段“政治面貌”的数据时,我们希望它的值是“党员、团员、群众”中的一种,可以在字段“政治面貌”的下拉项中选择。
“查阅向导”刚好可以定义这样的“政治面貌”。
选定“自行建入所需的值”单选按钮,输入“党员、团员、群众”作为查阅列中显示的值。
3.建立表间关系
要建立查询“学生成绩查询”,就必须先建立“学生”表,“成绩”表以及“课程”表之间的关系。
建立正确的关系是建立查询的保障。
“学生”表中的字段学号和“成绩”中的字段学号应建立一对多的关系,“课程”表中的字段课程编号和“成绩”表中的字段课程编号应建立一对多的关系。
这样三个表就联系起来了,并且若要保证修改一个表中的记录,其他的表中的显示的相关记录也要随之改变,在编辑关系时,要将选项“实施参照完整性”,“级联更新相关字段”,“级联删除相关记录”选上。
4.建立子窗体
在“学生成绩维护”窗体中,要实现显示学生基本信息的同时显示他的所选课程的成绩。
这样就必须建立一个子窗体用以显示学生所选课程的成绩。
将学号作为两者的链接字段即可实现此功能。
同样的放啊适合“学生成绩查询”窗体的设计。
5.操作AddMenu设置主菜单的宏
AddMenu操作是ACCESS常用宏操作中的一种,用于将菜单添加到自定义的菜单栏上,菜单栏中每个菜单都需要一个独立的AddMenu操作。
我们制作的窗体,报表等,最后都希望在一个界面中,点击每一个菜单选项的下拉子菜单,就可打开相应的表或窗体。
AddMenu就可以实现我们设想的这个功能。
6.登录窗体按钮控件的单击事件代码设计
在登录界面中有两个按钮“登录”和“取消”,我们希望管理员在输入自己的用户名和密码时,点击“登录”按钮就可以打开“学生成绩管理系统”的主页面,点击“取消”按钮时可以清空文本框中的数据。
用户名和密码错误时,可以有错误提醒。
具体的代码在详细设计中的登录界面设计中。
7.登陆界面的密码输入不可见
我们希望在用户名文本框中显示我们输入的用户名,在密码的文本框中不要显示我们输入的密码的原来的样子,而是像我们登录qq时那样以圆点或是星号显示。
在密码的文本框的属性栏中,将选项“输入掩码”设置为密码就可实现这个功能。
8.设置自启动窗体
我们希望在打开“学生成绩管理数据库”时,弹出来的直接是登录界面,就向我们平时用的纳西额软件一样。
要实现这个功能,只要将“登录”窗体设置为自启动窗体即可,设计步骤见详细设计中的设置自启动窗体。
六、心得体会
这次的数据库实验让我们收获很多,尽管我们之前并没有上过数据库相关的理论课,也尽管我们这组只有两个女生,但实践证明这些都不是我们在这整个过程中的绊脚石。
我们将这个数据库做出来了,或许在别人看来我们做出来的东西很简单,但是它确实是我们一点一滴的努力。
从刚开始的讨论要做的题目,到后来的分工合作,我们两个人都是积极的。
我们从来没有去设想假如我们要做的题目到最后没有做出来怎么办,从一开始我们就斗志昂扬。
两人的力量确实要赛过一个人。
没有学过数据库,没有关系,从图书馆里借几本书来看不就会了。
遇到问题解决不了怎么办,一起讨论怎么解决就可以了。
我们很多次去图书馆找我们想要的书,从来没有如此深刻体会到图书馆也是个好地方。
我们很多次在网上收索解决我们难题的方法,发现网上有时也相当不靠谱。
我们也很多次与班上同学讨论一下数据库这个问题,发现每个人在做这个过程中都会遇到很多问题。
看着我们一起努力做出来的东西,我们是兴奋的。
顿时更加觉得没有你做不出来的东西,只有你不努力去学,去做。
希望我们能一直保持这种努力、学习的态度,不断的提升自我,不断的充实自己。
七、参考文献
[1]崔洪芳等.Access数据库应用技术.武汉:
华中科技大学出版社,2009
[2j金鑫.数据库原理及应用实验指导与习题.北京:
机械工业出版社,2009
[3]史令等.Access应用系统的开发题解与实验指导.北京:
清华大学出版社,2009
[4]桂思强.Access行家实战问答集.北京:
中国铁道出版社,2003