户籍管理系统设计.docx
- 文档编号:13588577
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:38
- 大小:2.02MB
户籍管理系统设计.docx
《户籍管理系统设计.docx》由会员分享,可在线阅读,更多相关《户籍管理系统设计.docx(38页珍藏版)》请在冰点文库上搜索。
户籍管理系统设计
课程设计说明书
1、研究背景
随着城市人口规模的扩大和公安部门对城市及农村人口管理工作规范性的逐渐增强,户籍管理工作的业务量急剧增大。
传统的手工方法,存在效率低、易出错等缺点,已经难以满足当前户籍管理工作的要求。
因此,结合当前日益成熟的计算机相关技术,开发一个专门针对户籍管理的系统已经非常必要了。
户籍管理信息系统是公安部门不可缺少的一部分,更是适应现代户籍制度并推动户籍管理走向科学化、规范化、自动化的必要条件。
该管理系统能够为用户提供充足的信息和快捷的查询手段,以帮助用户了解户籍工作的情况。
它大大改善了公安部门管理、查询户籍的基础工作环境,在一定程度上反映出户籍管理的现代化管理模式。
因此人口户籍管理信息系统的开发迫在眉睫。
2、需求分析
需求收集和分析是数据库设计的第一个阶段,这个阶段的一个重要而困难的任务是收集将来应用所涉及到的数据。
必须把所有可能用到数据都考虑进去,要确定基本数据、数据结构处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础,在仔细调查企业户籍管理系统的基础上,通过与本单位户籍管理人员、相关领导的多次沟通与测试,得到本系统所处理的数据流程。
如图2.1
图2.1数据流程图
确定了户籍管理系统需要实现的功能:
(1)实现户口迁入、落户。
(2)迁出。
(3)注销录入的全过程。
(4)查询和维护户籍信息的档案数据。
(5)实现户口信息的保存
3、系统概要设计
3.1系统的各功能模块
通过系统功能需求分析,得到如图所示的系统功能模块图。
如图3.1.1。
图3.1.1系统功能模块图
3.2系统的数据库设计
3.2.1E——R图。
图3.2.1
图3.2.1E——R图
3.2.2数据表设计
表1户口信息表HK
列名
说明
数据类型
约束
Hno
户号
定长字符串,长度为20
非空,主键
Hname
户主姓名
定长字符串,长度为20
非空
ID
身份证号
定长字符串,长度为20
非空
Nation
民族
定长字符串,长度为20
非空
Add
住址
不定长字符串,长度为20
非空
Indate
何时迁入
Datetime
非空
wherein
何地迁入
不定长字符串,长度为20
非空
Outdate
迁出日期
Datetime
可空
Whereout
迁往何地
不定长字符串,长度为20
可空
表2人口信息表RK
列名
说明
数据类型
约束
Rname
姓名
定长字符串,长度为20
非空
Rsex
性别
定长字符串,长度为2
非空
ID
身份证号
定长字符串,长度为20
非空,主键
Nation
民族
定长字符串,长度为20
非空
Province
籍贯
定长字符串,长度为20
非空
Birdate
出生日期
Datetime
非空
Birpace
出生地
不定长字符串,长度为20
可空
Address
住址
不定长字符串,长度为20
可空
表3管理员信息表GL
列名
说明
数据类型
约束
Name
姓名
定长字符串,长度为20
非空
Number
职工编号
定长字符串,长度为20
非空,主键
Sex
性别
定长字符串,长度为2
可空
Password
密码
不定长字符串,长度为20
非空
表4人口迁入信息表RIN
列名
说明
数据类型
约束
Hno
户号
定长字符串,长度为20
非空,主键
Relation
与户主关系
定长字符串,长度为20
非空
ID
身份证号
定长字符串,长度为20
非空,主键
Indata
何时迁入
Datetime
可空
wherein
迁入地
不定长字符串,长度为20
可空
Out
是否迁出
定长字符串,长度为20
可空
户号引用户口信息表,ID引用自人口信息表,两者均为外键
4、系统详细设计和实现
4.1连接数据库
publicclassDBOperation
{
privateConnectioncon;
publicConnectiongetConnection()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:
odbc:
HR");
}
catch(Exceptione)
{
e.printStackTrace();
}
returncon;
}
4.2登陆界面设计
输入用户名、密码:
privateJPanelgetJContentPane(){
if(jContentPane==null){
jLabel2=newJLabel();
jLabel2.setBounds(newRectangle(0,0,600,400));
//jLabel2.setIcon(newImageIcon(getClass().getResource("/DengLu.jpg")));
jLabel2.setText("");
jLabel1=newJLabel();
jLabel1.setBounds(newRectangle(167,198,58,23));
jLabel1.setText("密码:
");
jLabel=newJLabel();
jLabel.setBounds(newRectangle(167,158,58,23));
jLabel.setText("用户名:
");
jContentPane=newJPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButton(),null);
jContentPane.add(getJButton1(),null);
jContentPane.add(getJButton2(),null);
jContentPane.add(jLabel,null);
jContentPane.add(get用户名(),null);
jContentPane.add(get密码(),null);
jContentPane.add(jLabel1,null);
jContentPane.add(jLabel2,null);
}
returnjContentPane;
}
创建登陆按钮对象并创建事件,实现登陆功能:
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(169,227,70,23));
jButton.setMnemonic(KeyEvent.VK_ENTER);
jButton.setToolTipText("输入用户名、密码登陆");
jButton.setText("登录");
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
Stringuser=用户名.getText();
Stringpassword=newString(密码.getPassword());
if(user.equals(""))
JOptionPane.showMessageDialog(null,"用户名不能为空!
");
else
{
if(db.CheckUser(user,password))
{
if(db.IsAdmin(user))
{
MainMenum=newMainMenu();
m.setVisible(true);
setVisible(false);
}
else
{
MainMenuUserm=newMainMenuUser();
m.setVisible(true);
setVisible(false);
}
}
else
{
JOptionPane.showMessageDialog(null,"用户名不存在或密码错误!
"+"剩余次数:
"+(2-i));
i++;
if(i>=3)
{
JOptionPane.showMessageDialog(null,"用户名密码尝试次数已达3次,系统将退出!
");
System.exit(0);
}
}
}
}
});
}
returnjButton;
}
登陆界面,如图4.2.1
图4.2.1
创建退出按钮,实现退出功能:
privateJButtongetJButton1(){
if(jButton1==null){
jButton1=newJButton();
jButton1.setBounds(newRectangle(263,227,70,23));
jButton1.setToolTipText("退出系统");
jButton1.setText("退出");
jButton1.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
System.exit(0);
}
});
}
returnjButton1;
}
4.3用户管理模块设计
注册用户:
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(150,211,78,27));
jButton.setText("注册");
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
Stringuser=用户名.getText();
Stringpassword1=newString(密码.getPassword());
Stringpassword2=newString(确认密码.getPassword());
if(user.equals(""))
{
JOptionPane.showMessageDialog(null,"用户名不能为空!
");
}
else
{
判断两次密码输入的是否相同
if(password1.equals(password2))
{
判断用户名是否存在
if(db.UserExist(user))
{
JOptionPane.showMessageDialog(null,"该用户名已被使用!
");
}
符合天剑则注册用户
else
{
db.AddUser(user,password1);
JOptionPane.showMessageDialog(null,"注册成功");
用户名.setText("");
密码.setText("");
确认密码.setText("");
}
}
else
JOptionPane.showMessageDialog(null,"两次输入的密码不一样!
");
}
}
});
}
returnjButton;
}
查询用户名:
privateJTextFieldget用户名(){
if(用户名==null){
用户名=newJTextField();
用户名.setBounds(newRectangle(446,174,145,25));
}
return用户名;
}
删除用户:
创建按钮事件
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(351,269,90,30));
jButton.setToolTipText("单击确定删除");
jButton.setText("确定删除");
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
得到用户名、密码
Stringuser=用户名.getText();
Stringpassword=newString(密码.getPassword());
if(user.equals(""))
JOptionPane.showMessageDialog(null,"用户名不能为空!
");
else
{
判断是否存在用户
if(db.UserExist(user))
{
判断密码是否正确
if(db.Admin(password))
{
判断是否是管理员
if(db.IsAdmin(user))
JOptionPane.showMessageDialog(null,"无法删除管理员!
!
");
符合条件则删除用户
else
{
db.Deluser(user);
JOptionPane.showMessageDialog(null,"删除成功!
!
");
用户名.setText("");
密码.setText("");
}
}
else
{
JOptionPane.showMessageDialog(null,"管理员密码错误!
");
}
}
else
{
JOptionPane.showMessageDialog(null,"用户名不存在!
");
}
}
}
});
}
returnjButton;
}
查询用户:
publicVectorSearchu()
{
Connectioncon=null;
PreparedStatementps=null;
ResultSetrs=null;
Vector
Stringsqlquery="executepro_Search_User";
try
{
con=getConnection();
ps=con.prepareStatement(sqlquery);
rs=ps.executeQuery();
while(rs.next())
{
v.add(rs.getString("users"));
v.add(rs.getString("type"));
}
ps.close();
con.close();
}catch(SQLExceptione){e.printStackTrace();}
returnv;
}
4.4户口管理功能模块
添加户口,如图4.4.1:
数据库操作:
publicvoidAddHuKou(Stringhuhao,Stringhuzhuname,Stringselect,Stringhuzhi,Stringqianyi,Stringdengji)
{
Connectioncon=null;
PreparedStatementps=null;
Stringsqlquery="pro_Add_Hukou'"+huhao+"','"+huzhuname+"','"+select+"','"+
huzhi+"','"+qianyi+"','"+dengji+"'";
try
{
con=getConnection();
ps=con.prepareStatement(sqlquery);
ps.executeUpdate();
ps.close();
con.close();
}catch(SQLExceptione){e.printStackTrace();}
}
添加户口界面:
privateJMenuItemget添加户口(){
if(添加户口==null){
添加户口=newJMenuItem("添加户口信息");
添加户口.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
hidepane();
addh=newAddH();
jContentPane.add(addh,null);
addh.setVisible(true);
setTitle("添加户口信息");
addh.setBounds(newRectangle(0,0,900,600));
}
});
}
return添加户口;
}
图4.4.1
删除户口,如图4.4.2:
数据库操作:
publicvoidDelhukou(Stringhuhao)
{
Connectioncon=null;
PreparedStatementps=null;
try
{
Stringsqlquery="pro_Delhukou'"+huhao+"'";
con=getConnection();
ps=con.prepareStatement(sqlquery);
ps.executeUpdate();
ps.close();
con.close();
}catch(SQLExceptione){e.printStackTrace();}
}
界面设计:
privateJMenuItemget删除户口(){
if(删除户口==null){
删除户口=newJMenuItem("删除户口信息");
删除户口.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
hidepane();
delh=newDelH();
jContentPane.add(delh,null);
delh.setVisible(true);
setTitle("删除户口信息");
delh.setBounds(newRectangle(0,0,900,600));
}
});
}
return删除户口;
}
图4.4.2
修改户口信息,如图4.4.3:
数据库操作
publicvoidChangeHuKou(Stringhuhao,Stringhuzhuname,Stringhubie,Stringhuzhi,Stringqianyi,Stringdengji)
{
Connectioncon=null;
PreparedStatementps=null;
Stringsqlquery="pro_Change_Hukou'"+huhao+"','"+huzhuname+"','"+hubie+"','"+huzhi+"','"+
qianyi+"','"+dengji+"'";
try
{
con=getConnection();
ps=con.prepareStateme
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 户籍管理 系统 设计