版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长 春 大 学课 程 设 计 说 明 书题目名称 户籍管理系统 院(系) 计算机科学技术学院 专业(班级) 软件 12401 学生姓名 阮雪峰 指导教师 王薇 起止日期 2014.7.72012.7.29 1、研究背景随着城市人口规模的扩大和公安部门对城市及农村人口管理工作规范性的逐渐增强,户籍管理工作的业务量急剧增大。传统的手工方法,存在效率低、易出错等缺点,已经难以满足当前户籍管理工作的要求。因此,结合当前日益成熟的计算机相关技术,开发一个专门针对户籍管理的系统已经非常必要了。户籍管理信息系统是公安部门不可缺少的一部分,更是适应现代户籍制度并推动户籍管理走向科学化、规范化、自动化的必要条件
2、。该管理系统能够为用户提供充足的信息和快捷的查询手段,以帮助用户了解户籍工作的情况。它大大改善了公安部门管理、查询户籍的基础工作环境,在一定程度上反映出户籍管理的现代化管理模式。因此人口户籍管理信息系统的开发迫在眉睫。2、 需求分析需求收集和分析是数据库设计的第一个阶段,这个阶段的一个重要而困难的任务是收集将来应用所涉及到的数据。必须把所有可能用到数据都考虑进去,要确定基本数据、数据结构处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础,在仔细调查企业户籍管理系统的基础上,通过与本单位户籍管理人员、相关领导的多次沟通与测试,得到本系统所处理的数据流程。如图2.1户籍信息处理过程迁入、
3、落户户口注销户口迁出查询修改存档图 2.1数据流程图确定了户籍管理系统需要实现的功能:(1)实现户口迁入、落户。(2)迁出。(3)注销录入的全过程。(4)查询和维护户籍信息的档案数据。(5)实现户口信息的保存3、系统概要设计3.1 系统的各功能模块通过系统功能需求分析,得到如图所示的系统功能模块图。如图3.1.1。户籍管理系统 登陆户籍管理居民管理系统管理增删改查户籍增删改查居民增删改查用户修改密码图 3.1.1 系统功能模块图3.2 系统的数据库设计3.2.1 ER图。图3.2.1注销库户口注销存档查询修改户籍库户籍科迁入落户户口迁出迁出库图 3.2.1 ER图3.2.2数据表设计表1 户口
4、信息表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民族定长
5、字符串,长度为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非
6、空,主键Indata何时迁入Datetime可空wherein迁入地不定长字符串,长度为20可空Out是否迁出定长字符串,长度为20可空户号引用户口信息表,ID引用自人口信息表,两者均为外键 4、系统详细设计和实现4.1 连接数据库public class DBOperation private Connection con;public Connection getConnection()tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);con = DriverManager.getConnection(jdbc:odbc:HR);catch (E
7、xception 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(new ImageIcon(getClass().getResource(/DengLu.jpg);jLabel2.setText();jLabel1 = new JLabel();
8、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);jCon
9、tentPane.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 JB
10、utton();jButton.setBounds(new Rectangle(169, 227, 70, 23);jButton.setMnemonic(KeyEvent.VK_ENTER);jButton.setToolTipText(输入用户名、密码登陆);jButton.setText(登录);jButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) String user=用户名.getText(); S
11、tring password=new String(密码.getPassword();if(user.equals()JOptionPane.showMessageDialog(null,用户名不能为空!);elseif(db.CheckUser(user, password)if(db.IsAdmin(user)MainMenu m= new MainMenu();m.setVisible(true);setVisible(false);elseMainMenuUser m= new MainMenuUser();m.setVisible(true);setVisible(false);el
12、seJOptionPane.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 Rectan
13、gle(263, 227, 70, 23);jButton1.setToolTipText(退出系统);jButton1.setText(退出);jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) System.exit(0););return jButton1;4.3 用户管理模块设计注册用户:private JButton getJButton() if (jButton = null) jButton
14、 = new JButton();jButton.setBounds(new Rectangle(150, 211, 78, 27);jButton.setText(注册);jButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) String user=用户名.getText(); String password1=new String(密码.getPassword();String password2=new
15、String(确认密码.getPassword();if(user.equals()JOptionPane.showMessageDialog(null,用户名不能为空!);else判断两次密码输入的是否相同if(password1.equals(password2)判断用户名是否存在if(db.UserExist(user)JOptionPane.showMessageDialog(null,该用户名已被使用!);符合天剑则注册用户elsedb.AddUser(user, password1);JOptionPane.showMessageDialog(null,注册成功);用户名.setT
16、ext();密码.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) jButto
17、n = new JButton();jButton.setBounds(new Rectangle(351, 269, 90, 30);jButton.setToolTipText(单击确定删除);jButton.setText(确定删除);jButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) 得到用户名、密码String user=用户名.getText(); String password=new Stri
18、ng(密码.getPassword();if(user.equals()JOptionPane.showMessageDialog(null,用户名不能为空!);else判断是否存在用户if(db.UserExist(user)判断密码是否正确if(db.Admin(password)判断是否是管理员if(db.IsAdmin(user)JOptionPane.showMessageDialog(null,无法删除管理员!);符合条件则删除用户elsedb.Deluser(user);JOptionPane.showMessageDialog(null,删除成功!);用户名.setText()
19、;密码.setText();elseJOptionPane.showMessageDialog(null,管理员密码错误!);elseJOptionPane.showMessageDialog(null,用户名不存在!););return jButton;查询用户:public Vector Searchu() Connection con = null; PreparedStatement ps = null; ResultSet rs = null; Vector v = new Vector (); String sqlquery =execute pro_Search_User ; t
20、ry 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 h
21、uzhuname ,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.clos
22、e();con.close();catch (SQLException e) e.printStackTrace(); 添加户口界面:private JMenuItem get添加户口() if (添加户口 = null) 添加户口 = new JMenuItem(添加户口信息);添加户口.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) hidepane();addh=new AddH();jContentPane.ad
23、d(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.pre
24、pareStatement(sqlquery);ps.executeUpdate();ps.close();con.close(); catch (SQLException e) e.printStackTrace(); 界面设计:private JMenuItem get删除户口() if (删除户口 = null) 删除户口 = new JMenuItem(删除户口信息);删除户口.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEv
25、ent 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 )
26、 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(); 界面设计pri
27、vate JMenuItem get修改户口() if (修改户口 = null) 修改户口 = new JMenuItem(修改户口信息);修改户口.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) hidepane();changeh=new ChangeH();jContentPane.add(changeh,null);changeh.setVisible(true);setTitle(修改户口信息);change
28、h.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 v = new Vector (); String sqlquery =execute pro_Search_H ; try con = getConnection();ps = con.prepareState
29、ment(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;
30、界面设计:private JMenuItem get查询户口() if (查询户口 = null) 查询户口 = new JMenuItem(查询户口信息);查询户口.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) hidepane();search=new Search();jContentPane.add(search,null);search.setVisible(true);setTitle(查询户口信息);se
31、arch.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 v = new Vector (); String sqlquery =execute pro_Search_P; try con = getConnection();ps = con.prepareState
32、ment(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.getStr
33、ing(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();co
34、n.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 v = new Vector (); String sqlquery =pro_Search_P_id +id+ ; try con = getConnection();ps = con.p
35、repareStatement(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.ad
36、d(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
37、.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 ,String jiguan ,String education ,String select2 ,String zhiye ,String zhengzhi ,String q
38、ianyi ,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+ ,+workplace+ ,+ huhao+ ,+relation+ ; t
39、ry 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(new java.awt.event.ActionListener() public void acti
40、onPerformed(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; PreparedS
41、tatement 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(删除居民信息);删除居民.addActionList
42、ener(new java.awt.event.ActionListener() public void actionPerformed(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(St
43、ring 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+,+zhiye+,+ zhengzhi+,+qianyi+,+workplace+,+huhao+,+relation+; try con = getConnection();ps = con.prepare
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力吊装专项施工方案
- 道路交通信号系统施工方案
- 2026广东岭南国防教育基地仓库管理员招聘备考题库含答案详解【培优】
- 2026广东佛山市顺德区大良外国语学校招聘校医1人备考题库(各地真题)附答案详解
- 2026年上半年海南文昌市校园招聘事业单位人员38人备考题库(1号)附参考答案详解(巩固)
- 2026四川九洲电器集团有限责任公司招聘市场开发岗(市场经理)等岗位9人备考题库及参考答案详解【综合题】
- 2026广东高鲲能源数据投资有限公司招聘第四批人员6人备考题库(精练)附答案详解
- 2026四川乐山市沐川县人力资源服务中心招募见习人员1人备考题库附参考答案详解【模拟题】
- 2026江苏南通市儿童福利中心招聘政府购买服务岗位人员1人备考题库及参考答案详解【基础题】
- 2026浙江事业单位统考温州市鹿城区招聘(选调)21人备考题库附参考答案详解(突破训练)
- 消防生命通道课件
- T/QX 006-2023工业设备水射流清洗质量验收规范
- 游客互送协议书
- 【MOOC】国家安全概论-西安交通大学 中国大学慕课MOOC答案
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 关于高考评价体系
- 建筑地基处理技术规范DBJ-T 15-38-2019
- 《燃煤火力发电企业设备检修导则》
- 油田地面工程简介
- 驾照体检表完整版本
- 2023年非车险核保考试真题模拟汇编(共396题)
评论
0/150
提交评论