当前位置:文档之家› java课程设计身份证生成和查询系统

java课程设计身份证生成和查询系统

郑州航空工业管理学院Java程序设计课程设计题目:身份证生成和查询系统学号:**********名:***指导老师:**2017 年06 月20日课程设计任务书摘要每个人从出生之后就会有身份证号码,随到达一定的年龄,我们需要去派出所办理属于自己的身份证,身份证也成居民身份证,是用于证明持有人身份的一种法定证件,它将作为每个人独一无二的公民身份的证明工具,本人所做的身份证号自动生成系统是根据输入的家庭住址和出生年日期,性别,通过这些自动生成,所以,第一个功能就是生成,当点击生成按钮后,在生成身份证号后同时将注册的个人信息保存在数据库中。

另一个功能就是查询,输入所产生的身份证号,点击查询按钮后,会将查询者的个人信息输出在界面上,十分快捷,方便。

本系统总共分为5章,第1章讲述了前言概括,第2章系统需求分析,第3章系统概要设计,第4章主要讲述了程序系统的详细实现界面,讲述了系统运行及其调示,第5章作为总结,主要写自己的心得体会及做课题当中所遇到的问题,及解决办法。

该系统编程语言使用Java语言,开发工具为My Eclipse,数据库采用mysql。

关键词:查询;唯一;快捷目录摘要 (2)第1章前言 (4)1.1设计目的 (4)1.2设计背景 (4)第2章需求分析 (5)2.1起源 (5)2.2趋势 (5)第3章系统设计 (6)3.1系统目标 (6)3.2系统功能结构 (6)3.3数据库设计 (7)第4章系统实现 (8)4.1主窗体设计 (8)4.2错误提示 (9)4.3生成界面 (9)4.4生成界面 (10)4.5重点部分代码 (11)第5章结束语 (13)参考文献 (13)第1章前言自1946年第一台计算机问世以来,计算机产业的飞速发展已远远超出人们对它的预料,在某些生产线上,甚至一秒钟就能生产出一台微型计算机,产量猛增,价格低廉,这就使得它的应用范围迅速扩展。

如今,计算机已深入到人类社会的各个领域。

各种应用程序不断地被开发应用,随之程序设计语言也不断发展完善,Java便是这程序语言世界里的一朵奇葩,如今甚为流行。

与C++语言相比,Java是一种完全面向对象的语言,它吸取了C++语言的语句结构,去掉了指针、多继承、运算符重载等这些降低安全性、低可靠性的语言元素,并实现了自动回收垃圾的功能,从而使得Java语言更具有可移植性、安全性、与环境无关性等特点,赢得了广大软件开发者的青睐。

今天,作为计算机科学与技术及相关专业的学生,更应该了解Java语言的语法规范,理解Java语言程序设计的基本特点,掌握利用Java语言编写程序的基本技巧学会利用Java开发环境调试程序。

为了更进一步将所学知识与实际结合起来,我选择了实现Java与MySQL的连接,并实现了一些功能。

故作此报告。

1.1 设计目的1、进一步熟悉Java开发环境,熟悉用Java完成一个应用程序的设计过程,掌握有关编辑、调试和整合程序的方法和技巧。

2、通过此设计,了解Java语言的特点;熟悉Java程序的编写;体会Java语言在问题求解中的特点。

3、总结学习Java语言的心得和体会,并对Java课程设置提出自己的意见和建议。

1.2 设计背景由于我国的人口基数大,我国人口的越来越多,对每个公民的个人管理,是政府义不容辞的责任,中国采用身份证制度。

1984年4月6日,中国国务院发布了《中华人民共和国居民身份证试行条例》,规定:凡居住的中华人民共和国境内的中国公民,除未满16岁者和现役军人,武装警察,以及正在服刑的犯人和被劳动教养的人员,均已申领居民身份证。

人口众多,对于公民的信息管理,信息的存储和处理也显得迫切需要,要适应我国国情,就需要有高效的处理方式和管理方法,因此加快公民的信息化进程是必不可少的。

第2章需求分析2.1 起源1949年解放后,我国公民很长一段时间没有居民身份证,证明自己身份的时候用的是户口簿和单位介绍信。

1984年4月6日,国务院批转公安部关于颁发居民身份证若干问题请示的通知,同时公布了《中华人民共和国居民身份证试行条例》。

自此,我国通过实施居民身份证制度,揭开了居民户口证件化管理的序幕,并且开始颁发第一代居民身份证。

居民身份证登记项目包括姓名、性别、民族、出生日期、住址和有效期。

居民身份证的有效期分为10年、20年、长期三种。

第一代居民身份证为聚酯薄膜密封、单页卡式,15位编码,最初发放的有一大批身份证是用手工填写的。

1985年9月6日,全国人大常委会第12次会议批准发布《中华人民共和国居民身份证条例》,标志着我国居民身份证制度的正式确定。

1986年11月3日,国务院批准《中华人民共和国居民身份证条例实施细则》。

此后,各地根据国务院部署的全国五年(1986至1990年)集中发证规划,分别制定了具体实施方案,在完成试点的基础上,从城市到农村,分期分批全面展开了颁发居民身份证工作。

图为“中国一号公民”单秀荣展示自己身份证。

1999年10月1日起,经国务院批准,在全国范围内建立和实行公民身份号码制度——国家为每个公民从出生之日起就编定唯一的、终身不变的身份代码。

2004年3月29日起中国大陆正式开始为居民换发内藏非接触式IC卡智能芯片的第二代居民身份证。

2013年1月1日起,一代身份证停止使用,新一代身份证中还将登记指纹信息。

身份证这张能够代表我们身份的卡片引起了人们的关注。

2.2 趋势在今天的这个信息时代,政府利用计算机来管理国家人民,已经成为一种趋势。

而部门的运营更需要便捷化,人民信息的建立,查询以及部门的管理等操作,如果要是传统的纸质记录,查找很不方便,而且容易出错,给管理员和政府工作人员带来麻烦,影响政府的工作效率,而如果采用计算机管理,运用以编制好的程序,对公民信息,部门信息采取信息化管理,将是非常的方便和快捷。

运用身份证生成和查询系统,根据公民的个人信息,通过工作人员的输入自动生成身份证号,这个身份证号加入数据库,成为作为中国公民的唯一认证方式,然后通过输入身份证号就可以很方便的查询公民的姓名,所在地等基本信息,实现对人民信息的增加,查询等功能,既节省人力,又节省开支,管理上又操作方便。

在这个简单的身份证生成和查询系统中,虽然不是很完善,但基本功能是可以实现的,即公民的基本信息管理,其基本功能为工作人员可以录入,查询公民的个人信息。

第3章系统设计本节主要介绍系统的系统目标,系统功能结构,系统数据库设计等3.1 系统目标根据上节的需求分析并结合用户的交流沟通,制定如下系统实现目标(1)界面设计简洁,友好,美观大方(2)操作简单,快捷方便(3)数据存储安全,可靠(4)信息分类清晰,准确(5)强大的查询功能,查询灵活性(6)对用户输入的数据,进行严格的检查3.2 系统功能结构系统主要包括生成和查询两大功能3.3 数据库设计CREATE TABLE `per` (`name` varchar(30) NOT NULL,`sex` varchar(20) NOT NULL,`minzu` varchar(20) NOT NULL,`birthday` varchar(40) NOT NULL,`birthplace` varchar(60) NOT NULL,`id` varchar(60) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;字段名数据类型可否为空长度描述name 字符型NOT NULL 30 姓名sex 字符型NOT NULL 20 性别minzu 字符型NOT NULL 20 民族birthday 字符型NOT NULL 40 出生日期birthplace 字符型NOT NULL 60 出生地址id 字符型NOT NULL 60 身份证号通过Navicat for MySQL工具查看所创建的表格,截屏如下第4章系统实现本节对系统设计的主要功能的实现进行分析和说明,并给出系统的主要运行界面。

4.1 主窗体设计主窗体界面也是唯一的界面,是生成和查询共用的一个界面首先布置界面,添加文本框,按钮,下拉框,通过setBounds()方法进行布局,将各个组件进行位置的固定,将下拉框中的按钮各项添加在数组中,使用add()方法,例如在出生地址中,首先选择省,其次是市,每个省有多个市相对应,属于一对多的关系,将市所在的下拉框进行按钮事件监听,使用switch方法得到省的选项,再利用removeAllItems()方法将市的按钮选项移除,通过case()方法用户选择自己的省,再addItems()方法将省对应的市的数组添加上,年份和月份也是相同的原理。

效果图如下所示4.2 错误提示用户在使用过程中可能会忘记输入相对应的选项,有初始化界面可以得知:性别选项默认为男,用户在进行输入时,可以根据自己的真实情况填写,还有考虑到我国汉族人民最多,所以在民族选项中,默认为汉族,如果用户漏掉一些选项,使用JOptionPane.showMessageDialog(),在生成按钮事件监听中添加该方法。

效果图如下所示4.3 生成界面利用hashMap类创建对象,利用类的方法put(),和循环结构将每个省市赋上对应的数字,一个身份证号还包括自己的出生年月,三位数的随机数,再根据所选的性别,男产生一位偶数,女产生一位奇数,使用Random()方法随机产生。

如图所示,将我的个人信息输入,在输入的同时,一,产生随机产生的身份证号,二再将产生的个人信息存入数据库中,以备用户查询使用。

效果图如下所示4.4 生成界面将上一节输入的个人信息中,我们得到了我的身份证号,再通过输入身份证号,点击查询按钮,可以在文本框区域显示刚才输入的个人信息。

4.5 重点部分代码该代码是按钮事件的监听。

使用getSelectedItem()方法得到选项,再转化为字符串形式。

public void actionPerformed(ActionEvent e) {String str10;String je = txt1.getText();// 得到的姓名的值// System.out.println(je);String je1 = (String) jr.getSelectedItem();// 得到的性别的值String je2 = (String) jt.getSelectedItem();// 得到的民族的值if(je1=="男"){int arr[] = {0,2,4,6,8};//定义一个数组int len = arr.length;//获取数组长度给变量lenRandom random = new Random();//创建随机对象int arrIdx = random.nextInt(len-1);//随机数组索引,nextInt(len-1)表示随机整数[0,(len-1)]之间的值int num = arr[arrIdx];//获取数组值str10 = String.valueOf(num);//数字转换为字符串System.out.println("男:"+str10);}else{int arr[] = {1,3,5,7,9};//定义一个数组int len = arr.length;//获取数组长度给变量lenRandom random = new Random();//创建随机对象int arrIdx = random.nextInt(len-1);//随机数组索引,nextInt(len-1)表示随机整数[0,(len-1)]之间的值int num = arr[arrIdx];//获取数组值str10 = String.valueOf(num);//数字转换为字符串System.out.println("女:"+str10);}int ind = jc.getSelectedIndex();Object v = hm.get(pro[ind]);String str2 = (String) jc2.getSelectedItem();// 得到的出生年的值String str3 = (String) jc3.getSelectedItem();// 得到的出生月的值String str4 = (String) jc4.getSelectedItem();// 得到的出生日的值String str6 = (String) jc.getSelectedItem(); // 得到的省的值String str7 = (String) jc1.getSelectedItem();// 得到的市的值String asd = (String) jc1.getSelectedItem();Object v1 = hm1.get(asd);long Temp=Math.round(Math.random()*899+100);String str9 =Long.toString(Temp);String strq = String.valueOf(v);String strq1 = String.valueOf(v1);String birthday = str2 + str3 + str4;String birthplace = str6 + str7;String wan = strq + strq1 + str2 + str3 + str4 + str9+str10;// 得到的身份证号的值第5章结束语由于时间紧张,忙于其他课程设计,经过一个星期的努力,查询API各种类的功能,我的身份证生成和查询系统终于做完了,在这个系统中,由于之前的需求分析,功能分析没有充足的准备,所以在做的过程中走了不少弯路,比如对代码反复修改,算是浪费不少时间,不过也可以把这次当做一次教训。

相关主题