📄 id2.c
字号:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
void Get(char* id);
void ShowError(void);
int Check1(char* id);
int Check2(char* id,char* num);
void Account1(char* id, char* num);
void Account2(char* id,char* num);
int Retry(void);
int Quit(void);
int main(void)
{
char ID[10],Num[11];
int a;
do
{
Get(ID);
if((Check1(ID)==0)||(Check2(ID,Num)==0))
{
ShowError();
}
else
{
Account1(ID,Num);
Account2(ID,Num);
printf("\nYour ID is as following: %s%d\n",ID,Num[10]);
}
a = Retry();
}while(a==1);
Quit();
}
void Get(char* id)
{
int a;
printf("Please enter 9 digits for your ID number including the letter:\n");
id[0] = getch();
id[0] = toupper(id[0]);
printf("*");
for(a=1; a<9; a++)
{
id[a] = getch();
printf("*");
}
id[9]='\0';
}
int Check1(char* id)
{
if((id[0]<=65)||(id[0]>=90))
{
return 0;
}
return 1;
}
int Check2(char* id, char* num)
{
int a;
for(a=1; a<9; a++)
{
if((id[a]>='0')&&(id[a]<='9'))
{
num[a+1]=id[a] - '0';
}
else
{
return 0;
}
}
num[11]='\0';
return 1;
}
void Account1(char* id, char* num)
{
if(((id[0]>=65)&&(id[0]<=72))||(id[0]==74)||(id[0]==75))
{
num[0] = 1;
}
else if(((id[0]>=76)&&(id[0]<=78))||(id[0]>=80)||(id[0]<=86))
{
num[0] = 2;
}
else if((id[0]>=87)&&(id[0]<=90)||(id[0]==73)||(id[0]==79))
{
num[0] = 3;
}
}
void Account2(char* id,char* num)
{
int Total;
switch (id[0])
{
case 'A' :
case 'L' :
case 'W' :
num[1] = 0;
break;
case 'B' :
case 'M' :
case 'X' :
num[1] = 1;
break;
case 'C' :
case 'N' :
case 'Y' :
num[1] = 2;
break;
case 'D' :
case 'P' :
case 'Z' :
num[1] = 3;
break;
case 'E' :
case 'Q' :
case 'I' :
num[1] = 4;
break;
case 'F' :
case 'R' :
case 'O' :
num[1] = 5;
break;
case 'G' :
case 'S' :
num[1] = 6;
break;
case 'H' :
case 'T' :
num[1] = 7;
break;
case 'J' :
case 'U' :
num[1] = 8;
break;
case 'K' :
case 'V' :
num[1] = 9;
break;
}
num[1]=num[1]*9;
num[2]=num[2]*8;
num[3]=num[3]*7;
num[4]=num[4]*6;
num[5]=num[5]*5;
num[6]=num[6]*4;
num[7]=num[7]*3;
num[8]=num[8]*2;
num[9]=num[9]*1;
Total=num[0]+num[1]+num[2]+num[3]+num[4]+num[5]+num[6]+num[7]+num[8]+num[9];
num[10]=10-(Total%10);
if (num[10]==10)
{
num[10]=0;
}
}
void ShowError(void)
{
printf("\nError!Please check out your ID and press any keys to try again\n");
getch();
}
int Retry(void)
{
int d;
printf("Try again?(Y/N)\n\n",d);
d = getch();
d = toupper(d);
switch (d)
{
case 'Y' :
system("cls");
return 1;
case 'N' :
printf("Please contact with Max if you got some questions, Thanks!!\n");
return 0;
}
}
int Quit(void)
{
printf("Press any keys to quit!");
getch();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -