资源描述
数据库及其应用Ⅱ 课程设计汇报
用户信息管理系统
指导老师:
汇报撰写:
一、设计关键目标
1. 经过实践,使学生建立对数据库设计认知;
2. 经过对某小型信息系统数据库设计,使学生掌握数据库设计关键步骤和方法,提升学生处理实际问题能力;
3. 使学生学会在一个实际RDBMS软件平台上创建数据库;
4. 培养学生团体合作精神。
二、关键内容和要求
1. 依据所选择题目,进行调查分析
2. 在调查分析基础上,进行数据库设计
3. 在SQL Server 上创建数据库,并结合VB 6.0实现设计结果
4. 撰写数据库设计各个阶段具体设计汇报
5. 写出收获和体会,包含以处理和还未处理问题,深入完善设想和提议
三、设计组织安排
设计时间:
设计班级:
设计分组:
设计汇报提交:
四、组员情况
五、数据库分析和设计
需求说明
要实现一个用户信息管理系统,在此系统中只包含到对用户和管理员两个实体管理,此系统要求能够统计用户基础信息和信息查询。经过对用户具体数据管理,这么能够愈加好地实现任何企业及活动单位VIP会员加入并确保其身份真实、安全性。其系统具体要求以下:
1.用户基础信息录入、添加或删去
2.对用户基础信息任意条件查找
3.用户基础信息表打印
4.系统用户设置
5.系统初始化
数据库结构设计
(1)概念结构设计
现在对上述需求做深入分析,产生概念结构设计E—R模型。因为这个系统比较简单,所以就采取自顶向下设计方法,就是首先确定系统关键活动:查询功效。对于管理员和用户之间,便是经过查询发生联络。至此,本系统包含实体有:
用户——用于描述一名用户基础信息,以姓名来标识
管理员——用于描述一名管理员基础信息,以用户名来标识
因为一名管理员能查找多名用户信息,而且一名用户信息能被多个管理员查找。所以,管理员和用户之间联络是多对多。
其基础E—R模型以下图:
(2)逻辑结构设计
依据转换规则,这个E—R模型转换关系模式为:
用户(姓名,性别,生日,年纪,手机号码,职务,所在单位,家庭住址,固定电话,爱好爱好)
管理员(用户名、管理等级)
最终依据关系模式建立对应kh表和oper表
(3)数据库行为设计
1. 安全设置:其管理员含有操作系统全部权限
2. 数据操作功效:包含对数据录入、删除、修改功效
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
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 If
Else
userlevel = tram(mrc.Fields("等级"))
mrc.Close
Unload Me
main.Show vbModal
End If
End Sub
其中有不满足登录条件重新登录,失败三次退出系统设计
登录后即进入主菜单
Private Sub Form_Load()
If userlevel <> "系统管理员" Then
Command3.Enabled = False
Command4.Enabled = False
End If
End Sub
Private Sub Command1_Click()
edkh.Show vbModal “编辑用户按钮”连接edkh编辑窗体
End Sub
Private Sub command2_click()
qukh.Show vbModal “查询用户按钮”连接qukh查询窗体
End Sub
Private Sub Command3_Click()
setuser.Show vbModal
End Sub
以下为“系统初始化”设计
Private Sub Command4_Click()
If MsgBox("本功效要清除系统中全部数据,真要初始化吗?", vbYesNo, "确定初始化操作") = vbYes Then
Call deldata("khb") 清除用户表中全部信息
Call deldata("oper") 清除oper表中全部信息
MsgBox "系统初始化完成,下次只能显示以1234/1234(用户名/口令)进入本系统", vbOKOnly, "信息提醒"
End If
End Sub
Private Sub Command5_Click()
Unload Me
End Sub
编辑窗体设计
以用户表为例进行说明,为了编辑其统计,设计了edkh(编辑用户)窗体,在DataGrid中显示全部以输入用户统计。用户能够经过“设置统计”框查找对应用户统计,然后单击“修改”或“删除”按钮,对用户统计进行修改或删除操作,或单击“添加”按钮输入新用户统计。
点击“添加会员”
此部分由李健完成设计
任意条件查询代码设计
以qukh表为例,用户输入用户部分信息对用户进行查找。只需在qukh窗体中输入部分经过结构条件表示式,实现在VB中输入数据信息由Ado连接到数据库中用户表进行查找,即
Adodc1.RecordSourse = “ select * 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.Text SetFocus
Exit Sub
End If 此部分为规范日期格式
End If
str = ""
If Trim(Text1.Text) <> "" Then
If str = "" Then
str = "姓名= '" + Trim(Text1.Text) + " '"
Else
str = str + "and 姓名='" + Trim(Text1.Text) + "'"
End If
End If
If Trim(Text3.Text) <> "" Then
If str = "" Then
str = "出生日期='" + Format(Trim(Text3.Text), "yyyy.mm.dd") + "'"
Else
str = str + " and 出生日期='" + Format(Trim(Text3.Text), "yyyy.mm.dd") + "'"
End If
End If 将生日作为查询条件,方便在用户表中以select语句查找满足条件用户信息
If Option1.Value = True Then
If str = "" Then
str = "性别='男'"
Else
str = str + "and 性别='男'"
End If
ElseIf Option2.Value = True Then
If str = "" Then
str = "性别='女'"
Else
str = str + "and 性别='女'"
End If 此为将性别作查询条件进行查找
End If
End Sub 另外还有很多其它条件输入,这里就不再列举
系统用户设计
关键代码以下:
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 = "等级='" + 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 直接录入数据库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.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.Recordset.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事件过程中包含数据刷新语句。
七.课程设计考评方法及评分方法 (略)
展开阅读全文