户籍管理系统设计.docx

上传人:b****6 文档编号:13588577 上传时间:2023-06-15 格式:DOCX 页数:38 大小:2.02MB
下载 相关 举报
户籍管理系统设计.docx_第1页
第1页 / 共38页
户籍管理系统设计.docx_第2页
第2页 / 共38页
户籍管理系统设计.docx_第3页
第3页 / 共38页
户籍管理系统设计.docx_第4页
第4页 / 共38页
户籍管理系统设计.docx_第5页
第5页 / 共38页
户籍管理系统设计.docx_第6页
第6页 / 共38页
户籍管理系统设计.docx_第7页
第7页 / 共38页
户籍管理系统设计.docx_第8页
第8页 / 共38页
户籍管理系统设计.docx_第9页
第9页 / 共38页
户籍管理系统设计.docx_第10页
第10页 / 共38页
户籍管理系统设计.docx_第11页
第11页 / 共38页
户籍管理系统设计.docx_第12页
第12页 / 共38页
户籍管理系统设计.docx_第13页
第13页 / 共38页
户籍管理系统设计.docx_第14页
第14页 / 共38页
户籍管理系统设计.docx_第15页
第15页 / 共38页
户籍管理系统设计.docx_第16页
第16页 / 共38页
户籍管理系统设计.docx_第17页
第17页 / 共38页
户籍管理系统设计.docx_第18页
第18页 / 共38页
户籍管理系统设计.docx_第19页
第19页 / 共38页
户籍管理系统设计.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

户籍管理系统设计.docx

《户籍管理系统设计.docx》由会员分享,可在线阅读,更多相关《户籍管理系统设计.docx(38页珍藏版)》请在冰点文库上搜索。

户籍管理系统设计.docx

户籍管理系统设计

课程设计说明书

 

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;

Vectorv=newVector();

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2