我找到了以前写的注册机的原程序,是VC++,有兴趣可看,不知是否有帮助。 (1011字)
//姓名是否合适if(i==0)
{
ax=m_name.GetLength();
if(ax<5)
{i=1;m_code="您姓名中的英文字符应不少于五个!";}
}
//由姓名算变换后的注册码
if(i==0)
{n=0;
for(i=0;i<ax;i++)
{if(m_name[i]>64&&m_name[i]<91)
{m_name2.Insert(n,m_name[i]);n++;}
if(m_name[i]>96&&m_name[i]<123)
{m_name2.Insert(n,m_name[i]-32);n++;}
}
ax=m_name2.GetLength();
m_name1="WORDXC";
i=0;
for(n=6;n<22;n++)
{if(i==ax)i=0;
m_name1.Insert(n,m_name2[i]);
i++;}
ax=0;
for(n=0;n<21;n++)
{i=m_name1[n]-65;
ax=ax+i;
n++;
i=m_name1[n]-65;
i=i+i;
if(i>25)i=i-25;
ax=ax+i;}
i=ax/26;
n=ax-i*26;
m_name1.Insert(23,n+65);
//
//算注册码
si=22;
i=0;
for(n=0;n<23;n++)
{if(i==4)
{m_code.Insert(n,22+65);i++;}
ax=m_name1[n]-65;
ax=ax+si;
ax++;
if(ax>=26)ax=ax-26;
m_code.Insert(i,m_code1[ax]);
si=m_code[i]-65;
i++;
}
m_code.Insert(4,45);
m_code.Insert(9,45);
m_code.Insert(14,45);
m_code.Insert(19,45);
m_code.Insert(24,45);
}
UpdateData(false);
