1、数据库及其应用 课程设计汇报用户信息管理系统指导老师:汇报撰写: 一、设计关键目标1. 经过实践,使学生建立对数据库设计认知; 2. 经过对某小型信息系统数据库设计,使学生掌握数据库设计关键步骤和方法,提升学生处理实际问题能力; 3. 使学生学会在一个实际RDBMS软件平台上创建数据库; 4. 培养学生团体合作精神。 二、关键内容和要求 1. 依据所选择题目,进行调查分析 2. 在调查分析基础上,进行数据库设计 3. 在SQLServer上创建数据库,并结合VB 6.0实现设计结果 4. 撰写数据库设计各个阶段具体设计汇报 5. 写出收获和体会,包含以处理和还未处理问题,深入完善设想和提议 三
2、、设计组织安排 设计时间: 设计班级:设计分组: 设计汇报提交: 四、组员情况 五、数据库分析和设计需求说明要实现一个用户信息管理系统,在此系统中只包含到对用户和管理员两个实体管理,此系统要求能够统计用户基础信息和信息查询。经过对用户具体数据管理,这么能够愈加好地实现任何企业及活动单位VIP会员加入并确保其身份真实、安全性。其系统具体要求以下: 1.用户基础信息录入、添加或删去2.对用户基础信息任意条件查找3.用户基础信息表打印4.系统用户设置5.系统初始化数据库结构设计(1)概念结构设计现在对上述需求做深入分析,产生概念结构设计ER模型。因为这个系统比较简单,所以就采取自顶向下设计方法,就是
3、首先确定系统关键活动:查询功效。对于管理员和用户之间,便是经过查询发生联络。至此,本系统包含实体有:用户用于描述一名用户基础信息,以姓名来标识管理员用于描述一名管理员基础信息,以用户名来标识因为一名管理员能查找多名用户信息,而且一名用户信息能被多个管理员查找。所以,管理员和用户之间联络是多对多。其基础ER模型以下图:(2)逻辑结构设计依据转换规则,这个ER模型转换关系模式为:用户(姓名,性别,生日,年纪,手机号码,职务,所在单位,家庭住址,固定电话,爱好爱好)管理员(用户名、管理等级)最终依据关系模式建立对应kh表和oper表(3)数据库行为设计1. 安全设置:其管理员含有操作系统全部权限2.
4、 数据操作功效:包含对数据录入、删除、修改功效3. 生成报表:kh表(姓名,性别), oper表(用户名)六、设计答辩部分(1)系统结构步骤图:(2)设计方法首先经过登录窗口关键代码部分:Private Sub Command1_Click() Dim mrc As Adodb.Recordset txtsql select * from oper where 用户名= & Trim$(Text1(0).Text) & & and 口令= & Trim$(Text1(1).Text) + Set mrc = exesql(txtsql) If mrc.RecordCount = 0 Then
5、n = n + 1 If n 3 Then MsgBox 没有这个用户,继续登录, vbOKOnly + vbExclamation, 信息提醒 Text1(0).Text = Text1(1).Text = Text1(0).Set focus Else MsgBox 登录失败三次,退出系统, vbOKOnly + vbExclamation, 信息提醒 mrc.Close Unload Me End IfElse userlevel = tram(mrc.Fields(等级) mrc.Close Unload Me main.Show vbModalEnd IfEnd Sub其中有不满足登
6、录条件重新登录,失败三次退出系统设计登录后即进入主菜单Private Sub Form_Load() If userlevel 系统管理员 Then Command3.Enabled = False Command4.Enabled = False End IfEnd SubPrivate Sub Command1_Click() edkh.Show vbModal “编辑用户按钮”连接edkh编辑窗体End SubPrivate Sub command2_click() qukh.Show vbModal “查询用户按钮”连接qukh查询窗体End SubPrivate Sub Comman
7、d3_Click() setuser.Show vbModalEnd Sub 以下为“系统初始化”设计Private Sub Command4_Click() If MsgBox(本功效要清除系统中全部数据,真要初始化吗?, vbYesNo, 确定初始化操作) = vbYes Then Call deldata(khb) 清除用户表中全部信息 Call deldata(oper) 清除oper表中全部信息 MsgBox 系统初始化完成,下次只能显示以1234/1234(用户名/口令)进入本系统, vbOKOnly, 信息提醒 End IfEnd SubPrivate Sub Command5_
8、Click() Unload MeEnd Sub编辑窗体设计以用户表为例进行说明,为了编辑其统计,设计了edkh(编辑用户)窗体,在DataGrid中显示全部以输入用户统计。用户能够经过“设置统计”框查找对应用户统计,然后单击“修改”或“删除”按钮,对用户统计进行修改或删除操作,或单击“添加”按钮输入新用户统计。点击“添加会员” 此部分由李健完成设计任意条件查询代码设计以qukh表为例,用户输入用户部分信息对用户进行查找。只需在qukh窗体中输入部分经过结构条件表示式,实现在VB中输入数据信息由Ado连接到数据库中用户表进行查找,即Adodc1.RecordSourse = “ select
9、* from khb where ” + str 输入查找条件并使用数次if语句完成对多重条件输入选择查询;另外,若不需要任何条件输入,则可直接调出全部用户全部信息,即Adodc1.RecordSourse = “ select * from khb” 此部分由黄先恩完成设计关键代码以下:Private Sub Command3_Click(index As Integer) If Trim(Text3.Text) Then If Not IsDate(Trim(Text3.Text) Then MsgBox 出生日期错误,应为yyy-mm-dd型, vbOKOnly, 信息提醒 Text3.
10、Text SetFocus Exit Sub End If 此部分为规范日期格式 End Ifstr = If Trim(Text1.Text) Then If str = Then str = 姓名= + Trim(Text1.Text) + Else str = str + and 姓名= + Trim(Text1.Text) + End IfEnd If If Trim(Text3.Text) Then If str = Then str = 出生日期= + Format(Trim(Text3.Text), yyyy.mm.dd) + Else str = str + and 出生日期=
11、 + Format(Trim(Text3.Text), yyyy.mm.dd) + End IfEnd If 将生日作为查询条件,方便在用户表中以select语句查找满足条件用户信息 If Option1.Value = True Then If str = Then str = 性别=男 Else str = str + and 性别=男 End IfElseIf Option2.Value = True Then If str = Then str = 性别=女 Else str = str + and 性别=女 End If 此为将性别作查询条件进行查找End IfEnd Sub 另外还
12、有很多其它条件输入,这里就不再列举系统用户设计关键代码以下:Private Sub Command1_Click() If Trim(Text1(0).Text) = Or Trim(Text1(1).Text) = Or Trim(Combo1.Text) = Then MsgBox 数据项不全,请重新设置, vbOKOnly, 信息提醒 Text1(0).Text.SetFocus Exit Sub End If If flag = i Then 添加操作 If setuser.Adodc1.Recordset.RecordCount 0 Then 源统计个数大于零 cond = 等级=
13、+ Trim(Text1(0).Text) + setuser.Adodc1.Recordset.MoveFirst 每次从头开始查找 setuser.Adodc1.Recordset.Find (cond) If Not setuser.Adodc1.Recordset.EOF() Then MsgBox 存在完全相同统计, vbOKOnly, 信息提醒 Text1(0).SetFocus Exit Sub End If 在此设计中,管理员只需在VB窗体中输入 End If 需要添加其它注册人信息,此代码能将信息 setuser.Adodc1.Recordset.AddNew 直接录入数据库
14、oper表中,过程以下 setuser.Adodc1.Recordset.Field(用户名) = Trim(Text1(0).Text) setuser.Adodc1.Recordset.Field(口令) = Val(Trim(Text1(1).Text) setuser.Adodc1.Recordset.Field(用户类型) = Trim(Combo1.Text) setuser.Adodc1.Recordset.Update recs = recs + 1 Else cond = 等级= + Trim(Text1(0).Text) + setuser.Adodc1.Recordset
15、.MoveFirst 每次从头开始查找 setuser.Adodc1.Recordset.Find (cond) If Not setuser.Adodc1.Recordset.EOF() And setuser.Adodc1.Recordset.absolution n Then MsgBox 存在完全相同统计, vbOKOnly, 信息提醒 setuser.Adodc1.Recordset.MoveFirst setuser.Adodc1.Recordset.Move (n - 1) Text1(0).SetFocus Exit Sub End If setuser.Adodc1.Reco
16、rdset.MoveFirst setuser.Adodc1.Recordset.Move (n - 1) setuser.Adodc1.Recordset.Field(用户名) = Trim(Text1(0).Text) setuser.Adodc1.Recordset.Field(口令) = Val(Trim(Text1(1).Text) setuser.Adodc1.Recordset.Field(用户类型) = Trim(Combo1.Text) setuser.Adodc1.Recordset.Update End If Unload Me End Sub Private Sub command2_click() Unload Me End Sub其它事件设计窗体上有两个事件过程load和activate,它们实施过程是,在开启窗体时先实施load(尽实施一次)事件过程,然后实施activate事件过程。edkh窗体中,load事件过程用于设置全局变量和初始化工作,而activate事件过程中包含数据刷新语句。七课程设计考评方法及评分方法 (略)