⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pubcardno.c

📁 一整套完整的银行卡系统源代码
💻 C
字号:
/******************************************************* **   源码文件名称 : PubCardNo.c **   功能描述     : 卡号的公共函数 **   所属子系统   : 卡管理 **   当前文件版本 : 4.0.0.0 **   作        者 : Feng **   版本创建日期 : 2004/09/23 **   修改记录     : **   修改人       修改日期     修改位置*******************************************************/#include "code.h"#include "attrdef.h"#include "pubcom.h"#include "cmscode.h"/******************************************************* **	  函数名称:cmsGenCardVerifyBit **   函数功能:生成卡号校验位 **   输入参数: **   			pcCardNo	----	卡号 **   输出参数: **   			pcCardNo	----	卡号 **   输出结果:0			----	成功 **             -1			----	失败 **   其他说明:为卡号生成最后一位校验位, 在输入参数返回*******************************************************/int cmsGenCardVerifyBit ( pcCardNo )char *pcCardNo;{	int iNum;							/* 循环的计数器			*/	int iCardNo[ CARDNO_LEN - 1 ];		/* 卡的每一位数字的数组 */	int iSum=0;							/* 计算使用的合计数		*/	int iCheckNum;						/* 校验位的数字			*/	char acCardNo[ CARDNO_LEN + 1 ];	/* 保存卡号的临时变量	*/	/* 复制入口参数到临时变量 */	memset ( acCardNo , 0x00 , sizeof( acCardNo ) );	strcpy ( acCardNo , pcCardNo );	strpack( acCardNo );	/* 循环检查卡号每一位是否为数字,并转化为int类型到数组中 */	for ( iNum = 0; iNum < strlen ( acCardNo ); iNum ++ )	{		if( acCardNo[iNum] < '0' || acCardNo[iNum] > '9')		{			strcpy ( g_acRspCode, "CMS107" );			pubCrtRspInfo( pcCardNo );			/*			sprintf( g_acRspMsg, "[%s]生成校验位错", pcCardNo );			*/			ERRLOG			return FAILED;		}		iCardNo[iNum] = acCardNo[iNum] - '0';	}		/* 从后向前计数奇数位计算规则是2倍计算 */	for( iNum = strlen ( acCardNo )-1; iNum >= 0; iNum -= 2 )	{		iCardNo[iNum] *= 2;	}	/* 从后向前计数奇数位计算规则是2倍计算 */	/* 从前向后计算,每一位的个位数和十位数相加累计 */	for( iNum = 0 ; iNum < strlen( acCardNo ); iNum ++ )	{		iSum += iCardNo[iNum] / 10 + iCardNo[iNum] % 10;	}	/* 模减去合计数模10的余数即为校验位的数字值 */    if ( ( iSum % 10 ) == 0 )       iCheckNum = 0;    else       iCheckNum = 10 - iSum % 10;	/* 拼接成完整的卡号 */	sprintf ( acCardNo, "%s%d", acCardNo, iCheckNum );	iNum = strlen ( acCardNo );	acCardNo[ iNum ] = '\0';	strcpy ( pcCardNo, acCardNo );	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -