《华中科技大学数据库课程设计报告》由会员分享,可在线阅读,更多相关《华中科技大学数据库课程设计报告(15页珍藏版)》请在金锄头文库上搜索。
1、电气与电子工程学院教学管理数据库应用系统设计姓姓 名名 徐可寒徐可寒 学学 号号 u201211782 年年 级级 2012 级级 课课 程程 数据库技术及应用数据库技术及应用日日 期期 年年 月月 日日U201211782 教学管理数据库应用系统 2013.91 一 绪论1.1 课程设计背景随着 Internet 的快速发展,计算机网络已经成为社会和经济发展的强大动力,通过计算机网络技 术实现社会的高度信息化更是我们国家科教兴国的重要战略。近年来,中国各大院校办学规模不断扩 大,如何去处理成倍增长的学生信息量,已成为管理职业部门共同关心的焦点。 面对这一挑战,许多院校有意识地加快了数字化院校
2、管理的进程,而教学管理系统也应运而生, 并很快成为大学广泛采用的信息管理系统。1.2 研究现状目前,教学管理系统的研究尚不完善,不少软件在实际使用中存在问题。管理模式滞后,缺乏与信 息技术相匹配的管理模式;功能单一,不能涵盖高职学院管理部门的诸多方面;可用性不强,大量的 实际问题得不到解决;缺乏统一规划,系统设计,没有整套的信息编码方案,大量数据形成信息“孤 岛” 。所以,对教学管理系统的开发还有很大空间,而对于大学生来讲,对这一系统设计的学习也是必要 并附有意义的。1.3 所用设计平台Access2003,VB 企业版等二 需求分析2.1 总体需求分析对于教学管理系统,准确快捷的成绩查询功能
3、和方便简单的教师修改操作是十分必要的,因此系统必须为学生提供准确的学生信息和当前的成绩情况,这是学生学生管理系统的最基本要求。2.2 信息需求教学管理系统用户分为学生和教师两类,用户所需信息一般有:个人信息,课程信息,成绩信息等。 所以我在数据库中共设计了 8 张表以满足系统操作以及用户使用的需求,8 张表的视图如下图所示: 学生(教师)用户表学生(教师)用户表学生信息表学生信息表2013.9华中大学电气与电子工程学院数据库技术及应用课程设计2教师信息表教师信息表院系信息表院系信息表课程信息表课程信息表授课信息表授课信息表成绩信息表成绩信息表U201211782 教学管理数据库应用系统 201
4、3.932.3 处理要求总地说来,处理需求有以下两项: 1、用户信息的注册与修改; 2、学生教师的查询与统计;所以通过学生与教师分别不同的用户界面可以简而有效地是实现处理上的区别化。 2.3 数据流图本系统面对用户是学生和教师,他们的处理功能都将在下面的功能模块图中给出:学生模块图学生模块图教师模块图教师模块图2013.9华中大学电气与电子工程学院数据库技术及应用课程设计42.3 安全性与完整性要求三 概念设计3.1 逐一设计 ER 图学生局部学生局部 ERER 图图U201211782 教学管理数据库应用系统 2013.95教师局部教师局部 ERER 图图3.2 生成基本 ER 图四 逻辑设
5、计4.1 关系模型设计根据ER图,应用以下规则将ER模型转换为关系模式: (1)、实体类型的转换:将每个试题类型转换为一个关系模式,实体的属性即为关系模式的属性,2013.9华中大学电气与电子工程学院数据库技术及应用课程设计6实体标识符即为关系模式的键。(2)、联系类型的转换:将联系为1:N和N:M的联系类型转换为单独的关系模式,其键为两端实体键的组合。这样,可得关系模式如下:4.2 数据模型优化4.3 用户子模式设计五 物理模型由于不清楚教学信息的具体资源,故在此从略。六 数据库的实施5.1 建立数据表首先,新建 access 数据库文件,依据逻辑设计所得关系模式在其中创建教师信息表、学生信
6、息表、 课程信息表、院系信息表、授课信息表五张表,通过主键和外键建立表之间的关系,其中关系类型参 考 ER 图中联系类型。5.2 Access 数据库与 VB 窗体连接由于选用 VB 建窗体和 access 建数据库结合的方式,所以二者连接语句必不可少,通过一段时间查 找,我通过以下语句成功实现了此功能:U201211782 教学管理数据库应用系统 2013.97 conn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Documents and SettingsAdministrator桌面教学管理stu4.mdb“5.3 应用程序
7、的编码和调试首先,为了将学生用户与教师用户从一开始便分割开来,我创建了一个主登录窗口如下图 1:图 15.3.1 教师用户主要窗口介绍从教师窗口进入后,便进入教师登陆界面,如下图 2 所示:2013.9华中大学电气与电子工程学院数据库技术及应用课程设计8图 2教师登陆窗口主要功能是登陆检测和注册界面跳转,注册界面如下图 3:这两个界面代码编写(尤其登陆界面)给我制造了一些麻烦,登陆界面上登录按钮需要实现与数据库中用户表相互核实的功能,我用一下语句将这个功能实现:rs.Open “Select * from 教师用户表 where 用户名=“ & Text1.Text & “and 密码=“ &
8、 Text2.Text & “, conn, 1, 1If rs.RecordCount = 1 Then U201211782 教学管理数据库应用系统 2013.99Text1.Text = rs(“用户名“)Text2.Text = rs(“密码“)Form3.HideForm6.ShowElseMsgBox “用户名或密码不对!“, vbOKOnly + vbInformation, “错误“Text1.Text = “Text2.Text = “ (完)通过登录界面上用户名 Text1 与密码 Text2 中的 Text 内容与已连接数据表相互比较,并使用select 简易查询语句,若
9、存在对应用户便成功登陆,否则将无法登陆。而注册界面确认按钮部分代码如下:If rs.RecordCount 0 ThenMsgBox “用户名已存在“ + “重新输入用户名“, vbOKOnly + vbInformation, “提示“Text1.SetFocusExit SubElsers.AddNewrs(“用户名“) = Text1.Textrs(“密码“) = Text2.Text2013.9华中大学电气与电子工程学院数据库技术及应用课程设计10rs.UpdateMsgBox “用户成功添加“, vbOKOnly + vbInformation, “提示“End If这段语句主要是用
10、于与数据库相连接后,将用户在注册窗体内写入的信息与原有表内数据进行比较(部分语句已省略) ,根据判断语句执行后决定是否是有效的注册,如果是,就把用户填入的用户名与密码导入用户表内,完成注册。在成功的登录后,回进入教室操作界面,如下图 3:图 3教师登录界面上主要是通过命令按钮转到其他操作窗口,不做具体描述。在教师操作功能中,我主要介绍成绩修改系统和成绩查询系统,以下是二者的操作窗体,见图 4,图 5:U201211782 教学管理数据库应用系统 2013.911图 4这两个界面的功能实现借用了 Adodc 与 DataGrid 控件,Ado 是当前微软对数据库操作最有效和最简单的方法,我通过网
11、上查找资料的方式,也初步了解到了 Ado 连接数据库的操作步骤,例如引用控件,窗口上添加控件,设置控件属性等,之后又通过查询语句,实现窗体的查询功能,具体关键语句如下:2013.9华中大学电气与电子工程学院数据库技术及应用课程设计12Private Sub Form_Load()Adodc1.CommandType = adCmdTextAdodc1.RecordSource = “select 课程号 from 授课信息表 where 教师号=39group by 课程号“Adodc1.RefreshAdodc2.CommandType = adCmdTextAdodc2.RecordSou
12、rce = “select 学号,姓名 from 学生信息表 where 班级=“ & Trim(Text5.Text) & “and 年级=“ & Trim(Text6.Text) & “Adodc2.RefreshAdodc5.CommandType = adCmdTextAdodc5.RecordSource = “select 班级 from 授课信息表 where 教师号=39 group by 班级 “Adodc5.RefreshAdodc6.CommandType = adCmdTextAdodc6.RecordSource = “select 年级 from 授课信息表 whe
13、re 教师号=39 group by 年级 “Adodc6.RefreshEnd Sub而在教师成绩查询界面中,我又应用到了 DataGrid 控件,它的每一个单元格都可以包含文本值,使我们可以显示表格数据,从而和 Ado 一起使用实现查询功能。关键如下:If Check1.Value = 0 And Check2.Value = 0 ThenMsgBox “请输入学号或者课程号“, vbOKOnly + vbCritical, “提示“Text1.SetFocusU201211782 教学管理数据库应用系统 2013.913ElseIf Check1.Value = 1 And Check2
14、.Value = 0 ThenAdodc1.CommandType = adCmdTextAdodc1.RecordSource = “select * from 成绩信息表 where 学号=“ & Trim(Text1.Text) & “Adodc1.Refresh.Adodc1.CommandType = adCmdTextAdodc1.RecordSource = “select * from 成绩信息表 where 学号=“ & Trim(Text1.Text) & “and 课程号=“ & Trim(Text2.Text) & “.在这个窗体上,我还使用了 Check 控件,来实现
15、分条件查询的功能。5.3.2 学生用户主要窗口介绍由于学生的前几个窗口和教师相差不大,在此不做详述。只介绍学生选课窗口,图如下:2013.9华中大学电气与电子工程学院数据库技术及应用课程设计14学生选课系统主要根据学生在登录界面上的登录帐号,通过语句将其自动写在学号文本框内,并连接学生信息表将姓名一并显示,然后用户可以选择课程,并选择确认后写入选课信息表内。代码较为简单,在此略去。七 结束语这次的数据库管理系统的建立前后总共花费尽一个月的时间。由于手边关于 Access 代码编写的资 料不足,开始几天基本都在网上质量参差不齐的“代码海”里呛水,很是烦恼,不过也正是在这几天 不断的捉摸过程中,让我完成了对代码从啥都不懂到基本看懂的转变,为后面的编写奠定了基础。一 开始我本打算直接用 Access 完成窗体的创建,然而,由于我所用 Access 版本过低,按钮功能远不如 Access2010 强大,所以对自写代码的要求很高,通过不断的查找资料,我在 Access 中完成了对登陆 窗体以及注册窗体的创建,耗费了大量时间,并且愈发感觉到在网上,VB 代码资源要多得多,介绍得 更加全面和详细,所以我舍弃了用 Access 建立窗体的设想,改采用 VB 来建立窗体。同样在前期出现 各种问题,例如 VB 窗体与数据库表的连接,如何将表中内容反映在 VB 窗体文本框上,V