1、软件工程实验报告 u 功能需求分析 系统涉及查询管理、户口管理、人员管理三大某些。 实现基本功能有: 1. 实现户籍查询,可分为普通顾客查询和内部管理员查询,普通顾客只能查询基本信息,如身份证号、出生日期等。 2. 实现户籍修改,涉及户口修改以及个人信息修改 。 3. 实现人员管理,涉及人员新建和迁入迁出。 4. 关于注销管理,涉及人员注销和户口注销,同步需注明注销因素、证明材料等。 功能实现阐明 A. 登录模块 在进行系统登陆过程中,登陆模块将调用数据库里顾客数据表,并对管理员和密码进行验证,只有输入了对的管理员名和密码后,系统登陆才会成功。 在登陆模块中,
2、对系统尝试登陆次数进行了限制,禁止顾客无终结进行系统登陆尝试,在本系统中,当顾客对系统三次登陆失败后,系统将自动禁止登陆,退出登陆模块。并在输入了错误或者是不存在管理员名和密码时,系统会给出出错信息提示,指明登陆过程中错误输入或错误操作,以便顾客进行对的登陆。 B. 修改密码 有有关证明顾客可以由管理员协助修改密码,当两次输入密码都一致时,数据库中记录将更新在户口表中。 注意:本模块有如下几点注意,密码拟定后,与否能对的读取存储顾客名和密码数据表;如果管理员名和密码对的,与否能进入系统主窗体;当输入管理员名或密码错误时,与否能弹出信息框,给管理员提示。 C. 添加新建顾客 管理员需要
3、两次输入密码,用来保证输入密码对的,进入主界面,管理员选取人员模块中新建,输入信息,系统将一方面查询数据库中与顾客相似记录,如果有相似记录将提示顾客重新输入有关信息。当拟定数据库中没有相似记录,并且两次输入密码一致时将把该条记录添加到数据库中。 同样,如果从户口模块进入,则新建户口信息添加到数据库中。 注意:本系统户口信息与个人顾客信息是分开,实现时,需要在界面中链接有关个人信息表加以完整资料,并能互相查阅关于信息。 D. 修改 修改功能只能由管理员进入模块实现,顾客可以出示有效证明由管理员实行修改,修改后信息由系统存储在原表中。 E. 迁入 由管理员将添加迁入人员信息及其户口信息
4、添加到数据库中,如果是将迁入人员添加到本地已有户口中,则进入添加顾客模块中即可实现。 F. 迁出 顾客迁出后需要隐藏该户或是个人信息,涉及已注销信息、注明迁往地及迁出因素。 G. 注销 顾客出示证明,由管理员注销个人或是户口信息,注销户口时,将该户号上所有人员都一并注销,同步,记录有关信息并仍存储在原表中。 数据流程图: 顶层数据流图: 顾客 新建
5、 查询 权限查询 户籍信息 修改 操作员 迁出信息 户籍管理系统 迁出 注销 注销信息 第一层数据流图 1 查询管理 顾客 5 产生户籍 2 户籍管理 姓名
6、 可查询 身份证号 信息 户籍信息 管理员 3 流动人员管理 迁出信息 4 注销管理 注销信息 第二层数据流图: 1.1 查询个人 人口信息 姓名、身份证 管理员 1.3 浏览 户号 查询成果 1.2 查询户口 户口信息 管理员 2.2 修改户口 2.1 新建户口 2.3 新建人口 2.4 修改人口 3.1 户口迁出 3.2 人口迁出 户口信息 人注销信息 人迁出信息 户注
7、销信息 户迁出信息 人口信息 4.1 人口注销 4.2 户口注销 5.2 生成 个人 户口 5.1 生成 户主 户口 u 数据模型分析与设计 1)户口信息—— 户口信息 何地迁入 迁入日期 登记日期 住址 户号 户主姓名 名 户别 注销状况 与否已迁出 2)户迁出信息 迁出日期 户迁出信息 迁往何地 户主姓名 户号 人迁出信息 身份证号 迁出日期 户号 姓名 迁往何地 3)人迁出信息 4)人口信息: 人口信息 出生日期 迁出时间 出生地 与户主关系 性
8、别 文化限度 民族 籍贯 婚姻状况 工作单位 职业 户号 迁入日期 与否迁出 姓名 身份证号 数据库设计: 户籍系统包括信息重要有6类:户口信息、人口信息、户迁出信息、人迁出信息、户注销信息和人注销信息。 1. 户口信息表Hinfor 字段名 意义 字段类型 字段大小 可否为空 核心字 Hno 户号 Char 20 Not null 是 Hname 户主姓名 Varchar 20 Not null Adr 住址 Varchar 50 Null regdata 登记日期 datetime
9、Null indata 迁入日期 datetime Null wherein 何地迁入 varchar 50 Null orout 与否迁出 Char 2 Null disa 注销状况 Char 2 Null 2. 人口信息表perinfor 字段名 意义 字段类型 字段大小 可否为空 核心字 Name 姓名 Varchar 20 Not null Sex 性别 Char 2 Not null relation 与户主关系 Varchar 20 Not null Na
10、tion 民族 Varchar 20 Not null province 籍贯 Char 2 Not null Bir 出生日期 Datetime Null Place 出生地 Varchar 50 Null wenhua 文化限度 varchar 10 Null Marry 婚姻状况 Char 4 Not null ID 身份证号 Varchar 50 Null 是 Job 职业 Varchar 20 Null Wadr 工作单位 Varchar 50 Null in
11、data 迁入日期 Datetime Null wherein 何地迁入 Varchar 50 Null orout 与否迁出 char 2 Null 3. 户迁出表Hout 字段名 意义 字段类型 字段大小 可否为空 核心字 Number 户号 Varchar 20 Not null 是 Hname 户主姓名 Varchar 20 Not null outdata 迁出日期 Datetime Not null whereout 迁往何地 varchar 50 Not null
12、 4. 人迁出信息perout 字段名 意义 字段类型 字段大小 可否为空 核心字 humname 姓名 Varchar 20 Not null Number 户号 Varchar 20 Not null 是 ID 身份证号 Varchar 50 Not null 是 outdata 迁出日期 Datetime Not null whereout 迁往何地 varchar 50 Not null 5. 户注销信息Hdis 字段名 意义 字段类型 字段大小 与否为空 核心字 Number 户号 V
13、archar 20 Not null 是 Numname 户主姓名 varchar 10 Not null disadata 注销日期 datetime Not null reason 注销因素 Varchar 50 Not null prove 证明材料 Varchar 50 Not null 6. 人注销信息perdis 字段名 意义 字段类型 字段大小 与否为空 核心字 Name 姓名 Varchar 20 Not null Number 户号 varchar 10 Not null
14、 是 ID 身份证号 Varchar 50 是 disadata 注销日期 Datetime reason 注销因素 varchar 50 prove 证明材料 Varchar 50 Not null 7. 操作员信息operation 字段名 意义 字段类型 字段大小 与否为空 核心字 name 姓名 varchar 20 Not null code 编号 int 4 Not null 是 password 密码 char 12 Not null u 模块分析与设计
15、 户籍管理层次构造图: 界面 查询管理 户口管理 人员管理 迁入 管理 迁入 管理 修改户口 顾客 查询 操作员查询 户口迁出 户口注销 个人迁出 人员注销 迁入 新建 迁入 新建 修改户口 系统顾客管理模块 系统顾客模块重要实现: 顾客登陆;添加顾客;修改顾客密码。 功能:本模块重要功能是对顾客身份进行验证,只有系统合法顾客才干进入系统,并进行顾客管理,涉及添加顾客和修改顾客密码。 系统登录流程图 1、登陆系统实当代码: Option Explicit Private Sub Commcance
16、l_Click() End End Sub Private Sub Commok_Click() Dim username As String Dim password As String Dim local_db As String Dim Cnn As New ADODB.Connection Dim rst As New ADODB.Recordset If Text1.Text = "" Then MsgBox "请输入顾客名",,"警告" Text1.SetFocus Else If Text2.Text = "" Then MsgBox "请输入密码",
17、"警告" Text2.SetFocus End If If Text1.Text <> "" And Text2.Text <> "" Then Set Cnn = New ADODB.Connection Set rst = New ADODB.Recordset Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\data\db.mdb" + ";Persist Security Info=False;" '连接数据库 username = Trim(Text1.Text) pas
18、sword = Text2.Text local_db = "select 顾客名 from 顾客表" + _ " where 顾客表.顾客名=" + "'" + _ username + "'" rst.Open local_db,Cnn If Not (rst.BOF And rst.EOF) Then rst.Close local_db = "select 密码 from 顾客表" + _ " where 顾客表.顾客名=" + "'" + _ username + "'and" + _ " 顾客表.密码=" + "'" + password + "'" rst
19、Open local_db,Cnn If Not (rst.BOF And rst.EOF) Then userid = Text1.Text Unload frmdl If username = "admin" Then mainfrm.xitong.Enabled = True mainfrm.bdb.Enabled = True Else mainfrm.xitong.Enabled = False mainfrm.bdb.Enabled = False End If mainfrm.Show Else MsgBox "您输入密码不对的,请重新输入!",,"警
20、告" Text2.Text = "" Text2.SetFocus End If Else MsgBox "系统中无此顾客",,"警告" Text1.Text = "" Text1.SetFocus End If End If End If End Sub 2、添加顾客实当代码: 管理员需要两次输入密码,用来保证输入密码对的,顾客密码输入信息完毕,单击“拟定”,系统将一方面查询数据库中与该顾客名相似记录,如果有相似记录将提示顾客重新输入顾客名。当拟定数据库中没有相似记录,并且两次输入密码一致时将把该条记录添加到数据库中。 单击“取消”按钮将取消添加顾客操作。 Pr
21、ivate Sub Commcancel_Click() frmzj.Hide Text1.Text = "" Text2.Text = "" Text3.Text = "" mainfrm.guanli.Enabled = True mainfrm.chaxun.Enabled = True mainfrm.tongji.Enabled = True If userid = "admin" Then mainfrm.xitong.Enabled = True mainfrm.bdb.Enabled = True Else mainfrm.xitong.Enabled
22、 False mainfrm.bdb.Enabled = False End If GetStatus "<就绪>" End Sub Private Sub Commok_Click() Dim Cnn As New ADODB.Connection Dim ret As New ADODB.Recordset Dim local_db As String Dim username As String Dim password As String If Text1.Text = "" Then MsgBox "顾客名不能为空",,"警告" Text1.SetFocu
23、s Else If Text2.Text = "" Then MsgBox "密码不能为空",,"警告" Text2.SetFocus Else If Text3.Text = "" Then MsgBox "请确认密码",,"警告" Text3.SetFocus End If End If End If If Text2.Text = Text3.Text Then If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then username = Trim(Text1.Text) pass
24、word = Text2.Text Set Cnn = New ADODB.Connection Set ret = New ADODB.Recordset Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\data\db.mdb" + ";Persist Security Info=False;" '连接数据库 local_db = "select 顾客名 from 顾客表" + _ " where 顾客表.顾客名=" + "'" + username + "'" ret.Open lo
25、cal_db,Cnn If Not (ret.EOF And ret.BOF) Then ret.Close MsgBox "对不起,此顾客已存在",,"警告" Text1.SetFocus Else ret.Close local_db = "insert into 顾客表(顾客名,密码)" + _ " values(" + "'" + username + "'," + "'" + password + "')" Cnn.Execute local_db MsgBox "新顾客添加成功!",,"提示" frmzj.Hide Text1.Text = "" Text
26、2.Text = "" Text3.Text = "" mainfrm.guanli.Enabled = True mainfrm.chaxun.Enabled = True mainfrm.tongji.Enabled = True If userid = "admin" Then mainfrm.xitong.Enabled = True mainfrm.bdb.Enabled = True Else mainfrm.xitong.Enabled = False mainfrm.bdb.Enabled = False End If End If End If E
27、lse If Text2.Text <> "" And Text3.Text <> "" Then MsgBox "密码不一致,请重新输入",,"警告" Text3.SetFocus End If End If End Sub End Sub 3、查询修改实当代码: 查询户号;查询修改顾客信息; 查询修改人员信息;列表查询; 单击“查询修改”下拉菜单中“查询户号”选项即浮现“查询户号”对话框,操作员只需输入所要查询户口户主身份证号即可获得该户户号信息 单击“查询修改”下拉菜单中“查询修改户信息”选项,屏幕中会浮现“查询修改户口信息”对话框,操作员在该窗口中输入户号后单击
28、查询按钮,即可浮现“查询修改户信息”对话框,在此对话框中会显示关于该住户信息,并可对该住户户别及家庭住址等信息进行修改,所作修改可及时记入相应数据库系统中。 Option Explicit Private Sub Command1_Click() Unload frmuserlist mainfrm.guanli.Enabled = True mainfrm.chaxun.Enabled = True mainfrm.tongji.Enabled = True If userid = "admin" Then mainfrm.xitong.Enabled = True mainfrm.bdb.Enabled = True Else mainfrm.xitong.Enabled = False mainfrm.bdb.Enabled = False End If GetStatus "<就绪>" End Sub






