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

📄 make_lic.bak

📁 This is a CNCPro source file. It is include the G-Code interpreter source.
💻 BAK
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#include <process.h>
#define TRUE 1
#define FALSE 0

int main(void)
{
   long lic_num;
   int i, j, ch=0, num, itemp, cnc_price, ace_price, price, database;
   int match, match2, match3;
   static char SSN[10], license[50], acelic[11], cnclic[11];
   static char dir[200], user[200], user2[200], string[200], tdate[20], dealer[200], email[200];
   FILE *ifp, *ofp, *sales, *eml;
   struct date datep;

   if((ifp=fopen("c:\\yeagauto\\sales\\keyinfo.txt","r"))==NULL) return 0;
   if(NULL==fgets(string,200,ifp)) return 0; itemp=strlen(string); if(itemp>1) string[itemp-1]=0;
   if(strcmp(string,"CNC Pro License")==0) ch='1';
   if(strcmp(string,"CNC Pro Lite License")==0) ch='2';
   if(strcmp(string,"ACEconverter License")==0) ch='3';
   if(strcmp(string,"CNC Pro Lite/ACEconverter License")==0) ch='4';
   if(strcmp(string,"CNC Pro/ACEconverter License")==0) ch='5';
   if(ch=='3' || ch=='4' || ch=='5')
     {if(NULL==fscanf(ifp,"%d",&ace_price)) return 0;
      while((itemp=fgetc(ifp))!='\n' && itemp!=EOF); if(itemp==EOF) return 0;}
   if(ch=='1' || ch=='2' || ch=='4' || ch=='5')
     {if(NULL==fscanf(ifp,"%d",&cnc_price)) return 0;
      while((itemp=fgetc(ifp))!='\n' && itemp!=EOF); if(itemp==EOF) return 0;}
   if(NULL==fgets(user,200,ifp)) return 0; itemp=strlen(user); if(itemp>1) user[itemp-1]=0; user[25]=0;
   if(NULL==fgets(dealer,200,ifp)) return 0; itemp=strlen(dealer); if(itemp>1) dealer[itemp-1]=0;
   if(NULL==fgets(email,200,ifp)) return 0; itemp=strlen(email); if(itemp>1) email[itemp-1]=0;
   if(strcmp("none",dealer)==NULL) dealer[0]=0;
   if(NULL==fgets(string,200,ifp)) return 0; itemp=strlen(string); if(itemp>1) string[itemp-1]=0;
   if(strcmp(string,"write in database")==0) database=TRUE;
   else database=FALSE;
   if(database==FALSE && (ch=='3' || ch=='4' || ch=='5')) {if(NULL==fgets(acelic,11,ifp)) return 0; acelic[9]=0;}
   if(database==FALSE && (ch=='1' || ch=='2' || ch=='4' || ch=='5')) {if(NULL==fgets(cnclic,11,ifp)) return 0; cnclic[9]=0;}
   fclose(ifp);
   
   getdate(&datep);
   sprintf(tdate,"%d/%d/%d",datep.da_mon,datep.da_day,datep.da_year);
   sprintf(user2,"%s",user);
   user2[8]=0;
   for(j=0;j<8;j++)
      {if(user2[j]==' ') {user2[j]=0;}
   }
   sprintf(dir,"c:\\yeagauto\\sales\\%s",user2);
   sprintf(string,"mkdir %s",dir);
   system(string);

   if(ch=='4' || ch=='5') num=2;
   else num=1;
   sprintf(string,"copy c:\\yeagauto\\sales\\keys.txt \"%s\"",dir);
   system(string);
   for(j=0;j<num;j++)
     {if(ch=='1' || ch=='2')
        {price=cnc_price;
         sprintf(SSN,"306881320");
         if(ch=='1') sprintf(string,"c:\\yeagauto\\sales\\cnc_sale.txt");
         if(ch=='2') sprintf(string,"c:\\yeagauto\\sales\\cnclsale.txt");
        }
      if(ch=='3')
        {price=ace_price;
         sprintf(SSN,"409532060");
         sprintf(string,"c:\\yeagauto\\sales\\ace_sale.txt");
        }
      if(ch=='4' || ch=='5')
        {if(j==0)
           {price=cnc_price;
            sprintf(SSN,"306881320");
            if(ch=='5') sprintf(string,"c:\\yeagauto\\sales\\cnc_sale.txt");
            if(ch=='4') sprintf(string,"c:\\yeagauto\\sales\\cnclsale.txt");
           }
         else
           {price=ace_price;
            sprintf(SSN,"409532060");
            sprintf(string,"c:\\yeagauto\\sales\\ace_sale.txt");
           }
        }

      if((sales=fopen(string,"r"))!=NULL)
        {lic_num=0;
         while(1)
           {while((itemp=fgetc(sales))!=EOF && itemp!='\n');
            if(itemp==EOF) break;
            fscanf(sales,"%09u",&lic_num);
           }
         lic_num++;
         if(database==TRUE) sprintf(license,"%09lu",(long)lic_num);
         else
           {if(strcmp(SSN,"306881320")==0) sprintf(license,"%s",cnclic);
            else sprintf(license,"%s",acelic);
           }
         fclose(sales);
        }
      if((sales=fopen(string,"a"))!=NULL)
        {if(database==TRUE)
           {fprintf(sales,"%-13s%-14s%-8d%-25s%-25s%s\n",license,tdate,price,user,dealer,email);
            if(j==0 && dealer[0]==0 && (eml=fopen("c:\\yeagauto\\sales\\email.txt","a"))!=NULL)
              {fprintf(eml,", %s",email);
               fclose(eml);
              }
           }
         fclose(sales);
        }
      sprintf(string,"%s\\keys.txt",dir);
      if((ofp=fopen(string,"a"))==NULL) return 0;
      if(strcmp(SSN,"306881320")==0 && (ch=='1' || ch=='5')) fprintf(ofp,"CNC Pro License Key:\n");
      if(strcmp(SSN,"306881320")==0 && (ch=='2' || ch=='4')) fprintf(ofp,"CNC Pro Lite License Key:\n");
      if(strcmp(SSN,"409532060")==0 && (ch=='3' || ch=='5' || ch=='4')) fprintf(ofp,"ACEconverter License Key:\n");
      match=match2=match3=0;
      for(i=0;i<9;i++) match2=match=match+license[i];
      for(i=0;i<strlen(user);i++) match3=match=match+user[i];
      match2=match2%26+65;
      match3=match3%26+65;
      if(ch!='2' && ch!='4') match=match+'A'+match2+match3;
      else match=match+'B'+match2+match3;
      match=match%26+65;
      if(ch!='2' && ch!='4') fputc('A',ofp);
      else fputc('B',ofp);
      for(i=0;i<9;i++)
        {if(i+1==5) fputc('-',ofp);
         fputc(license[i]-48+65+SSN[i]-48+5,ofp);
        }
      fputc('-',ofp);
      fputc(match,ofp);
      fputc(match2,ofp);
      fputc(match3,ofp);
      for(i=0;i<strlen(user);i++)
        {if((i+3)%5==0) fputc('-',ofp);
         if(user[i]==' ') fputc('1',ofp);
         else if(user[i]>=97) fputc((user[i]-97+SSN[i%9]-48+8)%26+65,ofp);
         else fputc((user[i]-65+SSN[i%9]-48+8)%26+97,ofp);
        }
      fprintf(ofp,"\n\n");
      fclose(ofp);
     }
   return 0;
}

⌨️ 快捷键说明

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