身份证验证程序(C++版本)
#include <array>
#include <ctime>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <windows.h>
using namespace std;
//以下是常量 - 全局 - 数组 - 一维
/** 各位数的系数 */
int const value_coefficient[] = { 7 , 9 , 10 , 5 , 8 , 4 , 2 , 1 , 6 , 3 , 7 , 9 , 10 , 5 , 8 , 4 , 2 };
/** 校对码 */
int const value_corresponding[] = { 1 , 0 , 'X' , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 };
//以下是变量 - 全局 - 整型
/** 临时变量1 */
int temp1;
/** 临时变量2 */
int temp2;
//以下是函数 - 整型
/** 等待x秒 */
int sleep( int );
//以下是函数 - 字符串型
/** 身份证号码 */
char char_ID[19];
//以下是函数 - 无类型
/** 开始语 */
void function_Start( );
/** 结束语 */
void function_Finish( );
/** 总输入 */
void function_Input( );
/** 总输出 */
void function_Output( );
/** 清空界面 */
void function_Clear( );
/** 验证 */
void function_Compute( );
/** 输入是否合法 */
void function_Input_violation( );
int main()
{
SetConsoleTitle("身份证验证");
// function_Start( );
function_Input( );
function_Compute( );
// function_Finish( );
return 0;
}
int function_sleep( int x )
{
for( int i = 0 ; i < x ; i++ )
Sleep(1000);
}
void function_Clear()
{
system( "pause" );
system( "cls" );
}
void function_Start( )
{
cout << left;
cout << "欢迎进入验证天地!!!" << endl;
function_sleep( 3 );
cout << "下面是验证身份证号码是否正确!!!" << endl;
function_sleep( 1.5 );
function_Clear( );
}
void function_Finish( )
{
cout << left;
cout << "感谢你光临验证天地!!!" << endl;
function_sleep( 3 );
cout << "希望你再次光临!!!" << endl;
function_sleep( 2 );
function_Clear( );
}
void function_Input_violation( )
{
for( int i = 0 ; char_ID[i] != '\0' ; i++ )
temp1 = i;
if( temp1 != 17 )
{
cout << "此身份证号码不合法!" << endl;
cout << "原因可能是:" << endl;
cout << "再";
temp2 = 1;
}
else
{
cout << "验证通过!" << endl;
temp2 = 0;
}
}
void function_Input( )
{
do
{
cout << "请输入你的身份证号码(18位):";
gets(char_ID);
cout << "正在验证此身份证号码是否合法中......" << endl;
function_Input_violation( );
}while( temp2 == 1 );
cout << "正在计算中......" << endl;
}
void function_Compute( )
{
int Answer1 , Answer2;
Answer1 = Answer2 = 0;
for( int i = 0 ; i < 17 ; i++ )
Answer1 += ( char_ID[i] - 48 ) * value_coefficient[i];
Answer2 = Answer1 % 11;
if( (char_ID[17] - 48) == value_corresponding[Answer2] )
{
cout << "验证正确!";
temp2 = 1;
}
else
{
cout << "验证失败!";
temp2 = 0;
}
}
转载请注明作者和出处,并添加本页链接。
原文链接: 139.196.92.124/post/103