//////////////////////////////////////////////////////////////////////
//
// Designed by Liutao, Xi'an Jitotong University
// 2001-04-23
//
//////////////////////////////////////////////////////////////////////
//
// LLUHN.cpp: implementation of the LLUHN class.
//
//////////////////////////////////////////////////////////////////////
#include "LLUHN.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
LLUHN::LLUHN()
{
m_strCardNum = _T("");
}
LLUHN::LLUHN(CString strCardNum)
{
for (int i=0; i<strCardNum.GetLength(); i++)
if (!isdigit(strCardNum[i]))
{
LLUHN();
return;
}
m_strCardNum = strCardNum;
}
LLUHN::~LLUHN()
{
m_strCardNum = _T("");
}
#define CurrentDigit(i) (m_strCardNum[i]-'0')
BOOL LLUHN::IsValid()
{
int sum = 0;
if (m_strCardNum.IsEmpty()) return false;
for (int i=m_strCardNum.GetLength()-2; i>=0; )
{
sum += CurrentDigit(i)*2>10 ? 1+(CurrentDigit(i)*2)%10 : CurrentDigit(i)*2, i--;
if (i>=0) sum += CurrentDigit(i), i--;
}
return (10-sum%10)==(m_strCardNum[m_strCardNum.GetLength()-1]-'0');
}
char LLUHN::GetCheckSum()
{
int sum = 0;
if (m_strCardNum.IsEmpty()) return false;
for (int i=m_strCardNum.GetLength()-1; i>=0; )
{
sum += CurrentDigit(i)*2>10 ? 1+(CurrentDigit(i)*2)%10 : CurrentDigit(i)*2, i--;
if (i>=0) sum += CurrentDigit(i), i--;
}
return (10-sum%10+'0');
}
#undef CurrentDigit
BOOL LLUHN::SetCardNum(CString strCardNum)
{
for (int i=0; i<strCardNum.GetLength(); i++)
if (!isdigit(strCardNum[i])) return false;
m_strCardNum = strCardNum;
return true;
}
const CString LLUHN::GetCardNum()
{
return m_strCardNum;
}
LUHN算法的作用是为了计算信用卡等证件号码的合法性
5星 · 超过95%的资源 需积分: 16 79 浏览量
2008-11-11
23:21:09
上传
评论
收藏 1KB ZIP 举报
云海玉弓缘
- 粉丝: 11
- 资源: 10
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈