《客户信息管理系统课程设计(非论文).docx》由会员分享,可在线阅读,更多相关《客户信息管理系统课程设计(非论文).docx(8页珍藏版)》请在三一办公上搜索。
1、数据库及其应用 课程设计报告客户信息管理系统指导老师:报告撰写: 一、设计的主要目的1. 通过实践,使学生建立对数据库设计的认知; 2. 通过对某小型信息系统的数据库的设计,使学生掌握数据库设计的主要步骤和方法,提升学生解决实际问题的能力; 3. 使学生学会在一个实际的RDBMS软件平台上创建数据库; 4. 培养学生的团队合作精神。 二、主要内容和要求 1. 根据所选择题目,进行调查分析 2. 在调查分析的基础上,进行数据库设计 3. 在SQLServer2000上创建数据库,并结合VB 6.0实现设计结果 4. 撰写数据库设计各个阶段的详细设计报告 5. 写出收获和体会,包括以解决和尚未解决
2、的问题,进一步完善的设想与建议 三、设计组织安排 设计时间: 设计班级:设计分组: 设计报告提交: 四、成员情况 五、数据库分析与设计需求说明要实现一个客户信息管理系统,在此系统中只涉及到对客户和管理员两个实体的管理,此系统要求能够记录客户的基本信息和信息的查询。通过对客户的具体数据的管理,这样能够更好地实现任何企业及活动单位VIP会员的加入并确保其身份的真实、安全性。其系统的具体要求如下: 1.客户基本信息的录入、添加或删去2.对客户基本信息任意条件查找3.客户基本信息表的打印4.系统用户的设置5.系统初始化数据库结构设计(1)概念结构设计现在对上述需求做进一步的分析,产生概念结构设计的ER
3、模型。由于这个系统比较简单,因此就采用自顶向下的设计方法,就是首先确定系统的核心活动:查询功能。对于管理员和客户之间,便是通过查询发生联系的。至此,本系统包含的实体有:客户用于描述一名客户的基本信息,以姓名来标识管理员用于描述一名管理员的基本信息,以用户名来标识由于一名管理员能查找多名客户信息,并且一名客户信息能被多个管理员查找。因此,管理员和客户之间的联系是多对多的。其基本ER模型如下图:(2)逻辑结构设计根据转换规则,这个ER模型转换的关系模式为:客户(姓名,性别,生日,年龄,手机号码,职务,所在单位,家庭住址,固定电话,兴趣爱好)管理员(用户名、管理级别)最后根据关系模式建立相应的kh表
4、和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 = e
5、xesql(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 IfElse userlevel = tram(mrc.Fields(级别) mrc.Close Unloa
6、d Me main.Show vbModalEnd IfEnd Sub其中有不满足登录条件重新登录,失败三次退出系统的设计登录后即进入主菜单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
7、“查询客户按钮”连接qukh查询窗体End SubPrivate Sub Command3_Click() setuser.Show vbModalEnd Sub 以下为“系统初始化”设计Private Sub Command4_Click() If MsgBox(本功能要清除系统中所有的数据,真的要初始化吗?, vbYesNo, 确认初始化操作) = vbYes Then Call deldata(khb) 清除客户表中全部信息 Call deldata(oper) 清除oper表中全部信息 MsgBox 系统初始化完毕,下次只能显示以1234/1234(用户名/口令)进入本系统, vbOK
8、Only, 信息提示 End IfEnd SubPrivate Sub Command5_Click() Unload MeEnd Sub编辑窗体设计以客户表为例进行说明,为了编辑其记录,设计了edkh(编辑客户)窗体,在DataGrid中显示所有以输入的客户记录。用户可以通过“设置记录”框查找相应的客户记录,然后单击“修改”或“删除”按钮,对客户记录进行修改或删除的操作,或单击“添加”按钮输入新的客户记录。点击“添加会员” 此部分由李健完成设计任意条件查询代码设计以qukh表为例,用户输入的客户部分信息对客户进行查找。只需在qukh窗体中输入个别通过构造条件表达式,实现在VB中输入的数据信息
9、由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)
10、 Then MsgBox 出生日期错误,应为yyy-mm-dd型, vbOKOnly, 信息提示 Text3.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(Tri
11、m(Text3.Text), yyyy.mm.dd) + Else str = str + and 出生日期= + 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
12、 = str + and 性别=女 End If 此为将性别作查询条件进行查找End IfEnd 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
13、.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 需
14、要添加的其它注册人信息,此代码能将信息 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
15、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 (
16、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事件过程中包含数据刷新语句。七课程设计的考核方式及评分方法 (略)