`
sogotobj
  • 浏览: 672923 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C语言版的单位法人代码校验函数

阅读更多

多年没和统计报表打交道了,不知现在还存不存在单位法人代码,反正十年前是每个单位,无论是机关、企事业单位还是社会团体,都要求有这个代码。

当作怀旧,贴出这个十多年前C语言函数代码,现临时写了个演示程序:

#include<stdio.h>
#include
<string.h>
#include
<stdlib.h>

/*获取单位法人代码校验位*/
charGetLegalPersonCheckCode(char*code)
{
constintValue[]={3,7,9,10,5,8,4,2};
intx,check=0;
for(x=0;x<8;x++)
{
if(code[x]>='0'&&code[x]<='9')
check
+=(code[x]-'0')*Value[x];
elseif(code[x]>='a'&&code[x]<='z')
check
+=(10+code[x]-'a')*Value[x];
elseif(code[x]>='A'&&code[x]<='Z')
check
+=(10+code[x]-'A')*Value[x];
}
check
=11-(check%11);
switch(check)
{
case10:
check
='X';
break;
case11:
check
='0';
break;
default:
check
+='0';
}
returncheck;
}

intmain(intargc,char*argv[])
{
charlpCode[10];
printf(
"请输入要验证的单位法人代码:");
scanf(
"%s",lpCode);
if(strlen(lpCode)!=9)
printf(
"输入的单位法人代码位数错误! ");
elseif(GetLegalPersonCheckCode(lpCode)!=lpCode[8])
printf(
"输入的单位法人代码校验位错误! ");
else
printf(
"单位法人代码%s正确 ",lpCode);
system(
"pause");
return0;
}

我是搞统计的,以前又是单位的计算机管理负责人,同统计报表打交道最多,每次各统计专业月报、年报以及各种统计普查时,统计报表上都印有这个代码,代码印刷格式为:XXXXXXXX-X,“-”左边是8位数字代码,右边是1位校验码(0 -- 9或者X),每个代码位都印有一个小方框,真正输入时只输入9位代码,“-”是不输入的。

例子很简单,要求输入一个单位法人代码,然后检查输入的代码长度是否为9,然后调用GetLegalPersonCheckCode函数获取该代码的校验位,并与输入的代码校验码比较。

可能有人注意到我上面说左边是8位数字代码,而函数计算中却有a - z和A - Z等字母,这是因为当初有很多单位来不及从技术监督部门获取单位代码,而各种统计报表又必须要填单位代码,所以,统计部门一般以2位字母打头,后面跟6位数字,组成临时单位代码的缘故。

其实,因为该函数利用8位单位代码计算并返回其校验码,不仅能起到验证单位法人代码的作用,也可用来计算单位法人代码,只不过正式的单位代码只能由技术监督部门审核发放,以保证在全国范围内所有的单位代码都是唯一的,作为统计部门,我们只用它来计算临时单位代码。

分享到:
评论

相关推荐

    c语言json格式校验代码

    总的来说,这个C语言的JSON格式校验代码提供了一种实用的方法来验证JSON数据的格式。开发者可以将此代码集成到他们的项目中,以确保接收到的JSON数据符合标准,避免因数据格式错误导致的程序异常。理解并使用这个库...

    组织机构代码校验函数

    提供组件机构代码校验函数,可以由外部函数直接调用,返回true或false

    C语言实现CRC16校校验

    CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据通信和存储系统中的错误检测技术。...C语言实现CRC16,虽然涉及一些位操作和数学概念,但理解了基本原理后,可以编写出高效且可靠的代码。

    单位组织机构代码校验函数(oracle)

    ### 单位组织机构代码校验函数(Oracle) #### 概述 本文将详细介绍一个用于验证单位组织机构代码有效性的Oracle标量函数。该函数在实际的商业环境中得到了广泛的应用与检验,确保了数据处理过程中的准确性与一致...

    统一社会信用代码校验函数SQL

    校验统一社会信用代码的合法性,是SQL2008的标量函数

    社会统一信用代码校验函数(JavaScript)

    ### 社会统一信用代码校验函数(JavaScript) #### 知识点概述 本文将详细介绍一个用于验证中国社会统一信用代码的社会统一信用代码校验函数(JavaScript)。此函数旨在检查输入的社会统一信用代码是否符合规定的...

    oracle统一社会信用代码校验函数

    oracle统一社会信用代码的校验函数

    32位CRC校验c语言代码

    32位CRC校验c语言代码,参数:内容,长度,种子值,直接调接口即可使用。

    LRC校验C语言实现

    在实际项目中,`LRC-校验生成源码`可能包含了实现LRC校验功能的C语言代码,可以参考学习如何在实际编程中应用LRC校验。通过阅读和理解源码,你可以加深对位运算和错误检测机制的理解,提升C语言编程技能。 总结来说...

    crc16校验函数c语言

    适用于标准MODBUS通信协议校验,经验证crc16校验吗无误

    c语言crc8校验源代码

    根据提供的信息,我们可以详细解析与C语言中的CRC8校验相关的知识点。 ### 一、CRC8简介 CRC(Cyclic Redundancy Check)循环冗余校验是一种用于检测数据传输错误的方法。CRC8特指使用8位多项式进行计算的CRC校验...

    FLASH-ECC校验算法的C语言实现

    **标题:“FLASH-ECC校验算法的C语言实现”** 在存储系统中,尤其是在嵌入式设备中,Flash存储器由于其非易失性、低功耗和高密度等特点,被广泛使用。然而,Flash存储器在多次读写操作后可能会出现数据错误,这是...

    CRC16校验C语言程序源码(附完整的可执行的C语言代码).pdf

    CRC16校验C语言程序源码(附完整的可执行的C语言代码).pdf

    最新oracle验证统一社会信用代码的函数

    标题提到的“最新oracle验证统一社会信用代码的函数”很可能是一个自定义的PL/SQL函数,设计用于校验输入的USCC是否符合规定的格式和规则。这个函数可能包含了对USCC编码结构的逻辑检查,例如: 1. 长度检查:确保...

    BCC校验含源码

    在本案例中,我们有一个使用C#编程语言开发的项目,它包含VS(Visual Studio)环境下的源代码,可以用于理解和实现BCC校验功能。 **描述:“VS开发,c#语言,BCC校验赋源码,可直接运行。希望有帮助。”** 这个...

    CRC校验——C语言代码

    CRC16_CCITT、CRC16_XMODEM、CRC16_MODBUS、CRC16_MAXIM、CRC16_USB的C语言代码

    c语言实现crc校验

    使用c语言模拟人工crc校验算法。使用c语言模拟人工crc校验算法。

    Oracle校验统一社会信用代码函数

    本人根据GB 32100-2015 法人和其他组织统一社会信用代码编码规则原创,经过测试可以用于商业环境。

    18位身份证和组织机构代码校验ORACLE函数

    ### 18位身份证与组织机构代码校验的Oracle函数详解 #### 一、18位身份证号码结构解析 18位身份证号码是中国公民身份识别的重要组成部分,它由以下四部分构成: 1. **地址码**(六位):表示持证人常住户口所在地...

Global site tag (gtag.js) - Google Analytics