文档库 最新最全的文档下载
当前位置:文档库 › java课程设计身份证生成和查询系统

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

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

郑州航空工业管理学院

Java程序设计课程设计

题目:身份证生成和查询系统

学号:141009117

姓名:王创业

指导老师:王杰

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;

通过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;//获取数组长度给变量len

Random 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;//获取数组长度给变量len

Random 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各种类的功能,我的身份证生成和查询系统终于做完了,在这个系统中,由于之前的需求分析,功能分析没有充足的准备,所以在做的过程中走了不少弯路,比如对代码反复修改,算是浪费不少时间,不过也可以把这次当做一次教训。总的来说,该系统所要求的功能已经全部实现,让本人还算感到欣慰,当然还有一些美中不足,像主界面,由于本人的较low的审美观,所以在别人看来应该是很丑的。之所以选择做身份证号生成和查询系统,是因为我之前在网上看到关于这个系统的例子是没有的,还有就是同学们很少做这个,图书管理系统及其他系统,做的比较多,我本人对自己做的系统也算是十分感兴趣。

在做该系统中,也是遇到不少的问题,其中最大的问题就是在用户选择自己的家庭住址,首先是省,其次是市,然后是县等等,依次填写。之前没有学过解决下列框按钮的类和方法,所以对此一头雾水,问同学,同学也不太清楚,只好上网去搜,在一个例题代码中,学会了解决问题的方法,掌握了与此相关所用的类。

关于自己的心得体会,就是一定做好需求分析,以后在做任何一个系统,不能急于做,就好比写一篇作文一样,先要想好整篇文章采用什么结构,写代码也是一样,分析好所做系统的功能,以及如何实现。这样可以精简代码,减少代码的冗余量。

最后,我在这里感谢老师对我的帮助,还有室友给了指导性的意见和建议。感谢他们。

参考文献

1 牛晓太《Java程序设计教程》清华大学出版社

2金松河王捷黄永利《Java程序设计经典课程》清华大学出版社

3 网上参考[https://www.wendangku.net/doc/229200977.html,]Jsp图书馆管理系统源码

指导教师评语

成绩:

指导教师签名:

年月日

检验身份证号码的正确性

检验身份证号码的正确性 =IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:1 7")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00")))) EXCEL中如何提取身份证出生日期、性别、检验身份证号码的正确性 中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。 18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。 其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。 1、提取籍贯地区的行政区划代码(A2为身份证号,下同) 15与18位通用:=LEFT(A2,6) 如果有一个编码和省份地区的对照表,可以用VLOOKUP函数来提取地区信息。 2、提取出生日期信息 15位:=--TEXT(19&MID(A2,7,6),"#-00-00") 18位:=--TEXT(MID(A2,7,8),"#-00-00") 15与18位通用: =--TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),"#-00-00") 简化公式: =--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00") (请将输入公式的单元格格式设置为日期格式) 3、提取性别信息 15位:=IF(MOD(RIGHT(A2),2)=1,"男","女") 18位:=IF(MOD(MID(A2),17,1)=1,"男","女") 15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,"男","女") 简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女") 4、检验身份证号码的正确性 18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计算出来的,其值0~9或X。一般情况只要有一位数字输入错误,依照规则计算后就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式: =MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-R OW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2,1) 对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。

身份证验证

彩色影像扫描仪 全国公民身份信息核查比对服务 操作手册 全国公民身份证号码查询服务中心 2010年7月

目录 1功能介绍 (1) 1.1关于彩色影像扫描仪 (1) 1.2关于全国公民身份信息核查比对服务 (1) 1.2.1服务定义 (1) 1.2.2核查比对结果 (2) 2建议配置 (3) 3扫描仪驱动安装 (4) 3.1硬件驱动程序安装 (4) 3.2扫描仪核心软件安装 (4) 4登录系统 (7) 5安装控件 (8) 5.1添加“可信站点” (8) 5.2“可信站点”自定义设置 (9) 5.3选择服务\安装控件 (10) 6扫描并核查比对 (12) 6.1正确放入证件 (12) 6.2选择证件类型 (12) 6.3扫描并核查比对 (13) 6.4反馈核查比对结果 (14) 6.5手工修改 (14) 7客户服务 (16) 8常见问题解答 (17) 8.1系统登录问题 (17) 8.2扫描仪没有响应 (17) 8.3页面错误导致无法提交 (18) 9特别声明 (20)

感谢您使用全国公民身份证号码查询服务中心提供的身份信息核查比对服务,我们将竭诚为您服务。 防范欺诈风险是你我共同的责任。 1功能介绍 1.1 关于彩色影像扫描仪 此彩色影像扫描仪是全国公民身份证号码查询服务中心监制的一款集扫描、识别、录入、核查比对为一体的专用扫描设备。扫描、识别、录入与我们的核查比对服务绑定在一起一键集成,为客户简化手工录入流程,提高工作效率。 1.2 关于全国公民身份信息核查比对服务 1.2.1服务定义 全国公民身份信息核查比对服务是指公民个人在进行社会和经济活动时,向有关机构主动提交身份证件,有关机构工作人员将公民主动提交的身份号码、姓名等信息传送至“全国公民身份信息系统”(以下简称“系统”)进行比对,系统将提供的数据与存储的数据进行比对后,返回被核查人公民身份号码、姓名与系统存储数据是否一致的结果。在核查比对结果为“一致”的前提下,如果系统存有该被核查人照片,则可以进一步比对照片,不提供任何其他信息。

最新-身份证号码变更证明 精品

身份证号码变更证明 篇一:公民身份证号码变更证明公民身份号码更正证明当事人姓名:当事人住址:--------------------更正前公民身份号码---------------更正后公民身份号码----------------更正原因:------申请人住址:------申请理由:----------申请人签名:-----------联系电话:-----------经办人:更正日期:-年-月-日派出所会电脑打印出一份你的户籍证明,上面有你的详细户籍资料,同时派出所在上面再注明,此人原来的身份证号码是,现在的身份证号码是,这两个号码是属于同一个人,盖上派出所章子就行了。 公民身份证号码变更证明本辖区公民_______(曾用名_______),住址:_________________。 原使用的公民身份证号码为:系______________________(原因)。 根据《中华人民共和国居民身份证法》的有关规定及公民身份证号码的编制原则,为确保公民身份证号码的准确性和惟一性,自_______年_____月_____日起将原号码更改为:特此证明。 (县级公安机关名称并盖户口专用章)年月日注:请为申请人____________办理公民身份证号码变更的相关事宜。 此件为原件,如需要请留存复印件。 发函单位联系电话:篇二:公民身份证号码更改证明公民身份证号码更改证明本辖区公民_________(曾用名______)住址_____________________________________________________。 原使用公民身份证号码为:系(重错号)。 根据中华人民共和国居民身份证法的有关规定及公民身份证号码的编制原则,为确保公民身份证号码的准确性和唯一性,自_______年____月____日起将原号码更正为:特此证明。 (县级公安机关名称并盖户口专用章)年月日注:请为申请人_____________办理公民身份证号码变更的相关理宜,此件为原件,如需要请留存复印件。 篇三:身份证号变更证明身份证号变更证明身份证号变更证明公民身份证号码变更证明本辖区居民:性别:民族住址:原使用的公民身份证号码为□□□□□□□□□□□□□□□□□□系(重错号)。

身份证证明样本

身份证证明样本 身份证证明样本身份证证明样本公民身份号码更正证明当事人姓名:XXX 当事人住址:--------------------更正前公民身份号码---------------更正后公民身份号码----------------更正原因:------申请人住址:------申请理由:----------申请人签名:-----------联系电话:-----------经办人:更正日期:-年-月-日―――――――――――――――――――――――――公民身份号码更正证明本辖区公民XXX第一条为了证明居民身份,便利公民进行社会活动,维护社会秩序,保障公民的合法权益,制定本条例。第二条居住在中华人民共和国境内的年满十六周岁的中国公民应当依照本条例的规定,申请领取中华人民共和国居民身份证。正在服现役的人民解放军军人、人民武装警-察,不领取居民身份证,由中华人民共和国中央军事委员会和中国人民武装警-察部队总部颁发军人和武装警-察身份证件。第三条居民身份证登记项目包括姓名、性别、民族、出生日期、住址。居民身份证登记项目使用全国通用的文字填写。民族自治地方的自治机关根据本地区的实际情况,可以决定同时使用本民族的文字或者选用一种当地通用的民族文字。第四条居民身份证的有效期限分为十年、二十年、长期三种。十六周岁至二十五周岁的,发给有效期十年的居民身份证;二十六周岁至四十五周岁的,发给有效期二十年的居民身份证;四十六周岁以上的,发给长期有效的居民身份证。第五条居民身份证由公安机关统一印制,颁发和管理。第六条公民应当向常住户口所在地的户口登记机关申请领取居民身份证,并按照规定履行申请领取手续。第七条华侨回国定居的,在办理户口登记手续时,申请领取居民身份证。第八条居民身份证有效期满或者登记内容有变更、更正或者证件严重损坏不能辩认时,应当按照规定申报换领新证;丢失证件的,应当申报补领。第九条公民被征集服现役的,在办理注销户口手续时,交回居民身份证;退回现役后,发还居民身份证或者再申请领取居民身份证。第十条被判处拘役、有期徒刑以上刑罚的人和被劳动教养的人以及被羁押的人,尚未申请领取居民身份证的,在服刑、劳动教养和羁押期间,不发给居民身份证;已领取居民身份证的,由执行机关按照规定收缴其居民身份证;释放或者解除劳动教养后,由本人申请领取居民身份证或者将原居民身份证发还本人。第十一条公民出境按照规定需要注销户口的,在办理注销户口手续时,交回居民身份证。第十二条公民死亡的,由公安机关收回居民身份证。第十三条公安机关在执行任务时,有权查验居民身份证,被查验的公民不得拒绝。执行任务的公安人员在查验公民的居民身份证时,应当出示自己的工作证件。公安机关除对于依照《中华人民共和国刑事诉讼法》被执行强制措施的人以外,不得扣留公民的居民身份证。第十四条公民在办理涉及政治、经济、社会生活等权益的事务时,可以出示居民身份证,证明其身份。有关单位不得扣留或者要求作为抵押。第十五条有下列行为之一的,按照《中华人民共和国治安管理处罚条例》有关规定给予处罚:(一)拒绝公安机关查验居民身份证的;(二)转让、出借居民身份证的;(三)使用他人居民身份证的;(四)故意毁坏他人居民身份证的;第十六条伪造、变造居民身份证的或者窃取居民身份证情节严重的,依照《中华人民共和国刑法》第一百六十七条的规定处罚。第十七条公安机关工作人员在执行本条例时,徇私舞弊、侵害公民合法权利和利益的,应当给予行政纪律处分,情节严重构成犯罪的,应当依法追究刑事责任。第十八条居留在中华人民共和国境内的外国人和无国籍人,不适用本条例。第十九条本条例的实施细则,由公安部制定,报国务院批准后施行。第二十条本条例自公布之日起施行。【章名】附:刑法有关条文第一百六十七条伪造、变造或者盗窃、抢夺、毁灭国家机关、企业、事业单位、人民团体的公文、证件、印章的,处三年以下有期徒刑、拘役、管制或者剥夺政治权利;情节严重的,处三年以上十年以下有期徒刑。治安管理处罚条例有关条文第十九条有下列扰乱公共秩序行为之一,尚不够刑事处罚的,处十五日以下拘留、二百元以下罚款或者警告:(一)扰乱机关、团体、企业、事业单位的秩序,致使工作、生产、营业、医疗、教学、科研不能正常进行,尚未造成严重损失的;(二)扰乱车站、码头、民用航空站、市尝商尝公园、影

相关文档