户籍管理系统设计.docx

上传人:b****6 文档编号:7306308 上传时间:2023-01-22 格式:DOCX 页数:22 大小:1.56MB
下载 相关 举报
户籍管理系统设计.docx_第1页
第1页 / 共22页
户籍管理系统设计.docx_第2页
第2页 / 共22页
户籍管理系统设计.docx_第3页
第3页 / 共22页
户籍管理系统设计.docx_第4页
第4页 / 共22页
户籍管理系统设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

户籍管理系统设计.docx

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

户籍管理系统设计.docx

户籍管理系统设计

目录

1绪论3

1.1项目开发背景3

1.2项目开发目的3

2开发平台简介3

2.1JBuilder20053

2.2Java语言的特点3

2.3SQLServer20003

3系统分析3

3.1需求分析3

3.1.1系统功能设计分析3

3.1.2主要功能3

3.2系统设计3

3.2.1数据库设计3

3.2.2系统功能结构图3

4系统的具体实现3

4.1登陆3

4.2主窗体3

4.3精确查询3

4.4模糊查询3

4.5开户管理3

4.6删除人物3

4.7新增人口登记3

4.8修改户籍信息3

4.9注册用户3

4.10修改用户密码3

结论3

致谢3

参考文献3

绪论

随着时代的发展、科学的进步,信息时代已经遍布全球,计算机已广泛地深入各行各业,起着越来越巨大的作用。

它运算速度快,体积小,可靠性高,通用性与灵活性强,以及很高的性能价格比等特点,把人们带入了一个一切都离不开计算机的新时代。

本文介绍的系统是户籍管理系统,包括登陆界面,户籍管理主界面,开户登记界面,新增人口界面,删除人口界面,修改户籍信息界面,用户管理界面,分别有增、删、查、改的功能。

1.1项目开发背景

近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,随着人口的不断增长,户籍管理部门也应得到良好的发展,利用现代化管理工具使其变成半自动化必定会提高其工作效率。

1.2项目开发目的

户籍管理系统是针对户籍管理部门而开发的,为其改变人口信息仍需要手动处理和查询,个人的信息在处理中丢失或者不明确等现象而设计的。

通过这个户籍管理系统,可以让户籍管理部门提高工作质量和效率,从而达到更快捷、更准确、更方便的目的。

 

开发平台简介

此系统的开发平台是WindowsXP,前台使用JBuilder2005开发,后台数据库为SQLServer2000,下面对使用的软件做一下简介。

1.3JBuilder2005

JBuilder是Borland公司开发的针对java的开发工具,使用JBuilder将可以快速,有效的开发各类java应用,它使用的JDK与sun公司标准的JDK不同,它经过了较多的修改,以便开发人员能够像开发Delphi应用那样开发java应用。

JBuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。

用户可以自动地生成基于后端数据库表的EJBJava类,JBuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。

JBuilder能用Servlet和JSP开发和调试动态Web应用。

JBuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。

JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发。

1.4Java语言的特点

Java是目前最流行的软件开发语言之一,由SunMicrosystem公司推出,称为网络上的“世界语”。

Java适合开发基于多媒体、与平台无关、用面向对象的方法进行基于Internet、Intranet、Extranet的Applet和应用程序。

Java建立在C和C++基础之上,使熟悉C和C++的程序员能很方便地进行Java编程。

但Java摈弃了C和C++中许多不合理的内容。

它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。

用Java开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存在的其他编程语言。

Java提供了丰富的类库,能最大限度地利用网络。

Java可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。

1.5SQLServer2000

SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。

SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。

SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。

SQL不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。

它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。

系统分析

1.6需求分析

1.6.1系统功能设计分析

对应用系统项目的开发,首先要对程序要实现的功能和目标进行整体分析和规划,确保在后期开发中不会出现遗漏或重大缺陷。

因此在软件开发中,要严格按照软件工程的流程进行系统的分析和设计。

1.6.2主要功能

在本系统中主要包含以下功能模块:

1.登陆模块

该模块的功能主要是对用户的ID和密码进行审核,如果正确进入系统,否则提示密码错误,且分为两种权限:

一是普通用户,该用户只能浏览人口的户籍信息和修改自己的密码,而不能对户籍进行增加、删除、修改的功能;二是管理员,该用户可以完成整个系统的所有功能包括对户籍管理的增、删、查、改和对用户的管理。

2.主窗体

此模块将显示整个系统的总体功能以及菜单,可以使用户很容易适应本系统,也可以使用户很快捷的使用本系统。

3.户籍管理模块

该模块主要是实现对人口户籍的信息进行增、删、查、改的功能。

4.用户管理模块

此模块是完成对用户管理的增、删、查、改的功能。

1.7系统设计

1.7.1数据库设计

数据源名:

test,数据库名:

hj,共有3个数据表。

包括:

upeople表——用来存储帐号、密码及权限的记录。

(表3-1)

hjid表——用来存储户籍号、户籍类别、户主姓名及地址。

(表3-2)

hjxx表——用来存储户籍成员信息的表。

(表3-3)

表3-1upeople表

列名

数据类型

长度

说明

userid

char

10

用户ID(主键)

username

char

20

用户姓名(不可为空)

userpassword

char

20

密码(不可为空)

power

bit

1

权限*()

表3-2hjid表

列名

数据类型

长度

说明

户号

Int

4

主键

户别

char

20

户籍类别(不可为空)

户主姓名

char

10

不可为空

住址

varchar

50

不可为空

表3-3hjxx表

列名

数据类型

长度

说明

姓名

char

10

不可为空

户主或关系

char

10

不可为空

曾用名

char

10

允许为空

性别

char

4

不可为空

出生地

varchar

50

不可为空

民族

char

10

不可为空

籍贯

char

20

不可为空

出生日期

char

15

不可为空

续上表3-3hjxx表

列名

数据类型

长度

说明

其他住址

varchar

50

允许为空

宗教信仰

char

10

允许为空

身份证号

char

20

(主键)不可为空

身高

char

3

不可为空

血型

char

10

不可为空

文化程度

char

10

不可为空

婚姻状况

char

10

不可为空

兵役状况

char

10

允许为空

服务处所

char

50

允许为空

职业

char

10

不可为空

1.7.2系统功能结构图

图3-1系统功能结构图

系统的具体实现

1.8登陆

登陆窗体(Welcome)由标签、文本框、密码框以及按钮等控件组成。

图4-1登陆窗体

本系统分为两个权限,即:

管理员——本系统的管理者,能够进行所有操作,并且可以分配权限。

用户ID:

001,密码为:

111。

普通用户——屏蔽了系统的大部分功能,只能对登记和病历进行完全操作,其他功能只能够浏览。

用户ID:

002,密码为:

123。

输入用户ID、密码,单击“确定”后,如果用户ID和密码都正确会提示登陆成功并关闭本窗体显示主窗体,否则,提示信息:

用户名或密码错误请重新输入。

确定按钮代码如下:

dbconndb=newdbconn();

ResultSetrs=null;

Stringsql="";

Stringuid=jTextField1.getText();

Stringupassword=newString(jPasswordField1.getPassword());

booleanflag=false;

sql="select*fromupeoplewhereuserid='"+uid+

"'anduserpassword='"+upassword+"'";

try{

rs=db.Query(sql);

if(rs.next()){

flag=true;

id=jTextField1.getText();

N=rs.getString("username");

MYPOWER=rs.getInt(4);

}else{

JOptionPane.showMessageDialog(null,"用户/密码错误,请重新输入!

");

}

}catch(Exceptione2){

}

if(flag){

if(MYPOWER==1){

power="管理员";

…………//显示主窗体

}else{

…………//显示主窗体

}

}

db.close();

1.9主窗体

主窗体(MainUI)由菜单,标签组成。

图4-2主窗体

登陆成功后进入本窗体,根据不同身份会隐藏部分功能,为了更快捷的接受本系统,主窗体设有五个标签显示总体功能。

点击菜单会弹出相应窗体,相关代码如下:

Select1aa=newSelect1();

aa.setVisible(true);

aa.setSize(545,625);

intw=(WToolkit.getDefaultToolkit().getScreenSize().width-

aa.getWidth())/2;

inth=(WToolkit.getDefaultToolkit().getScreenSize().height-

aa.getHeight())/2;

aa.setLocation(w,h);

aa.validate();

1.10精确查询

精确查询(Select1)由标签、按钮、表格等控件组成。

图4-3精确查询窗体

精确查询(Select1)由标签、按钮、表格等控件组成。

单击查询按钮调用查询方法,相关代码如下:

publicvoidUpdateRecord(){

Vectorvec=newVector(1,1);

DefaultTableModelmodel=newDefaultTableModel();

JdbTablejdbTable1=newJdbTable(model);

tableScrollPane1.getViewport().add(jdbTable1);

model.addColumn("姓名");

model.addColumn("户主或关系");

……

dbconndb=newdbconn();

Stringa=jTextField1.getText();

Stringsql="";

if(jRadioButton1.isSelected()){

sql="select*fromhjxxwhere户号='"+a+"'";

}elseif(jRadioButton2.isSelected()){

sql="select*fromhjxxwhere身份证号='"+a+"'";

}

try{

ResultSetrs=db.Query(sql);

while(rs.next()){

vec=newVector();

vec.add(rs.getString("姓名"));

vec.add(rs.getString("户主或关系"));

……

model.addRow(vec);

}

}catch(Exceptionea){

ea.printStackTrace();

}

tableScrollPane1.getHorizontalScrollBar();

System.out.println(jdbTable1.getRowCount());

jdbTable1.setGridColor(Color.blue);

jdbTable1.setDragEnabled(true);

jdbTable1.setSelectionForeground(Color.red);

jdbTable1.setSelectionBackground(Color.green);

jdbTable1.setShowVerticalLines(true);

jdbTable1.setEditable(false);

jdbTable1.setAutoResizeMode(0);jdbTable1.setFont(newjava.awt.Font("Dialog",Font.PLAIN,14));

}

1.11模糊查询

模糊查询(Select2)由标签、按钮、表格等控件组成。

图4-2模糊查询窗体

本窗体功能实现同精确查询窗体类似,不做详细解释。

1.12开户管理

开户管理窗体(Addpeople)由标签、文本框、按钮、分页面板等控件组成。

图4-5开户管理窗体

进入主窗体后单击开户登记菜单可进入此窗体,通过该窗体可以对没有户口的成员进行开户操作。

登记按钮代码如下:

dbconndb=newdbconn();

Stringa=(String)jComboBox2.getSelectedItem();

Stringb=jTextField2.getText();

Stringsql="select姓名fromhjxxwhere户主或关系='"+a+"'and户号='"+b+"'";

ResultSetrs=null;

rs=db.Query(sql);

try{

if(rs.next()){

JOptionPane.showMessageDialog(null,"此关系人已经存在,请重新选择关系!

");

}

}catch(Exceptionee){

}

}

窗体初始化代码如下:

Addpeopleaa=newAddpeople();

aa.jTabbedPane1.setEnabledAt(1,false);

dbconndb=newdbconn();

ResultSetrs=null;

Stringsql="selectmax(户号)fromhjid";

rs=db.Query(sql);

intx;

try{

if(rs.next()){

x=rs.getInt

(1);

if(x<1000000){

x=1000000;

}else{

x=x+1;

}

aa.jTextField2.setText(""+x);

System.out.println(""+x);

}else{

x=1000000;

aa.jTextField2.setText(""+x);

System.out.println(""+x);

}

}catch(Exceptione3){

}

1.13删除人物

删除人物窗体(Dele)由标签、文本框、按钮、表格等控件组成。

图4-6删除人物窗体

进入主窗体后单击删除人物菜单进入此窗体,该窗体所完成的功能是删除人物,首先要先查询要删除的人物是否存在,如存在则可以删除,否则无法完成操作。

查询按钮代码如下:

dbconndb=newdbconn();

Stringa=jTextField1.getText();

Stringsql="select*fromhjxxwhere身份证号='"+a+"'";

ResultSetrs=null;

rs=db.Query(sql);

try{if(rs.next()){

this.queryDataSet1.close();

this.queryDataSet1.setQuery(newcom.borland.dx.sql.dataset.QueryDescriptor(

database1,sql,null,true,Load.ALL));

this.queryDataSet1.open();

jButton2.setEnabled(true);

}else{

JOptionPane.showMessageDialog(null,"此人不存在无法删除,请确认身份证信息是否正确!

");

}

}catch(Exceptionee){}

删除按钮代码如下:

this.queryDataSet1.close();

Stringa=jTextField1.getText();

Stringsql="select*fromhjxxwhere身份证号='"+a+"'and户主或关系='户主'";

dbconndb=newdbconn();

ResultSetrs=null;

rs=db.Query(sql);

try{

if(rs.next()){

JOptionPane.showMessageDialog(null,"此人身份为户主,请删除后为其户重新开户");

sql="deletefromhjidwhere户号=(select户号fromhjxxwhere身份证号='"+a+"'andhjid.户号=hjxx.户号)";

db.Update(sql);

this.queryDataSet1.setQuery(newcom.borland.dx.sql.dataset.QueryDescriptor(

database1,"select*fromhjxx",null,true,Load.ALL));

this.queryDataSet1.open();

}else{

sql="deletefromhjidwhere户号=(select户号fromhjxxwhere身份证号='"+a+"'andhjid.户号=hjxx.户号)";

db.Update(sql);

this.queryDataSet1.setQuery(newcom.borland.dx.sql.dataset.QueryDescriptor(

database1,"select*fromhjxx",null,true,Load.ALL));

this.queryDataSet1.open();

}

}catch(Exceptionee){

}

}

1.14新增人口登记

新增人口登记窗体(Addpeople2)由标签、文本框、按钮、分页面板等控件组成。

图4-7新增人口窗体

此窗体是对已有户籍的人员进行添加新成员,先查询到户籍是否存在,如存在则可以添加,否则无法完成此操作。

查询相关代码如下:

dbconndb=newdbconn();

ResultSetrs=null;

Stringsql="";

Stringa=jTextField2.getText();

if(a.equals("")){

JOptionPane.showMessageDialog(null,"户号不能为空,请重新输入!

");

}else{

sql="selecthjid.户号,户别,户主姓名,住址fromhjid,hjxxwherehjid.户号='"+

a+"'andhjxx.户主或关系='户主'";

rs=db.Query(sql);

try{

if(rs.next()){

jTextField18.setText(rs.getString("户别"));

jTextField1.setText(rs.getString("户主姓名"));

jTextField3.setText(rs.getString("住址"));

intz=JOptionPane.showConfirmDialog(null,

"请选择",

JOptionPane.YES_NO_OPTION,

JOptionPane.CLOSED_OPTION);

db.close();

if(z==JOptionPane.YES_OPTION){

jButton5.setEnabled(true);

}else{

jButton5.setEnabled(false);

}

}else{

JOptionPane.showMessageDialog(null,"对不起,户口不存在,请到添加界面为其开户!

");

}

}catch(Exceptionee){

}

}

1.15修改户籍信息

修改户籍信息窗体(Upd)由标签、文本框、按钮、下拉列表框等控件组成系统的具体实现。

图4-8修改户籍信息窗体

通过该窗体的查询、修改按钮可以对已有户籍人员的信息进行修改,先查询户籍信息是否存在才能修改,否则无法完成此操作。

查询按钮代码如下:

Stringa=jTextField1.getText();

dbconn

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

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1