长春大学课程设计说明书——户籍管理系统_第1页
长春大学课程设计说明书——户籍管理系统_第2页
长春大学课程设计说明书——户籍管理系统_第3页
长春大学课程设计说明书——户籍管理系统_第4页
长春大学课程设计说明书——户籍管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论