sjcfg.cpp

来自「DOS下一个完整的大型程序源代码」· C++ 代码 · 共 78 行

CPP
78
字号
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sjcfg.h"

Config config;

void ResetPassword()
{
   memcpy( config.szPassword, "Y     ", 6 );
   char str[ 11 ];
   ltoa( 920141l, str, 10 );
   for( int i = 0; i < cnPasswordSize; i ++ )
     config.szPassword[ i ] ^= str[ i ];
}

void main(int argc,char *argv[])
{
   puts( "SJCFG: SJ config program\n"
         "Write by Little Young, 1996, 9\n" );

   FILE *fp = fopen( "SJ.CFG", "rb" );
   fread( &config, sizeof( Config ), 1, fp );
   fclose( fp);

   if( argc < 2 )
   {
      printf( "Usage: sjcfg /p        --> Reset password\n"
              "       sjcfg /b        --> Reset BillNo\n"
              "       sjcfg /f        --> Reset FreeSeg\n"
              "       sjcfg /s 1-31   --> Set start day\n"
              "       sjcfg /e 1-31   --> Set end day\n"
              "       sjcfg /y 1996-  --> Set data year\n"
              "       sjcfg /m 1-12   --> Set data month\n"
              "       sjcfg /l 1-     --> Set LSH\n"
              "Start day = %u\n"
              "End   day = %u\n"
              "\n"
              "Data year  = %u\n"
              "Data month = %u\n"
              "\n"
              "ZhiNaJin = %1.2f\n"
              "LSH      = %lu\n",
              config.nDayStart, config.nDayEnd,
              config.nDataYear, config.nDataMonth,
              config.fAChgRate,
              config.lBillNo
          );
      return;
   }

   strupr( argv[ 1 ] );
   if( strcmp( argv[ 1 ], "/P" ) == 0 )
     ResetPassword();
   else if( strcmp( argv[ 1 ], "/B" ) == 0 )
     config.lBillNo = 1;
   else if( strcmp( argv[ 1 ], "/F" ) == 0 )
     memset( config.lFree, 0, 10 * 4 );
   else if( strcmp( argv[ 1 ], "/S" ) == 0 )
     config.nDayStart = atoi( argv[ 2 ] );
   else if( strcmp( argv[ 1 ], "/E" ) == 0 )
     config.nDayEnd = atoi( argv[ 2 ] );
   else if( strcmp( argv[ 1 ], "/Y" ) == 0 )
     config.nDataYear = atoi( argv[ 2 ] );
   else if( strcmp( argv[ 1 ], "/M" ) == 0 )
     config.nDataMonth = atoi( argv[ 2 ] );
   else if( strcmp( argv[ 1 ], "/Z" ) == 0 )
     config.fAChgRate = atof( argv[ 2 ] );
   else if( strcmp( argv[ 1 ], "/L" ) == 0 )
     config.lBillNo = atol( argv[ 2 ] );

   fp = fopen( "SJ.CFG", "wb" );
   fwrite( &config, sizeof( Config ), 1, fp );
   fclose( fp);

   printf( "OK!!!" );
}

⌨️ 快捷键说明

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