欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第七章 数据库系统开发实例.docx

    • 资源ID:10082981       资源大小:470.76KB        全文页数:47页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第七章 数据库系统开发实例.docx

    1、第七章 数据库系统开发实例第七章 数据库应用系统开发示例本章通过两个示例,介绍数据库应用系统的设计与开发过程。既是对前面几章所介绍内容的总结与应用,也为读者将来开发一个实际的数据库应用系统提供一些帮助。本章主要介绍以下两个示例: 教学管理系统 图书借阅管理系统第一节 教学管理系统 教学管理系统是学校现代化管理的重要组成部分,是推动学校教学管理走向科学化、规范化的必要条件。教学管理工作量大、复杂,搞好教学管理工作是维持教学活动的正常运转,确保教学质量的重要保障。利用教学管理这一数据库应用系统,可以让教学管理人员科学地、规范地管理与教学有关的数据,不仅节约大量的人力与时间,提高工作效率,而且还可以

    2、减少差错和漏洞。因此,开发教学管理系统是非常必要的。一、需求分析教学管理工作涉及到教学的各个环节,为简单起见,这里只涉及对教师授课与学生选课的部分管理工作。具体包括以下主要内容: 教师基本信息的编辑(包括教师基本信息的增加、修改、删除与查询)。 学生基本信息的编辑(包括学生基本信息的增加、修改、删除与查询)。 课程基本信息的编辑(包括课程基本信息的增加、修改、删除与查询)。 学生选课信息的编辑(包括选课信息的增加、修改、删除与查询)。 教师任课信息的编辑(包括任课信息的增加、修改、删除与查询)。 学生成绩的输入与修改。 选课、任课信息的统计。 需求分析的最终结果可用数据流程图、数据字典等表示出

    3、来(这些内容可在学完信息系统分析与设计课程后加以完善,这里从略)。二、数据库概念结构设计数据库的概念结构设计有多种方法,这里采用E-R模型进行概念结构设计。由需求分析可以得出,该教学管理系统所涉及到的实体有以下三个: 教师:用于描述一个教师的基本情况,其属性包括:教师号、姓名、性别、年龄、职称、电话,其中教师号为码。 学生:用于描述一个学生的基本情况,其属性包括:学号、姓名、性别、年龄、班级,其中学号为码。 课程:用于描述一门课程的基本情况,其属性包括:课程号、课程名、课程类别(必修或选修)、课时、学分,其中课程号为码。根据语义(即该问题的实际情况)分析知:一个教师可以讲授多门课程,一门课程也

    4、可以有多名教师讲授;一个学生可以选修多门课程,一门课程也可以有多名学生选修。根据以上分析,可设计出该教学管理系统所对应的E-R图,如图7-1所示。图7-1教学管理系统E-R图三、数据库逻辑结构设计1关系模式的设计进行数据库的逻辑结构设计,首先要将概念结构设计中所得到的E-R图转换成等价的关系模式。根据第三章介绍的将E-R图转换成等价的关系模式的方法,图7-1所示的E-R图可以转换成以下5个关系模式: 教师(教师号,姓名,性别,年龄,职称,电话)。 学生(学号,姓名,性别,年龄,班级)。 课程(课程号,课程名,课程类别,课时,学分)。 选课(学号,课程号,成绩),其中学号为引用学生关系的外键,课

    5、程号为引用课程关系的外键。 任课(教师号,课程号),其中教师号为引用教师关系的外键,课程号为引用课程关系的外键。2关系模式的优化设计好基本的关系模式以后,接下来要对它们进行优化。根据第三章介绍的关系规范化理论,上述各关系模式中,由于每个非主属性都不传递依赖于主键,因此,他们均满足第三范式。四、数据库的建立本例使用VB提供的可视化数据管理器来建立Access数据库。表7-17-5给出了上述5个关系模式所对应的5个表的基本结构,具体的数据库(数据库名为student)及其表(表名分别为:教师,学生,课程,选课,任课)的建立,请读者根据第五章介绍的方法自行完成。需要说明的是,由于Access为小型数

    6、据库,因此它并不具备数据库安全控制中所要求的所有功能(如参照完整性)。表7-1 教师表结构 表7-2 学生表结构字段名数据类型长度约束字段名数据类型长度约束教师号Text(字符串)6主键学号Text(字符串)6主键姓名Text(字符串)10姓名Text(字符串)10性别Text(字符串)2默认值男性别Text(字符串)2默认值男年龄Byte(字节型)118 and 100年龄Byte(字节型)115 and 100职称Text(字符串)10班级Text(字符串)10电话Text(字符串)12表7-3 课程表结构 表7-4 选课表结构字段名数据类型长度约束字段名数据类型长度约束课程号Text(字

    7、符串)2主键学号Text(字符串)6主键课程名Text(字符串)20课程号Text(字符串)2主键课程类型Text(字符串)4默认值必修成绩Byte(字节型)1=1 and 0学分Byte(字节型)1表7-5 任课表结构字段名数据类型长度约束教师号Text(字符串)6主键课程号Text(字符串)2主键五、数据库系统应用程序设计在第五章已经介绍过,当建立了数据库之后,接下来就要进行应用程序的设计,它是用户和数据库之间的接口或界面,用户通过应用程序对数据库进行操作。1系统功能设计应用程序的设计以系统功能为依据,因此,在进行应用程序设计之前,先进行数据库系统的功能设计。数据库系统的功能设计与传统的程

    8、序设计类似,在软件工程中所介绍的程序设计方法均可用于数据库系统的功能设计。由于我们这里所介绍的教务管理系统的功能相对来说比较简单,因此我们仅给出该系统的功能结构图(如图7-2所示)。图7-2 教务管理系统功能结构图2应用程序设计本示例利用VB标准的数据(Data)控件来操作数据库。(1)设计用户界面。本示例共设计9个窗体,其中MainFrm为主窗体,在该窗体上包含一个标签控件及功能菜单(如图7-3所示)。功能菜单的结构如图7-4所示。各菜单项的名称见程序代码。图7-3 教学管理系统主窗体图7-4 功能菜单的结构TFrm为教师信息编辑窗体(其ControlBox属性设置为False,此时窗体的最

    9、小化、最大化、关闭按钮都消失)。它包含2个Data控件(Visible属性均设置为False,以下所有Data控件的Visible属性均设置为False,不再重复说明)、1个DBGrid控件(DataSource属性设置为Data1,AllowUpdate设置为False)、1个Frame控件、7个Label控件、4个Text控件、2个ComboBox控件(对应性别的ComboBox控件CmbSex的List属性设置为男和女,对应职称的ComboBox控件CmbTitle的List属性设置为教授、副教授、讲师和助教)以及6个Command控件(其中“确定”与“取消”按钮的Visible属性设置

    10、为False)。各控件的Name属性设置见程序代码,窗体、标签、框架、命令按钮的Caption属性的设置见窗体界面,4个Text控件和2个ComboBox控件的Enabled属性均设置为False。图7-5给出了教师信息编辑窗体运行时的界面。在图7-5中,当单击“增加”或“修改”按钮时,进入数据输入与修改状态,此时4个Text控件和2个ComboBox控件的Enabled属性均设置为True,“增加”、“修改”、“删除”、与“关闭窗口”按钮的Visible属性均设置为False,“确定”与“取消”按钮的Visible属性均设置为True,当单击“确定”或“取消”按钮来接受或取消输入(或修改)的

    11、数据时,窗体又恢复到图7-5所示的界面。图7-5 教师信息编辑窗体SFrm、CFrm、SCFrm、TCFrm分别为学生、课程、选课、任课信息编辑窗体。它们的界面设计与TFrm窗体基本一致,限于篇幅,这里从略。留给读者作为练习。GradeFrm为成绩输入与修改的窗体(如图7-6所示)。它包含3个Data控件、1个DBGrid控件(DataSource属性设置为Data1,从属性页对话框的Layout选项卡中选中学号一列的Locked复选框,使该列不可修改)、3个Label控件(其中用来显示所选学生姓名的标签Label3的BorderStyle的属性值为1)、1个ComboBox控件以及1个Com

    12、mand控件。QueryFrm为查询结果显示窗体(如图7-7所示)。它包含1个Data控件、1个DBGrid控件(DataSource属性设置为Data1,AllowUpdate设置为False)、1个Label控件以及1个Command控件。StatFrm为统计结果显示窗体(如图7-8所示)。它包含1个Data控件、1个DBGrid控件(DataSource属性设置为Data1,AllowUpdate设置为False)、1个Label控件以及1个Command控件。(2)程序代码模块文件Module1.bas的程序代码:Public item As Integer 定义公共变量item,表示

    13、菜单项编号主窗体MainFrm.frm的程序代码:Private Sub TD_Click() 单击教师信息菜单后,调用教师信息编辑窗体 TFrm.Show 1End SubPrivate Sub SD_Click() 单击学生信息菜单后,调用学生信息编辑窗体 SFrm.Show 1End SubPrivate Sub CD_Click() 单击课程信息菜单后,调用课程信息编辑窗体 CFrm.Show 1End SubPrivate Sub SCD_Click() 单击选课信息菜单后,调用选课信息编辑窗体 SCFrm.Show 1End SubPrivate Sub TCD_Click() 单

    14、击任课信息菜单后,调用任课信息编辑窗体 TCFrm.Show 1End SubPrivate Sub GD_Click() 单击成绩输改菜单后,调用成绩输改窗体 GradeFrm.Show 1 End SubPrivate Sub Tno_T_Click() 单击按教师号查询菜单后,调用数据查询窗体 item = 211 : QueryFrm.Show 1End Sub单击其它各查询菜单后,除全局变量item的赋值不同外,均调用数据查询窗体,故其它各查询菜单的Click事件过程均略。Private Sub Stat_TN_Click() 单击统计任课教师人数菜单后,调用数据统计窗体 item

    15、= 31 : StatFrm.Show 1End SubPrivate Sub Stat_SN_Click() 单击统计某门课选课人数菜单后,调用数据统计窗体 item = 32 : StatFrm.Show 1 End SubPrivate Sub Stat_G_Click() 单击统计某位学生总选课学分菜单后,调用数据统计窗体 item = 33 : StatFrm.Show 1End SubPrivate Sub Quit_Click() 单击退出系统菜单后,程序结束 EndEnd Sub教师信息编辑窗体TFrm.frm的程序代码:Dim r_loc As Long, ma As Str

    16、ing 定义窗体级变量,其中r_loc存放当前记录号,ma存放字符“a”或“m”,分别表示“增加”记录或“修改”记录Sub PrtRec() 通用过程,通过控件显示记录 TxtNo.Text = Data1.Recordset.Fields(教师号) : TxtName.Text = Data1.Recordset.Fields(姓名) TxtAge.Text = Data1.Recordset.Fields(年龄) : TxtTel.Text = Data1.Recordset.Fields(电话) CmbSex.Text = Data1.Recordset.Fields(性别) : Cmb

    17、Title.Text = Data1.Recordset.Fields(职称)End SubSub fed() 通用过程,单击“确定”或“取消”按钮后调用该过程 DBGrid1.Enabled = True : Cmd_Ok.Visible = False : Cmd_Cel.Visible = False Cmd_Add.Visible = True : Cmd_Close.Visible = True If r_loc = 0 Then 表中有记录 Data1.Recordset.MoveFirst : Data1.Recordset.Move r_loc 移动记录指针 PrtRec 调用

    18、通用过程,在各文本框中显示当前记录 Cmd_Del.Visible = True : Cmd_Modi.Visible = True Else 表中无记录,如输入第一条记录 TxtNo.Text = : TxtName.Text = : TxtAge.Text = : TxtTel.Text = CmbSex.Text = 男 : CmbTitle.Text = Cmd_Del.Visible = False : Cmd_Modi.Visible = False End If 置各控件为不可修改状态TxtNo.Enabled = False : TxtName.Enabled = False

    19、: TxtAge.Enabled = False TxtTel.Enabled = False : CmbSex.Enabled = False : CmbTitle.Enabled = FalseEnd SubSub ted() 通用过程,单击“增加”或“修改”按钮后除DBGrid外,其它各控件置为可修改状态 DBGrid1.Enabled = False : Cmd_Ok.Visible = True : Cmd_Cel.Visible = True TxtNo.Enabled = True : TxtName.Enabled = True : TxtAge.Enabled = True

    20、TxtTel.Enabled = True : CmbSex.Enabled = True : CmbTitle.Enabled = TrueEnd SubPrivate Sub Form_Load() 装入窗体 Data1.DatabaseName = App.Path & student.mdb : Data1.RecordsetType = 1 记录类型为Dynaset Data1.RecordSource = 教师 记录源为教师表 Data2.DatabaseName = App.Path & student.mdb : Data2.RecordsetType = 1 Data2.Re

    21、cordSource = 任课 Data1.Refresh r_loc = Data1.Recordset.AbsolutePosition 第一条记录号(从0开始),若表中无记录,则其值为-1 fed 调用通用过程,若表中有记录,则在各文本框中显示第一条记录End SubPrivate Sub Cmd_Add_Click() 添加 ma = a : r_loc = Data1.Recordset.AbsolutePosition 当前记录号 ted 调用通用过程 TxtNo.Text = : TxtName.Text = : TxtAge.Text = : TxtTel.Text = Cmb

    22、Sex.Text = 男 : CmbTitle.Text = 增加、修改、删除、关闭窗口按钮不显示,显示确定与取消按钮Cmd_Ok.Visible = True : Cmd_Cel.Visible = True : Cmd_Add.Visible = FalseCmd_Del.Visible = False : Cmd_Modi.Visible = False : Cmd_Close.Visible = FalseEnd SubPrivate Sub Cmd_Cel_Click() 取消 r_loc = Data1.Recordset.AbsolutePosition 当前记录号 fed 调用

    23、通用过程,使各编辑控件为可修改状态End SubPrivate Sub Cmd_Ok_Click() 确定 Dim tno As String, lexp As String, age As Byte tno = Trim(TxtNo.Text) : age = Val(TxtAge.Text) If r_loc = 0 Then 表中有记录 lexp = 教师号= & & tno & Data1.Recordset.FindFirst lexp 查找教师号If Not Data1.Recordset.NoMatch Then 判断表中是否已存在相同教师号 If ma = a Or ma =

    24、m And r_loc Data1.Recordset.AbsolutePosition Then x1 = MsgBox(该教师号已存在!, vbOKOnly + vbExclamation, 警告) TxtNo.SetFocus : Exit Sub End If End If End If If tno = Then x = MsgBox(教师号不允许为空!, vbOKOnly + vbExclamation, 警告) TxtNo.SetFocus : Exit Sub End If If age 100 Then x = MsgBox(年龄必须在18与100岁之间!, vbOKOnly

    25、 + vbExclamation, 警告) TxtAge.SetFocus : Exit Sub End If If ma = a Then 增加记录 Data1.Recordset.AddNew Else 修改记录 Data1.Recordset.MoveFirst : Data1.Recordset.Move r_loc : Data1.Recordset.Edit End If Data1.Recordset.Fields(教师号) = tno : Data1.Recordset.Fields(姓名) = TxtName.Text Data1.Recordset.Fields(年龄) =

    26、 age : Data1.Recordset.Fields(电话) = TxtTel.Text Data1.Recordset.Fields(性别) = CmbSex.Text : Data1.Recordset.Fields(职称) = CmbTitle.Text DBGrid1.Enabled = True : Data1.Recordset.Update : Data1.Refresh If ma = a Then 增加记录 Data1.Recordset.MoveLast : r_loc = Data1.Recordset.AbsolutePosition End If fedEnd

    27、SubPrivate Sub Cmd_Del_Click() 删除 Dim yn As Integer, tno As String, lexp As String tno = Trim(TxtNo.Text) : Data3.Refresh If Data3.Recordset.AbsolutePosition = 0 Then lexp = 教师号= & & tno & Data3.Recordset.FindFirst lexp If Not Data3.Recordset.NoMatch Then x = MsgBox(该教师已有任课记录,请先删除任课记录!, vbOKOnly + v

    28、bExclamation, 警告) Exit Sub End If End If yn = MsgBox(真的要删除此记录吗?, vbYesNo + vbExclamation, 确认) If yn = vbYes Then Data1.Recordset.Delete : Data1.Recordset.MoveNext r_loc = Data1.Recordset.AbsolutePosition If Data1.Recordset.EOF() And Data1.Recordset.RecordCount 0 Then Data1.Recordset.MoveLast : r_loc

    29、 = Data1.Recordset.AbsolutePosition End If End If fedEnd SubPrivate Sub Cmd_Modi_Click() 修改 ma = m : r_loc = Data1.Recordset.AbsolutePosition ted Cmd_Ok.Visible = True : Cmd_Cel.Visible = True : Cmd_Add.Visible = False Cmd_Del.Visible = False : Cmd_Modi.Visible = False : Cmd_Close.Visible = FalseEnd SubPrivate Sub Cmd_Close_Click() 关闭窗口 Unload MeEnd SubPrivate Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) 行列变化 If r_loc = 0 Then 如果表中存在记录 PrtRec 调用通用过程,显示网格中当前行的记录 End IfEnd Sub学生、课程、选课、任课信息编辑窗体的各程序代码与教师信息编辑窗体的程序代码类试,留给读者作为练习。成绩输改窗体GradeFrm.fr


    注意事项

    本文(第七章 数据库系统开发实例.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开