1、软件工程建设实验户籍管理系统设计文档软件工程实验报告 功能需求分析系统包括查询管理、户口管理、人员管理三大部分。实现的基本功能有:1. 实现户籍的查询,可分为普通用户查询和内部管理员的查询,普通用户只能查询基本信息,如身份证号、出生日期等。2. 实现户籍的修改,包括户口的修改以及个人信息的修改 。3. 实现人员管理,包括人员的新建和迁入迁出。4. 关于注销管理,包括人员注销和户口注销,同时需注明注销原因、证明材料等。功能实现说明A. 登录模块在进行系统登陆过程中,登陆模块将调用数据库里的用户数据表,并对管理员和密码进行验证,只有输入了正确的管理员名和密码后,系统登陆才会成功。 在登陆模块中,对
2、系统的尝试登陆次数进行了限制,禁止用户无终止的进行系统登陆尝试,在本系统中,当用户对系统的三次登陆失败后,系统将自动禁止登陆,退出登陆模块。并在输入了错误的或者是不存在的管理员名和密码时,系统会给出出错信息提示,指明登陆过程中的错误输入或错误操作,以便用户进行正确的登陆。B. 修改密码有相关证明的用户可以由管理员帮助修改密码,当两次输入密码都一致时,数据库中记录将更新在户口表中。注意:本模块有如下几点注意,密码确定后,是否能正确读取存储用户名和密码的数据表;如果管理员名和密码正确,是否能进入系统主窗体;当输入管理员名或密码错误时,是否能弹出信息框,给管理员提示。C. 添加新建用户管理员需要两次
3、输入密码,用来确保输入密码的正确,进入主界面,管理员选择人员模块中的新建,输入信息,系统将首先查询数据库中与用户相同的记录,如果有相同记录将提示用户重新输入相关信息。当确定数据库中没有相同的记录,并且两次输入密码一致时将把该条记录添加到数据库中。同样,如果从户口模块进入,则新建的户口信息添加到数据库中。注意:本系统的户口信息与个人用户信息是分开的,实现时,需要在界面中链接相关的个人信息表加以完整资料,并能相互查阅有关的信息。D. 修改修改功能只能由管理员进入模块实现,用户可以出示有效证明由管理员实施修改,修改后的信息由系统存储在原表中。E. 迁入由管理员将添加的迁入人员信息及其户口信息添加到数
4、据库中,如果是将迁入人员添加到本地已有户口中,则进入添加用户模块中即可实现。F. 迁出用户迁出后需要隐藏该户或是个人的信息,包括已注销的信息、注明迁往地及迁出原因。G. 注销用户出示证明,由管理员注销个人或是户口信息,注销户口时,将该户号上的所有人员都一并注销,同时,记录相关信息并仍存储在原表中。数据流程图:顶层数据流图:用户 新建 查询 权限查询 户籍信息修改 操作员 迁出信息户籍管理系统 迁出 注销 注销信息第一层数据流图1查询管理用户5产生户籍2户籍管理姓名 可查询身份证号 信息户籍信息管理员3流动人员管理迁出信息4注销管理注销信息第二层数据流图:11查询个人人口信息 姓名、身份证管理员
5、13浏览 户号 查询结果12查询户口户口信息 数据模型分析与设计1)户口信息4)人口信息:数据库设计:户籍系统包含信息主要有6类:户口信息、人口信息、户迁出信息、人迁出信息、户注销信息和人注销信息。1. 户口信息表Hinfor字段名意义字段类型字段大小可否为空关键字Hno户号Char20Not null是Hname户主姓名Varchar20Not nullAdr住址Varchar50Nullregdata登记日期datetimeNullindata迁入日期datetimeNullwherein何地迁入varchar50Nullorout是否迁出Char2Nulldisa注销情况Char2Nul
6、l2. 人口信息表perinfor字段名意义字段类型字段大小可否为空关键字Name姓名Varchar20Not nullSex性别Char2Not nullrelation与户主关系 Varchar20Not nullNation民族Varchar20Not nullprovince籍贯Char2Not nullBir出生日期DatetimeNullPlace出生地Varchar50Nullwenhua文化程度varchar10NullMarry婚姻状况Char4Not nullID身份证号Varchar50Null是Job职业Varchar20NullWadr工作单位Varchar50Nul
7、lindata迁入日期DatetimeNullwherein何地迁入Varchar50Nullorout是否迁出char2Null3. 户迁出表Hout字段名意义字段类型字段大小可否为空关键字Number户号Varchar20Not null是Hname户主姓名Varchar20Not nulloutdata迁出日期DatetimeNot nullwhereout迁往何地varchar50Not null4. 人迁出信息perout字段名意义字段类型字段大小可否为空关键字humname姓名Varchar20Not nullNumber户号Varchar20Not null是ID身份证号Varc
8、har50Not null是outdata迁出日期DatetimeNot nullwhereout迁往何地varchar50Not null5. 户注销信息Hdis字段名意义字段类型字段大小是否为空关键字Number户号Varchar20Not null是Numname户主姓名varchar10Not nulldisadata注销日期datetimeNot nullreason注销原因Varchar50Not nullprove证明材料Varchar50Not null6. 人注销信息perdis字段名意义字段类型字段大小是否为空关键字Name姓名Varchar20Not nullNumber
9、户号varchar10Not null是ID身份证号Varchar50是disadata注销日期Datetimereason注销原因varchar50prove证明材料Varchar50Not null7. 操作员信息operation字段名意义字段类型字段大小是否为空关键字name姓名varchar20Not nullcode编号int4Not null是password密码char12Not null 模块分析与设计:户籍管理层次结构图:系统用户管理模块系统用户模块主要实现:用户登陆;添加用户;修改用户密码。功能:本模块的主要功能是对用户身份进行验证,只有系统的合法用户才能进入系统,并进行
10、用户管理,包括添加用户和修改用户密码。系统登录流程图1、登陆系统实现代码:Option ExplicitPrivate Sub Commcancel_Click()EndEnd SubPrivate Sub Commok_Click()Dim username As StringDim password As StringDim local_db As StringDim Cnn As New ADODB.ConnectionDim rst As New ADODB.RecordsetIf Text1.Text = ThenMsgBox 请输入用户名, , 警告Text1.SetFocusEl
11、seIf Text2.Text = ThenMsgBox 请输入密码, , 警告Text2.SetFocusEnd IfIf Text1.Text And Text2.Text ThenSet Cnn = New ADODB.ConnectionSet rst = New ADODB.RecordsetCnn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + App.Path & datadb.mdb + ;Persist Security Info=False; 连接数据库username = Trim(Text1.Text)passw
12、ord = Text2.Textlocal_db = select 用户名 from 用户表 + _ where 用户表.用户名= + + _username + rst.Open local_db, CnnIf Not (rst.BOF And rst.EOF) Thenrst.Closelocal_db = select 密码 from 用户表 + _ where 用户表.用户名= + + _ username + and + _ 用户表.密码= + + password + rst.Open local_db, CnnIf Not (rst.BOF And rst.EOF) Thenus
13、erid = Text1.TextUnload frmdlIf username = admin Thenmainfrm.xitong.Enabled = Truemainfrm.bdb.Enabled = TrueElsemainfrm.xitong.Enabled = Falsemainfrm.bdb.Enabled = FalseEnd Ifmainfrm.ShowElseMsgBox 您输入的密码不正确,请重新输入!, , 警告Text2.Text = Text2.SetFocusEnd IfElseMsgBox 系统中无此用户, , 警告Text1.Text = Text1.SetF
14、ocusEnd IfEnd IfEnd IfEnd Sub2、添加用户实现代码:管理员需要两次输入密码,用来确保输入密码的正确,用户密码输入信息完毕,单击“确定”,系统将首先查询数据库中与该用户名相同的记录,如果有相同记录将提示用户重新输入用户名。当确定数据库中没有相同的记录,并且两次输入密码一致时将把该条记录添加到数据库中。单击“取消”按钮将取消添加用户的操作。Private Sub Commcancel_Click()frmzj.HideText1.Text = Text2.Text = Text3.Text = mainfrm.guanli.Enabled = Truemainfrm.c
15、haxun.Enabled = Truemainfrm.tongji.Enabled = TrueIf userid = admin Thenmainfrm.xitong.Enabled = Truemainfrm.bdb.Enabled = TrueElsemainfrm.xitong.Enabled = Falsemainfrm.bdb.Enabled = FalseEnd IfGetStatus End SubPrivate Sub Commok_Click()Dim Cnn As New ADODB.ConnectionDim ret As New ADODB.RecordsetDim
16、 local_db As StringDim username As StringDim password As StringIf Text1.Text = ThenMsgBox 用户名不能为空, , 警告Text1.SetFocusElseIf Text2.Text = ThenMsgBox 密码不能为空, , 警告Text2.SetFocusElseIf Text3.Text = ThenMsgBox 请确认密码, , 警告Text3.SetFocusEnd IfEnd IfEnd IfIf Text2.Text = Text3.Text ThenIf Text1.Text And Tex
17、t2.Text And Text3.Text Thenusername = Trim(Text1.Text)password = Text2.TextSet Cnn = New ADODB.ConnectionSet ret = New ADODB.RecordsetCnn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + App.Path & datadb.mdb + ;Persist Security Info=False; 连接数据库local_db = select 用户名 from 用户表 + _ where 用户表.用户名=
18、+ + username + ret.Open local_db, CnnIf Not (ret.EOF And ret.BOF) Thenret.CloseMsgBox 对不起,此用户已存在, , 警告Text1.SetFocusElseret.Closelocal_db = insert into 用户表(用户名,密码) + _ values( + + username + , + + password + )Cnn.Execute local_dbMsgBox 新用户添加成功!, , 提示frmzj.HideText1.Text = Text2.Text = Text3.Text = m
19、ainfrm.guanli.Enabled = Truemainfrm.chaxun.Enabled = Truemainfrm.tongji.Enabled = TrueIf userid = admin Thenmainfrm.xitong.Enabled = Truemainfrm.bdb.Enabled = TrueElsemainfrm.xitong.Enabled = Falsemainfrm.bdb.Enabled = FalseEnd IfEnd IfEnd IfElseIf Text2.Text And Text3.Text ThenMsgBox 密码不一致,请重新输入, ,
20、 警告Text3.SetFocusEnd IfEnd IfEnd SubEnd Sub3、查询修改实现代码:查询户号;查询修改用户信息;查询修改人员信息;列表查询;单击“查询修改”下拉菜单中的“查询户号”选项即出现“查询户号”对话框,操作员只需输入所要查询户口的户主身份证号即可获得该户的户号信息单击“查询修改”下拉菜单中的“查询修改户信息”选项,屏幕中会出现“查询修改户口信息”对话框,操作员在该窗口中输入户号后单击查询按钮,即可出现“查询修改户信息”对话框,在此对话框中会显示关于该住户的信息,并可对该住户的户别及家庭住址等信息进行修改,所作修改可及时记入相应的数据库系统中。Option Exp
21、licitPrivate Sub Command1_Click()Unload frmuserlistmainfrm.guanli.Enabled = True mainfrm.chaxun.Enabled = Truemainfrm.tongji.Enabled = TrueIf userid = admin Thenmainfrm.xitong.Enabled = Truemainfrm.bdb.Enabled = TrueElsemainfrm.xitong.Enabled = Falsemainfrm.bdb.Enabled = FalseEnd IfGetStatus End Sub