户籍管理系统设计 Java
户籍管理系统开发文档

户籍管理系统开发文档需求分析进过分析,户籍管理系统的需求分析如下:登陆系统分为游客登录和管理员登陆。
游客只有先通过注册才能登陆,登陆后可以进入户籍管理系统页面进行简单查询,简单查询通过按身份证查询和按姓名查询,查询结果不包含出生日期,身份证号码。
管理员通过登录页面,进入后台管理模块后,可以对所有户籍进行管理,包括户籍详细查询,户籍新建,户籍修改,户籍迁出迁入,户籍注销。
具体功能如下:1.详细查询:按姓名查询和按身份证查询两种,可以查看所有户籍信息;2.户籍新建:新建一个户籍,要求有姓名、性别、年龄、出生日期、家庭住址、身份证号等信息,其中16岁以下可以不具有身份证号。
3. 户籍修改:可修改的户籍信息包括姓名、家庭住址、身份证号。
注:姓名一经修改户籍信息中要增加一条曾用名的记录。
4. 户籍迁出迁入:对户籍进行迁出迁入登记,户籍的迁移必须保留历史信息,明确迁往那里或从那里迁入。
且时刻保留迁入迁出的最新信息。
5. 户籍注销:对户籍进行注销,必须有死亡证明书或其他特殊情况的证明材料,自动生成注销的相关信息记录,如注销日期、原因、证明材料的来历。
数据流图管理员信息库1.2通行证密码修改1.1 通行证验证通行证清单更新后通行证通行证通行证办理员 审核员1.1 通行证验证1.2 通行证修改2.1修改办理员通行证通行证审核员信息库通行证信息更新后通行证办理员信息库办理员清单办理员信息办理员办理员信息表数据字典:名字:户籍信息系统别名:信息系统描述:包括户籍新建、户籍修改、户籍迁移、户籍注销的户籍管理系统。
定义:户籍信息系统=户籍新建+户籍修改+户籍迁移+户籍注销+户籍查询位置:名字:户籍迁入迁出信息别名:迁入迁出描述: 用户迁入本地和迁出本地带来的信息更改定义:户籍迁入迁出=户籍信息+[迁入地址|迁出地址](1{字符}50)+[原迁入地址|原迁出地址](1{字符}50)位置: 户籍系统数据库修改系统名字:身份证号码别名:居民身份证号码描述:公民的唯一的不变的法定号码定义:身份证号=行政区划分代码(6{数字}6)+出生日期码(出生日期码=年+月+日)+顺序码(3{数字}3)+校验码([数字|字符])名字:出生日期码别名:出生日期描述:用户出生时的日期,包括年月日定义:出生日期码=年(19+2{数字}2)+月(月=[0+非零数字|10|11|12])+日(日=[0+非零数字|10|1+非零数字|20|2+非零数字|30|31])名字:顺序码别名:系列码描述:一种用连续数字代表编码对象的码定义:顺序码=3{数字}3位置:名字:校验码别名:检验码描述:校验码有中华人民共和国居民身份证的最后一位定义:校验码=[数字|字符]字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字] 数字=[0|1|2|3|4|5|6|7|8|9]名字:注销日期别名:描述:用户被注销户籍时的时间定义:注销日期=年+月+日年=19+2{数字}2月=[0+非零数字|11|12]日=[0+非零数字|1+非零数字|2+非零数字|30|31]名字:证明材料来历别名:材料来历描述:用户证明材料的来源定义:证明材料来历=1{字符}100字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字]名字:办理员信息库别名:办理员数据库描述:定义:办理员信息=工号+姓名+性别字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字]迁入地址=1[字符]20迁往地址=1[字符]20户籍注销=[死亡证明书|特殊情况证明材料]+注销日期+原因+证明材料来历注销日期=年+月+日原因=1{字符}100证明材料来历=1{字符}100姓名=1{字符}10性别=[m|f]年龄=1{数字}3出生日期=年+月+日家庭住址=1{字符}50身份证号=行政区划分代码+出生日期码+顺序码+校验码行政区划分代码=6{数字}6出生日期码=年+月+日顺序码=3{数字}3校验码=[数字|字符]年=19+2{数字}2月=[0+非零数字|11|12]日=[0+非零数字|1+非零数字|2+非零数字|30|31]字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字]非零数字=[|1|2|3|4|5|6|7|8|9]总体设计模块划分:1.权限验证2..户籍查询3.户籍修改4户籍新建5.户籍注销6.数据库管理系统主模块:系统层次图:用户登录户籍查询户籍管理系统 户籍修改户籍新建户籍注销 数据库管理户籍管理系统用户登录 户籍查询户籍信息管理户籍修改户籍注销户籍新建 删除查找 修改 添加查找 查找详细设计1.系统主控平台(1)主控平台界面设计充分考虑易于操作的系统需求。
户籍管理系统设计

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊课程设计说明书1、研究背景随着城市人口规模的扩大和公安部门对城市及农村人口管理工作规范性的逐渐增强,户籍管理工作的业务量急剧增大。
传统的手工方法,存在效率低、易出错等缺点,已经难以满足当前户籍管理工作的要求。
因此,结合当前日益成熟的计算机相关技术,开发一个专门针对户籍管理的系统已经非常必要了。
户籍管理信息系统是公安部门不可缺少的一部分,更是适应现代户籍制度并推动户籍管理走向科学化、规范化、自动化的必要条件。
该管理系统能够为用户提供充足的信息和快捷的查询手段,以帮助用户了解户籍工作的情况。
它大大改善了公安部门管理、查询户籍的基础工作环境,在一定程度上反映出户籍管理的现代化管理模式。
因此人口户籍管理信息系统的开发迫在眉睫。
2、需求分析需求收集和分析是数据库设计的第一个阶段,这个阶段的一个重要而困难的任务是收集将来应用所涉及到的数据。
必须把所有可能用到数据都考虑进去,要确定基本数据、数据结构处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础,在仔细调查企业户籍管理系统的基础上,通过与本单位户籍管理人员、相关领导的多次沟通与测试,得到本系统所处理的数据流程。
如图2.1┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图 2.1数据流程图确定了户籍管理系统需要实现的功能:(1)实现户口迁入、落户。
(2)迁出。
(3)注销录入的全过程。
(4)查询和维护户籍信息的档案数据。
(5)实现户口信息的保存3、系统概要设计3.1 系统的各功能模块通过系统功能需求分析,得到如图所示的系统功能模块图。
如图3.1.1。
图 3.1.1 系统功能模块图3.2 系统的数据库设计3.2.1 E——R图。
图3.2.1┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图 3.2.1 E——R图3.2.2数据表设计表1 户口信息表HK表2 人口信息表RK┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊表3 管理员信息表GL表4 人口迁入信息表 RIN4、系统详细设计和实现4.1 连接数据库public class DBOperation{private Connection con;public Connection getConnection(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection("jdbc:odbc:HR");}catch (Exception e){e.printStackTrace();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}return con;}4.2 登陆界面设计输入用户名、密码:private JPanel getJContentPane() {if (jContentPane == null) {jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(0, 0, 600, 400));//jLabel2.setIcon(newImageIcon(getClass().getResource("/DengLu.jpg")));jLabel2.setText("");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(167, 198, 58,23));jLabel1.setText("密码:");jLabel = new JLabel();jLabel.setBounds(new Rectangle(167, 158, 58, 23));jLabel.setText("用户名:");jContentPane = new JPanel();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);}return jContentPane;}创建登陆按钮对象并创建事件,实现登陆功能:private JButton getJButton() {if (jButton == null) {jButton = new JButton();jButton.setBounds(new Rectangle(169, 227, 70, 23));jButton.setMnemonic(KeyEvent.VK_ENTER);jButton.setToolTipText("输入用户名、密码登陆");jButton.setText("登录");jButton.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {String user=用户名.getText();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊String password=new String(密码.getPassword());if(user.equals(""))JOptionPane.showMessageDialog(null,"用户名不能为空!");else{if(db.CheckUser(user, password)){if(db.IsAdmin(user)){MainMenu m= new MainMenu();m.setVisible(true);setVisible(false);}else{MainMenuUser m= new MainMenuUser();m.setVisible(true);setVisible(false);}}else{JOptionPane.showMessageDialog(null,"用户名不存在或密码错误!" +"剩余次数:"+(2-i));i++;if(i>=3){JOptionPane.showMessageDialog(null,"用户名密码尝试次数已达3次,系统将退出!");System.exit(0);}}}}});}return jButton;}登陆界面,如图4.2.1┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图 4.2.1创建退出按钮,实现退出功能:private JButton getJButton1() {if (jButton1 == null) {jButton1 = new JButton();jButton1.setBounds(new Rectangle(263, 227, 70, 23));jButton1.setToolTipText("退出系统");jButton1.setText("退出");jButton1.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return jButton1;}4.3 用户管理模块设计注册用户:private JButton getJButton() {if (jButton == null) {jButton = new JButton();jButton.setBounds(new Rectangle(150, 211, 78, 27));jButton.setText("注册");jButton.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊String user=用户名.getText();String password1=new String(密码.getPassword());String password2=new String(确认密码.getPassword());if(user.equals("")){JOptionPane.showMessageDialog(null,"用户名不能为空!");}else{判断两次密码输入的是否相同if(password1.equals(password2)){判断用户名是否存在if(erExist(user)){JOptionPane.showMessageDialog(null,"该用户名已被使用!");}符合天剑则注册用户else{db.AddUser(user, password1);JOptionPane.showMessageDialog(null,"注册成功");用户名.setText("");密码.setText("");确认密码.setText("");}}elseJOptionPane.showMessageDialog(null,"两次输入的密码不一样!");}}});}return jButton;}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊查询用户名:private JTextField get用户名() {if (用户名 == null) {用户名 = new JTextField();用户名.setBounds(new Rectangle(446, 174, 145, 25));}return 用户名;}删除用户:创建按钮事件private JButton getJButton() {if (jButton == null) {jButton = new JButton();jButton.setBounds(new Rectangle(351, 269, 90,30));jButton.setToolTipText("单击确定删除");jButton.setText("确定删除");jButton.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {得到用户名、密码String user=用户名.getText();String password=new String(密码.getPassword());if(user.equals(""))JOptionPane.showMessageDialog(null,"用户名不能为空!");else{判断是否存在用户if(erExist(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,"用户名不存在!");}}}});}return jButton;}查询用户:public Vector Searchu(){Connection con = null;PreparedStatement ps = null;ResultSet rs = null;Vector <String>v = new Vector<String> ();String sqlquery ="execute pro_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 (SQLException e) { e.printStackTrace(); }return v;}4.4 户口管理功能模块添加户口,如图4.4.1:数据库操作:public void AddHuKou(String huhao ,String huzhuname ,String select ,String huzhi ,String qianyi ,String dengji ){Connection con = null;PreparedStatement ps = null;String sqlquery =" pro_Add_Hukou'"+huhao+"','"+huzhuname+"' ,'"+select+"','"+huzhi+"','"+qianyi+"','"+dengji+"' ";try{con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); }}添加户口界面:private JMenuItem get添加户口() {if (添加户口 == null) {添加户口 = new JMenuItem("添加户口信息");添加户口.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();addh=new AddH();jContentPane.add(addh,null);addh.setVisible(true);setTitle("添加户口信息");┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊addh.setBounds(new Rectangle(0, 0, 900,600));}});}return 添加户口;}图 4.4.1删除户口,如图 4.4.2:数据库操作:public void Delhukou(String huhao){Connection con = null;PreparedStatement ps = null;try{String sqlquery ="pro_Delhukou '"+huhao+"'";con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); }}界面设计:private JMenuItem get删除户口() {┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊if (删除户口 == null) {删除户口 = new JMenuItem("删除户口信息");删除户口.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();delh=new DelH();jContentPane.add(delh,null);delh.setVisible(true);setTitle("删除户口信息");delh.setBounds(new Rectangle(0, 0,900,600));}});}return 删除户口;}图 4.4.2修改户口信息,如图4.4.3:数据库操作public void ChangeHuKou(String huhao ,String huzhuname ,String hubie ,String huzhi ,String qianyi ,String dengji ){Connection con = null;┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊PreparedStatement ps = null;String sqlquery ="pro_Change_Hukou'"+huhao+"' ,'"+huzhuname+"' ,'"+hubie+"','"+huzhi+"','"+qianyi+"','"+dengji+"'";try{con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); }}}界面设计private JMenuItem get修改户口() {if (修改户口 == null) {修改户口 = new JMenuItem("修改户口信息");修改户口.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();changeh=new ChangeH();jContentPane.add(changeh,null);changeh.setVisible(true);setTitle("修改户口信息");changeh.setBounds(new Rectangle(0, 0, 900,600));}});}return 修改户口;}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊如图 4.4.3查询户口,如图 4.4.4:数据库操作:浏览所以户口:public Vector Searchh(){Connection con = null;PreparedStatement ps = null;ResultSet rs = null;Vector <String>v = new Vector<String> ();String sqlquery ="execute pro_Search_H ";try{con = getConnection();ps = con.prepareStatement(sqlquery);rs = ps.executeQuery();while(rs.next()){v.add(rs.getString("DoorNum"));v.add(rs.getString("DoorName"));v.add(rs.getString("Hubie"));v.add(rs.getString("HuZi"));v.add(rs.getString("MoveMessage"));v.add(rs.getString("RecordData"));}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ps.close();con.close();}catch (SQLException e){ e.printStackTrace(); }return v;}界面设计:private JMenuItem get查询户口() {if (查询户口 == null) {查询户口 = new JMenuItem("查询户口信息");查询户口.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();search=new Search();jContentPane.add(search,null);search.setVisible(true);setTitle("查询户口信息");search.setBounds(new Rectangle(0, 0, 900,600));}});}return 查询户口;}4.5居民信息管理查询居民信息:查询全部居民信息,如图 4.5.1public Vector Searchp(){Connection con = null;PreparedStatement ps = null;ResultSet rs = null;Vector <String>v = new Vector<String> ();String sqlquery ="execute pro_Search_P";try{con = getConnection();ps = con.prepareStatement(sqlquery);rs = ps.executeQuery();while(rs.next())┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊{String temp1=rs.getString("IDCardNum");String temp2=rs.getString("Name");v.add(temp2);v.add(temp1);//v.add(rs.getString("Name"));//v.add(rs.getString("IDCardNum"));v.add(rs.getString("Sex"));v.add(rs.getString("Birthday"));v.add(rs.getString("Nation"));v.add(rs.getString("DoorNum"));v.add(rs.getString("Relation"));v.add(rs.getString("BirthPlace"));v.add(rs.getString("Origin"));v.add(rs.getString("Education"));v.add(rs.getString("MaritalStatus"));v.add(rs.getString("Occupation"));v.add(rs.getString("Political"));v.add(rs.getString("MoveMessage"));v.add(rs.getString("WorkPlace"));}ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); } return v;}图 4.5.1┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊按身份证查询居民信息,如图4.5.2public Vector Searchp_id(String id){Connection con = null;PreparedStatement ps = null;ResultSet rs = null;Vector <String>v = new Vector<String> ();String sqlquery ="pro_Search_P_id '"+id+"' ";try{con = getConnection();ps = con.prepareStatement(sqlquery);rs = ps.executeQuery();while(rs.next()){String temp1=rs.getString("IDCardNum");String temp2=rs.getString("Name");v.add(temp2);v.add(temp1);//v.add(rs.getString("Name"));//v.add(rs.getString("IDCardNum"));v.add(rs.getString("Sex"));v.add(rs.getString("Birthday"));v.add(rs.getString("Nation"));v.add(rs.getString("DoorNum"));v.add(rs.getString("Relation"));v.add(rs.getString("BirthPlace"));v.add(rs.getString("Origin"));v.add(rs.getString("Education"));v.add(rs.getString("MaritalStatus"));v.add(rs.getString("Occupation"));v.add(rs.getString("Political"));v.add(rs.getString("MoveMessage"));v.add(rs.getString("WorkPlace"));}ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); }return v;}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图 4.5.2修改居民信息,如图 4.5.3数据库操作public void ChangePeople(String name,String id ,String birthday ,String sex ,String nation ,String birthplace ,Stringjiguan ,String education ,String select2 ,String zhiye ,Stringzhengzhi ,String qianyi ,String workplace ,String huhao ,String relation ){Connection con = null;PreparedStatement ps = null;String sqlquery="pro_Change_People'"+name+"','"+id+"','"+birthday+"','"+sex+"','"+nation+"' ,'"+birthplace+"' ,'"+jiguan+"' ,'"+education+"' ,'"+select2+"' ,'"+zhiye+"' ,'"+zhengzhi+"' ,'"+qianyi+"' ,'"+work place+"' ,'"+huhao+"' ,'"+relation+"' ";try{con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊con.close();}catch (SQLException e) { e.printStackTrace(); } }界面设计private JMenuItem get修改居民() {if (修改居民 == null) {修改居民 = new JMenuItem("修改居民信息");修改居民.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();changep=new ChangeP();jContentPane.add(changep,null);changep.setVisible(true);setTitle("修改居民信息");changep.setBounds(new Rectangle(0, 0, 900,600));}});}return 修改居民;}图 4.5.3┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊删除居民信息,如图4.5.4数据库操作public void Delpeople(String id){Connection con = null;PreparedStatement ps = null;try{String sqlquery ="pro_Delpeople '"+id+"'";con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();con.close();}catch (SQLException e) { e.printStackTrace(); }}界面设计private JMenuItem get删除居民() {if (删除居民 == null) {删除居民 = new JMenuItem("删除居民信息");删除居民.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();delp=new DelP();jContentPane.add(delp,null);delp.setVisible(true);setTitle("删除居民信息");delp.setBounds(new Rectangle(0, 0, 900,600));}});}return 删除居民;}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图 4.5.4增加居民,如图 4.5.5数据库操作public void AddPeople(String name,String id ,String birthday ,String sex ,String nation ,String birthplace ,String jiguan ,String education ,String select2 ,String zhiye ,String zhengzhi ,String qianyi ,String workplace ,String huhao ,String relation ){Connection con = null;PreparedStatement ps = null;String sqlquery ="pro_Add_People'"+name+"','"+id+"','"+birthday+"','"+sex+"','"+nation+"','"+birthplace+"','"+jiguan+"','"+education+"','"+select2+"','"+zh iye+"','"+zhengzhi+"','"+qianyi+"','"+workplace+"','"+huhao+"','"+relati on+"'";try{con = getConnection();ps = con.prepareStatement(sqlquery);ps.executeUpdate();ps.close();con.close();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}catch (SQLException e) { e.printStackTrace(); } }界面设计private JMenuItem get添加居民() {if (添加居民 == null) {添加居民 = new JMenuItem("添加居民信息");添加居民.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent e) {hidepane();addp=new AddP();jContentPane.add(addp,null);addp.setVisible(true);setTitle("添加居民信息");addp.setBounds(new Rectangle(0, 0,900,600));}});}return 添加居民;}图4.5.5┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊5.系统测试5.1 测试目的本测试报告是简单户籍管理系统的测试报告,目的在于分析测试结果,描述系统是否有户籍管理的功能5.2 测试分析(1)系统概述:系统包括查询管理、户管理、个人户口管理三大部分。
基于java的人口信息管理系统的设计与实现

《基于Java的人口信息管理系统的设计与实现》一、引言在当今社会,人口信息管理是一个非常重要的领域,它涉及到政府管理、社会发展、科学研究等方方面面。
借助计算机技术,我们可以更加高效地进行人口信息管理。
本文将探讨基于Java的人口信息管理系统的设计与实现,旨在为读者提供一个全面、深入的了解。
二、需求分析在设计和实现人口信息管理系统之前,我们首先需要进行需求分析。
人口信息管理系统通常需要包括以下功能:1. 人口基本信息管理:包括尊称、性别、生日、唯一识别信息号等基本信息的录入、修改、查询和删除。
2. 人口统计分析:根据不同的指标进行人口统计分析,包括芳龄结构、性别比例、户口信息分布等。
3. 人口变动管理:记录人口的迁入、迁出、出生、逝去等变动情况。
4. 数据安全和权限管理:对人口信息进行加密存储,确保数据安全,并设置不同的用户权限,保护敏感信息。
三、系统设计在系统设计阶段,我们需要考虑系统的整体框架、模块设计、数据存储等方面的问题。
基于Java的人口信息管理系统可以采用以下技术和框架:1. 使用Spring框架进行系统的整体设计,包括IoC、AOP等功能。
2. 使用SpringMVC实现系统的模块化设计,便于后期的扩展和维护。
3. 采用MyBatis等持久化框架进行数据的存储和管理,确保数据的安全和完整性。
4. 使用Hibernate等框架实现数据安全和权限管理功能,保护敏感信息。
四、系统实现在系统实现阶段,我们需要根据设计的框架和模块来进行具体的编码和实现。
基于Java的人口信息管理系统的实现过程可以包括以下步骤:1. 设计数据库表结构,包括人口基本信息表、统计分析表、变动管理表等。
2. 编写Spring配置文件,配置系统的整体框架和模块。
3. 使用Java语言编写系统的业务逻辑层和持久化层,实现系统的各项功能。
4. 设计用户界面,采用HTML、CSS、JavaScript等前端技术进行实现。
五、系统测试在系统实现完成后,我们需要进行系统的测试工作,包括单元测试、集成测试、系统测试等。
基于SuperMap的户籍信息管理系统设计与实现

关 子 系统和模 块进 行 必 要 的 整合 或 系 统 优 化 , 以使
整 个 系统更加 完善 、 合理 。
易 操作性 : S是 直 接 面 向用 户 进 行 辅 助 管 理 GI 的人机 系统 , 因此 在 系 统 建 设过 程 中 , 须 切合 实 必 际 , 终观察 面 向用户 、 于操 作 的观 点 。 始 易
漫游 、 图形 编辑等 功能 。
合 , 间 数 据 采用 制 作 完 成 的 电子 地 图 , 括 S B 空 包 D
和 S D文件 , D 而用 S e e 0 5存储 户籍 信息 。 QL S v r2 0
2 2 系统 总体设 计 .
基 于空 间信 息 的户 籍 信 息 管 理 系 统 设 计 着 重
灵 活性 、 扩 展 性 : 个 综 合 业 务 系 统 在 很 大 可 一
程 度上要 靠调 整参 数 来适 应不 断发 展 变 化 的业 务 ,
图 1 S p r p 据 结 构 ueMa 数
系统 的架构 越 灵 活 , 数 化 程 度 越 高 , 能 更 好 地 参 越
S p r p支 持包 括 S 、 QL+、 cl、 M 等多 u eMa QL S Orae D
信 息 的手段 。户籍 管 理 较 之传 统 的信 息管 理 模 式 , 能够更 加准 确 、 直观 地 管 理 复杂 户 籍信 息 。而组 件
式 GI 件具 有容易 实 现 系统 地无 缝 集成 、 S软 开发 语 言的多样 性 、 良好 的 扩 展 性 、 大 的伸 缩 性 和 可 视 强
存 储 、 理 和处理 的数 据逻 辑 结 构 。数 据 结构 是 数 管 据模型 和 文件格式 之 间的 中 间媒 介 , 用 何种 数 据 选
户籍管理系统开发文档

户籍管理系统开发文档任务分工:E20814067顾玉华(需求分析)E20814101 高嘉韶(数据流图、数据字典、实验代码)E20814091 鲁骥(总体设计、测试)E20814099孙志强(详细设计、实验代码)需求分析进过分析,户籍管理系统的需求分析如下:登陆系统分为游客登录和管理员登陆。
游客只有先通过注册才能登陆,登陆后可以进入户籍管理系统页面进行简单查询,简单查询通过按身份证查询和按姓名查询,查询结果不包含出生日期,身份证号码。
管理员通过登录页面,进入后台管理模块后,可以对所有户籍进行管理,包括户籍详细查询,户籍新建,户籍修改,户籍迁出迁入,户籍注销。
具体功能如下:1.详细查询:按姓名查询和按身份证查询两种,可以查看所有户籍信息;2.户籍新建:新建一个户籍,要求有姓名、性别、年龄、出生日期、家庭住址、身份证号等信息,其中16岁以下可以不具有身份证号。
3. 户籍修改:可修改的户籍信息包括姓名、家庭住址、身份证号。
注:姓名一经修改户籍信息中要增加一条曾用名的记录。
4. 户籍迁出迁入:对户籍进行迁出迁入登记,户籍的迁移必须保留历史信息,明确迁往那里或从那里迁入。
且时刻保留迁入迁出的最新信息。
5. 户籍注销:对户籍进行注销,必须有死亡证明书或其他特殊情况的证明材料,自动生成注销的相关信息记录,如注销日期、原因、证明材料的来历。
- 1 -数据流图- 2 -管理员信息库通行证清单更新后通行证 1.1通行证验证通行证1.2通行证密通行证办理员码修改审核员信息库通行证信息更新后通行证 1.1 通行证 1.2 验证通行证通行证修改审核员通行证办理员办理员信息 2.1修改办理员办理员信息表办理员清单办理员信息库- 3 -数据字典:名字:户籍信息系统别名:信息系统描述:包括户籍新建、户籍修改、户籍迁移、户籍注销的户籍管理系统。
定义:户籍信息系统=户籍新建+户籍修改+户籍迁移+户籍注销+户籍查询位置:名字:户籍迁入迁出信息别名:迁入迁出描述: 用户迁入本地和迁出本地带来的信息更改定义:户籍迁入迁出=户籍信息+[迁入地址|迁出地址](1{字符}50)+[原迁入地址|原迁出地址](1{字符}50)位置: 户籍系统数据库修改系统名字:身份证号码别名:居民身份证号码描述:公民的唯一的不变的法定号码定义:身份证号=行政区划分代码(6{数字}6)+出生日期码(出生日期码=年+月+日)+顺序码(3{数字}3)+校验码([数字|字符])名字:出生日期码别名:出生日期描述:用户出生时的日期,包括年月日定义:出生日期码=年(19+2{数字}2)+月(月=[0+非零数字|10|11|12])+日(日=[0+非零数字|10|1+非零数字|20|2+非零数字|30|31])- 4 -名字:顺序码别名:系列码描述:一种用连续数字代表编码对象的码定义:顺序码=3{数字}3位置:名字:校验码别名:检验码描述:校验码有中华人民共和国居民身份证的最后一位定义:校验码=[数字|字符]字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字] 数字=[0|1|2|3|4|5|6|7|8|9]名字:注销日期别名:描述:用户被注销户籍时的时间定义:注销日期=年+月+日年=19+2{数字}2月=[0+非零数字|11|12]日=[0+非零数字|1+非零数字|2+非零数字|30|31]名字:证明材料来历别名:材料来历描述:用户证明材料的来源定义: 证明材料来历=1{字符}100字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字]- 5 -名字:办理员信息库别名:办理员数据库描述:定义: 办理员信息=工号+姓名+性别字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字] 迁入地址=1[字符]20迁往地址=1[字符]20户籍注销=[死亡证明书|特殊情况证明材料]+注销日期+原因+证明材料来历注销日期=年+月+日原因=1{字符}100证明材料来历=1{字符}100姓名=1{字符}10性别=[m|f]年龄=1{数字}3出生日期=年+月+日家庭住址=1{字符}50身份证号=行政区划分代码+出生日期码+顺序码+校验码行政区划分代码=6{数字}6出生日期码=年+月+日顺序码=3{数字}3校验码=[数字|字符]年=19+2{数字}2月=[0+非零数字|11|12]日=[0+非零数字|1+非零数字|2+非零数字|30|31] 字符=[a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|汉字] 非零数字=[|1|2|3|4|5|6|7|8|9]- 6 -总体设计层次图模块划分:1.权限验证2.用户管理3.户籍查询4.户籍修改5.户籍新建6.户籍注销7.数据库管理- 7 -系统主模块:权限验证用户管理户籍管理系统户籍查询户籍修改户籍新建户籍注销数据库管理系统层次图:户籍管理系统用户管理户籍信息管理权限验证户籍新建户籍注销户籍修改户籍查询修改查找查找添加查找查找删除显示用户管理修删添修改除加改用用新用户户用户口户权令限- 8 -详细设计1.系统主控平台(1)主控平台界面设计充分考虑易于操作的系统需求。
软件工程文档-户籍管理系统

软件工程文档—户籍管理系统——户籍管理系统小组人数:5人完成日期:2011-01—01户籍管理系统一、项目开发计划1 引言1.1 编写目的本系统主要提供一些基本的户籍管理功能,帮助理解和学习有关软件工程专业的基本知识,进一步将所学理论知识与具体实验相结合,通过实验系统与文档的编写,以熟悉软件系统开发的基本流程与基本方法。
系统主要面向对象为本系统的信息操作人员,即管理员。
1.2 项目背景本系统为单机测试使用,主要为了完成实验要求设计实现。
2 项目概述2。
1 工作内容本系统题为“户籍管理系统",即通过实验进行模拟户籍管理。
主要实现功能包括户口及人员的新建、注销、迁入、迁出,以及相应户口及人员的信息修改等基本功能。
由于迁入与迁出的一些数据信息与其中的迁入迁出信息有所重复,因此为了减少系统的繁琐,将户口及人员的迁入迁出作为其新建注销的一条信息并入其中。
这里主要简要描述一下本系统能够具体实现的功能。
对于新增人口与注销人口并不需要过多的说明,仅有单方面系统与数据库之间的数据修改与数据交换,具体增减信息可参见数据库表。
对于户口或人员的迁移(这里以人员迁移为例),实现方式如下:首先由迁移人员向原户口所在地出示相关证明材料,然后系统由管理员登陆系统程序,根据材料证明,将该人员从所在户口下注销(如果该人员即为户口户主,且独立成户,则一并办理户口注销,此处不予以过多说明),修改相关数据库表信息,并将人员注销信息暂存在本地数据库中,以作备用。
然后该人员可持相关证明到户口迁入地办理迁入手续,即由系统管理员根据相关证明,对该人员进行新建(如果是独立成户,还需要进行户口的新建),并记录相关数据迁入信息.需要说明的是,本系统并不能保存原户口迁出信息,即无法从已迁入地查知其以往户口所在地,而其原来的注销信息,仅作为当地户籍人员流动信息存档,并不予以信息交换与信息查询.另外关于本系统中的信息修改功能是通过相关数据库信息进行逐个修改,保证了其实时性,且并不会引起其他数据错误与干扰.2。
户籍管理系统的设计与实现的开题报告

户籍管理系统的设计与实现的开题报告一、选题背景及意义近年来,随着城市化进程的不断加快,人口流动也愈发频繁,因此户籍管理就越来越受到重视。
户籍管理系统作为对人口统计及管理的主要工具,被广泛应用于政府、机关及各类事业单位中。
我选题设计的是一款户籍管理系统,可以通过电脑端或手机端来完成各项户籍信息管理工作。
本系统涵盖了居民信息管理、户籍档案查询、户籍信息补录、迁入迁出信息管理等多项功能,旨在为政府和机关提供便捷的户籍管理工具,提高社会管理效率和服务质量。
二、研究内容与研究方法1.研究内容(1)居民信息管理:对居民的基本信息进行登记、管理、处理、查询。
(2)户籍档案查询:对历史上的居民信息进行查询,方便了解户籍信息变动情况。
(3)户籍信息补录:对因各种原因未能及时登记的居民信息进行补录。
(4)迁入迁出信息管理:对居民的迁移情况进行及时登记管理。
2.研究方法(1)需求分析:通过用户需求调查、调研及现有户籍管理系统的分析,确定系统的功能需求及性能要求。
(2)系统设计:根据需求分析结果,设计系统的整体架构、数据库设计和系统流程等。
(3)系统实现:使用Java语言进行系统应用程序开发,使用MySQL数据库技术进行数据管理和存储。
(4)系统测试:对系统功能和性能进行测试,确保系统的完整性和稳定性。
三、预期成果1.设计一个轻量级、简洁易用的户籍管理系统,满足日常行政管理的需求。
2.提升城市人口管理的效率和效益,解决传统户籍管理工作中的缺陷和问题。
3.提高公务员和用户的工作效率,减轻工作强度,优化工作流程。
四、研究难点及可行性分析1.研究难点:(1)用户需求复杂多样,需要根据实际情况确定优先级及难度。
(2)系统功能细节较多,需从系统整体角度考虑各功能点优化和整合。
2.可行性分析:(1)技术可行性:系统开发所用到的技术和工具都经过现有产品的验证,技术实现可行。
(2)市场可行性:随着城市化进程的不断加快,对户籍管理系统的需求量越来越大,市场前景乐观。
户籍管理系统设计Java

户籍管理系统设计 Java毕业设计第 1 页Java户籍管理系统目录1 绪论 ....................................................... 3 1.1 项目开发背景 .............................................. 3 1.2 项目开发目的 ..............................................3 2 开发平台简介 ............................................... 4 2.1 JBUILDER2005 .............................................. 4 2.2 JAVA语言的特点 ............................................ 4 2.3 SQL SERVER2000 ............................................ 5 3 系统分析 ................................................... 6 3.1 需求分析 (6)3.1.1 系统功能设计分析 (6)3.1.2 主要功能 ........................................... 6 3.2 系统设计 .. (7)3.2.1 数据库设计 (7)3.2.2 系统功能结构图 ..................................... 8 4 系统的具体实现 ............................................. 94.1 登陆 (9)哈尔滨职业技术学院毕业设计第 2 页4.2 主窗体 (11)4.3 精确查询 ................................................. 12 4.4 模糊查询 ................................................. 14 4.5 开户管理 ................................................. 15 4.6 删除人物 ................................................. 17 4.7 新增人口登记 ............................................. 19 4.8 修改户籍信息 ............................................. 21 4.9 注册用户 ................................................. 23 4.10 修改用户密码 ........................................... 25 结论 ...................................................... 28 致谢 ...................................................... 29 参考文献 (30)哈尔滨职业技术学院毕业设计第 3 页1 绪论随着时代的发展、科学的进步,信息时代已经遍布全球,计算机已广泛地深入各行各业,起着越来越巨大的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
种查询语言,它的前身是 SQUARE 语言。SQL 语言结构简洁,功能强大,简
单易学,所以自从 IBM 公司 1981 年推出以来,SQL 语言,得到了广泛的应
用。
SQL 是高级的非过程化编程语言,允许用户在高层数据结构上工作。SQL
不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方
式,所以具有完全不同底层结构的不同数据库系统可以使用相同的 SQL 语言
哈尔滨职业技术学院
毕业设计
第5页
高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。
用 Java 开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存
在的其他编程语言。Java 提供了丰富的类库,能最大限度地利用网络。Java
可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应
3 系统分析........................................................................................................6 3.1 需求分析..................................................................................................... 6 3.1.1 系统功能设计分析........................................................................ 6 3.1.2 主要功能........................................................................................ 6 3.2 系统设计..................................................................................................... 7 3.2.1 数据库设计.................................................................................... 7 3.2.2 系统功能结构图............................................................................ 8
哈尔滨职业技术学院
毕业设计
第2页
4.2 ....................................................................11
4.3 精确查询................................................................................................... 12
用于 Internet 系统管理、Web 页面设计、Internet 可视化软件开发等方面。
2.3 SQL Server 2000
SQL 全称是“结构化查询语言(Structured Query Language)”,最早
的是 IBM 的圣约瑟研究实验室为其关系数据库管理系统 SYSTEM R 开发的一
毕业设计
第1页
Java
户籍管理系统
目录
1 绪论................................................................................................................3 1.1 项目开发背景............................................................................................. 3 1.2 项目开发目的............................................................................................. 3
哈尔滨职业技术学院
毕业设计
1 绪论
第3页
随着时代的发展、科学的进步,信息时代已经遍布全球,计算机已广 泛地深入各行各业,起着越来越巨大的作用。它运算速度快,体积小,可 靠性高,通用性与灵活性强,以及很高的性能价格比等特点,把人们带入 了一个一切都离不开计算机的新时代。
本文介绍的系统是户籍管理系统,包括登陆界面,户籍管理主界面,开 户登记界面,新增人口界面,删除人口界面,修改户籍信息界面,用户管理 界面,分别有增、删、查、改的功能。
4.4 模糊查询................................................................................................... 14
4.5 开户管理................................................................................................... 15
2 开发平台简介............................................................................................... 4 2.1 JBUILDER 2005..............................................................................................4 2.2 JAVA 语言的特点..........................................................................................4 2.3 SQL SERVER 2000......................................................................................... 5
哈尔滨职业技术学院
毕业设计
2 开发平台简介
第4页
此系统的开发平台是 Windows XP,前台使用 JBuilder2005 开发,后台 数据库为 SQL Server 2000,下面对使用的软件做一下简介。
2.1 JBuilder 2005 JBuilder 是 Borland 公司开发的针对 java 的开发工具,使用 JBuilder 将可以快速,有效的开发各类 java 应用,它使用的 JDK 与 sun 公司标准的 JDK 不同,它经过了较多的修改,以便开发人员能够像开发 Delphi 应用那 样开发 java 应用。 JBuilder 支持最新的 Java 技术,包括 Applets、JSP/Servlets、JavaBean 以及 EJB (Enterprise JavaBeans)的应用。用户可以自动地生成基于后端 数据库表的 EJB Java 类,JBuilder 同时还简化了 EJ B 的自动部署功能.此 外它还支持 CORBA,相应的向导程序有助于用户全面地管理 IDL(分布应用程 序所必需的接口定义语言 Interface Definition Language)和控制远程对 象。JBuilder 能用 Servlet 和 JSP 开发和调试动态 Web 应用。JBuilder 拥 有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种 JDK 版本,包括 J2ME/J2SE/J2EE。JBuilder 环境开发程序方便,它是纯的 Java 开发环境,适合企业的 J2EE 开发。 2.2 Java 语言的特点 Java 是目前最流行的软件开发语言之一,由 Sun Microsystem 公司推 出,称为网络上的“世界语”。Java 适合开发基于多媒体、与平台无关、用 面向对象的方法进行基于 Internet、Intranet、Extranet 的 Applet 和应用 程序。Java 建立在 C 和 C++基础之上,使熟悉 C 和 C++的程序员能很方便地 进行 Java 编程。但 Java 摈弃了 C 和 C++中许多不合理的内容。它具有简单
4.6 删除人物................................................................................................... 17
4.7 新增人口登记........................................................................................... 19
1.1 项目开发背景 近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了 信息时代,随着人口的不断增长,户籍管理部门也应得到良好的发展,利用 现代化管理工具使其变成半自动化必定会提高其工作效率。 1.2 项目开发目的 户籍管理系统是针对户籍管理部门而开发的,为其改变人口信息仍需要 手动处理和查询,个人的信息在处理中丢失或者不明确等现象而设计的。通 过这个户籍管理系统,可以让户籍管理部门提高工作质量和效率,从而达到 更快捷、更准确、更方便的目的。
4.10 修改用户密码....................................................................................... 25
结 论...............................................................................................................28 致 谢...............................................................................................................29 参考文献...............................................................................................................30