个人信息系统

news/2024/10/18 16:55:19/

1个人信息系统需求分析

1.1初步需求

1 . 建立Person类,包括身份证号码、姓名、电话号码。

2 . 从键盘录入每个人的信息,每次录入要验证合法性。

3 . 身份证号码录入时要验证合法性,合法的身份证号码要求:
(1) 身份证号码长度必须是18位。
(2) 身份证前17位必须是数字;第十八位可以是数字也可以是字母X
(3) 身份证前2位必须是有效省份名称。
(4) 身份证的出生年月部分必须合法时间。
(5) 身份证的校验位必须符合校验规则。

4 . 当身份证号码录入为-1时结束。

1.2 实用需求
1 . Person类内的实用需求
(1)根据录入身份证的号码获得这个同学省份信息的方法。
(2)根据录入身份证的号码获得星座的方法
(3)根据录入身份证的号码获得性别的方法
(4)根据录入身份证的号码获得准确年龄的方法(按照系统日期准确计算)。
(5)根据录入身份证的号码获得是否成人的方法。能否和另一个人结婚的方法( 查一下婚姻法,看年龄,只能和年龄符合的异性结婚。)

2 . Test 类内的实用需求
(1) 根据提示进行录入身份证号码,录入姓名,录入手机号码。
(2) 当录入的身份证号码不符合初步需求内的要求时,提示“您输入的身份证号码不合法,请重新录入”,并进行重新录入。
(3) 当身份证号码,姓名,手机号码全部正确时打印。
(4) 将之前正确的信息存入一个集合内。
(5) 当身份证号码输入-1时,不再能录入任何数据,将之前正确的信息按一定的排序规则排序。
(6) 排序规则:1按省份顺序排序
2按年龄排序

2 个人信息系统思路
2.1 思路图解

2.2 Person组成部分叙述。
(1)Private: 采用Private访问限定符,为了保证数据的安全性,我们会把数据定义为private等(私有、封装),如果想要调用就会用到set()方法与get方法或者构造函数方法。使得后面定义的变量只有在该类中才能访问。

(2)类:String类。因为我们录入的信息可以全部归纳为字符串类.

(3)有参构造方法和无参构造方法:都是在构造的时候被调用。如果在创建对象时不写参数,调用的就是无参的构造方法。可是如果你写的有有参的构造方法,而没有无参的构造方法,那么再“创建对象时不写参数”就会报错,程序会认为你知道该怎么做。如果构造方法有参数,在创建对象时传入了参数,那么就会调用此方法,这一点和重载类似。

(4)构造方法:set()方法和get()方法,因为在刚开始我们给个人信息数据定义为private,所以我们只能通过这个方法去给数据赋值和调用数据

(5)isCorrectId(String id)方法【判断长度】:判断身份证的长度是否为18位,这里只是简单判断了一下身份证长度。如果身份证包含了多个字母,也可以,只判断长度,并没有进一步判断。
(6)getXingBie()方法【判断性别】:根据用户录入的身份证号码,系统调用这个方法就可以输出该身份证号码主人的性别。

(7)getProv()方法【判断省份】:根据用户录入的身份证号码,取出身份证号码有效位段,通过该方法内的两个集合进行比较,得到该号码的省份。

(8)getAge()方法【判断年龄】:取出身份证中记录出生日期的那串数字,进行年月日划分。再和该方法中的提取到的系统的年月日进行算法运算,进而得到该身份证号码主人的年龄。

(9)getXingZuo()方法【判断星座】:通过switch循环进行判断用户的星座。

(10) marry(Person p1)方法和wasOverAgeForMarry()方法【能否结婚】:wasOverAgeForMarry()方法判断了两人是否达到法定结婚年龄,男二十二周岁和女二十周岁,marry(Person p1)方法判断两人的性别是否不一样。两个方法一起使用,才能保证达到法定年龄和性别不同时,可以输出“恭喜xxx和xxx结婚成功”,年龄不符输出“对不起您没有到达结婚年龄您不能结婚”,性别一致时输出“对不起您对象没有到达结婚年龄您不能结婚”。

(11)toString()语句【输出语句】:对以上的方法的输出结果进行注释和编辑,以便让用户得到最佳的效果体验。

2.3 比较器类组成叙述。

2.4 Test类组成部分叙述。
(1)java.util包【类包】:
动态数组ArrayList,提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。
HashMap
Scanner
Comparator比较器
(2) isCorrectBirthday(String year, String month, String day)方法【判断是否有效年月】:对13578 10 12 判断身份证的年月日是否为有效,例如闰年的二月有29天;一月,三月,五月,七月,八月,十月,十二月有31天;四月,六月,九月,十一月有三天的情况进行整理与判断。

(3)isCheckCode(String id)方法【判断校验位】:校验位是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

(4)isCorrectSf(String sf)方法【判断是否省份是否有效】:Person内的getProv()方法只有判断省份,空的省份也可以输出,所以这里的方法就进一步判断省份是否正确存在。

(5)isNumber(String id)方法【判断身份证数字部位是否正确】:对用户录入的身份证进行判断,判断是否是数字。

(6)isCorrectId(String id)方法【总体判断方法】:当以上的方法全部正确时,才不会让用户重新录入。

(7) show1(ArrayList list)方法【ArrayList的循环打印方法】:
因为每录入一个正确的信息就会存入动态数组中,要用循环打印。

(8)while(true)语句【循环录入语句】:为了实现让用户可以录入多个信息,采用While循环来实现。

(9)Person类方法调用:通过调用Person内的方法进而得到该身份的相关信息。

(10)比较器调用:通过比较器对动态数组内的数据按年龄或省份进行排序。

3.个人信息系统流程图
3.1 Person内流程图
3.1. (1)性别方法

3.1.(2)星座方法

                          truefalsetruefalse              truefalse              true省略其他 其他的表达式            省略语句式     同理

3.1.(3)省份方法

3.1.(4)年龄方法

3.1.(5)判断结婚

                                falsetruefalsetruefalsetrue

3.2 Test内主要流程图


入 录入


中 false
, true
并 false

入 true
下 false


值 true
true

                      false录入

4.结果演示
题目举例
输入两个正确的用户信息 一个身份证号码错误的信息 再输入id=-1;
运行(绿色标注为提示语句和输出语句)
请输入身份证号码:
13
请输入姓名:
小红
Id=13 姓名 小红 性别男 星座双鱼 省份河北省 年龄19
请输入身份证号码:
13
请输入姓名:
小明
Id=13姓名 小明 男 星座白羊 省份河北省 年龄18
请输入身份证号码:
13
身份证号码有误,请重新输入:
请输入身份证号码:
-1
按年龄排序后:
Id=13 姓名 小红 性别男 星座双鱼 省份河北省 年龄19
Id=13 姓名 小明 性别男 星座白羊 省份河北省 年龄18
按省份排序后:
Id=13 姓名 小红 性别男 星座双鱼 省份河北省 年龄19
Id=13 姓名 小明 性别男 星座白羊 省份河北省 年龄18


http://www.ppmy.cn/news/576136.html

相关文章

隐私信息检索(隐匿查询)

隐私信息检索(隐匿查询) 1 隐私信息检索概述1.1 使用场景1.2 查询流程1.3 与不经意传输之间的差别 2 隐私信息检索发展过程(类型)2.1 基于数论的PIR方案2.2 基于同态加密的PIR方案2.3 基于编码理论的单服务器PIR方案 3 基于同态加…

公民个人信息保护方案汇总

随着大数据时代的到来,个人信息保护得到了前所未有的重 视。国际上围绕个人信息的获取、分析、利用和控制的竞争越来越 激烈,个人信息安全已成为维护国家安全、保持社会稳定、关系长 远利益的关键组成部分,备受各国政府的关注和重视。如何确保…

个人信息、敏感个人信息的识别和保护原则

一、个人信息与敏感个人信息的界定: 我国现行涉及个人信息以及个人敏感信息的规定分散在不同部门发布的规范性文件。法律层面主要有《中华人民共和国民法典》、《中华人民共和国个人信息保护法》;在国家标准层面,由国家标准化管理委员会发布…

户籍信息查询

详情链接:http://www.haoservice.com/docs/141 户籍信息查询 支持格式: JSON/XML 请求方式: GET/POST 明文方式请求参数: 名称类型必填说明 keystring是API KEY nameString是姓名 idcardString是身份证号 密文方式请求参数&…

whois 如何查询到用户信息

告诉你如何使用whois命令查询域名被隐藏的用户信息,其实查到的也是注册商的信息 在linux中使用命令查询: 例如:whois baidu.com 查询结果: Domain Name: BAIDU.COM Registry Domain ID: 11181110_DOMAIN_COM-VRSN Registrar WH…

个人信息调查

个人信息调查 个人信息调查,这是一个小的桌面窗体。用java来实现的。里面的控件用到了,单选框,复选框,文本框以及三个button 按钮。每一个按钮的功能都不相同。其中有年龄 这一项。年龄的大小控制在 0- 199这个氛围里。如果超出这…

个人信息和个人敏感信息

附 录 A(资料性附录)个人信息示例 个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息,如姓名、出生日期、身份证件号码、个人生物识别信息、住址、通信通讯联系方式、通信记录和内容、账号密码…