中国的身份证号码由18位数字组成,其中前6位是地区代码,接下来的8位是出生日期(YYYYMMDD格式),然后是3位顺序码(其中第17位奇数分配给男性,偶数分配给女性),最后一位是校验码。

编写一个scratch程序,要求用户输入一个身份证号码,然后检验这个号码是否有效。

有效性检验需要满足以下条件:

1. 身份证号码的位数必须是18位;

2. 前17位是数字,最后一位是数字或者是字母"X";

3. 校验码计算正确。

校验码计算方法:

1. 将身份证号码前17位数字分别乘以不同的系数。从第一位到第十七位的系数分别为:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2。

2. 将这17位数字和系数相乘的结果相加。

3. 将相加后的结果除以11,得到余数。

4. 根据余数通过查表得到对应的校验码,对应关系为:0-1, 1-0, 2-X, 3-9, 4-8, 5-7, 6-6, 7-5, 8-4, 9-3, 10-2。

1.准备工作

(1)默认小猫角色,添加角色Button2,添加文字“开始验证”;

(2)创建一个变量“身份证号”,在舞台上大字显示;

(3)默认白色背景。

2.功能实现

(1)点击绿旗,询问“请输入一个身份证号”,变量“身份证号”大字显示输入的身份证号;

(2)点击“开始验证”;

(3)检验位数是否为18位,如果不是,小猫说“位数不对”2秒,程序结束;

(4)检验前17位是否是数字,第18位是否是数字或者字母"X",如果不是,小猫说“输入错误”2秒,程序结束;

(5)检验校验码是否正确,如果不正确,小猫说“校验码错误”2秒,程序结束。

(6)上面检查都通过,小猫说“身份证号码验证正确”2秒。




解题思路:

1、校验是否是18位,可以用字计算模块中的“xx的字符数”来判断

2、前17位是数字,最后一位是数字或字母"X",需要使用循环,取出每一位字符进行判断,前17位每一位都要大于-1且小于10,第18位要大于-1且小于10或者等于X。

Scratch青少儿编程等级考试四级:身份证号有效性检验。

备注:scratch中是不区分大小写的

3、创建两个列表,根据铰验码计算方法,使用循环得到校验码

Scratch青少儿编程等级考试四级:身份证号有效性检验。

实现步骤:

1、创建变量“身份证号”,编写程序,点击绿旗,询问“请输入一个身份证号”,变量“身份证号”大字显示输入的身份证号

Scratch青少儿编程等级考试四级:身份证号有效性检验。

Scratch青少儿编程等级考试四级:身份证号有效性检验。

2、添加一个按钮角色,用来验证

Scratch青少儿编程等级考试四级:身份证号有效性检验。

3、为按钮添加程序,点击“开始验证”,检验位数是否为18位。如果位数正确,则开始验证输入;如果不是,小猫说“位数不对”2秒,程序结束;

Scratch青少儿编程等级考试四级:身份证号有效性检验。

4、自制积木“验证输入”

Scratch青少儿编程等级考试四级:身份证号有效性检验。

5、定义积木,验证每一位是否符合要求(前17位是否是数字,第18位是否是数字或者字母"X")

Scratch青少儿编程等级考试四级:身份证号有效性检验。

Scratch青少儿编程等级考试四级:身份证号有效性检验。

6、自制积木“校验码计算”

Scratch青少儿编程等级考试四级:身份证号有效性检验。

7、创建两个列表“系数”、“校验码”;在定义两个变量“总和”、“校验码”

Scratch青少儿编程等级考试四级:身份证号有效性检验。Scratch青少儿编程等级考试四级:身份证号有效性检验。Scratch青少儿编程等级考试四级:身份证号有效性检验。

8、定义“校验码计算”,身份证号码前17位数字分别乘以不同的系数,累加求和。

Scratch青少儿编程等级考试四级:身份证号有效性检验。

9、将相加后的结果除以11,得到余数,根据余数通过查表得到对应的校验码(列表是从1开始,余数从零开始,所以给余数加1,建立一一对应关系)

Scratch青少儿编程等级考试四级:身份证号有效性检验。

完整程序下载:Scratch等级考试四级编程题:身份证号有效性检验

本站内容未经许可,禁止任何网站及个人进行转载。