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

📄 gift.cpp

📁 DOS下一个完整的大型程序源代码
💻 CPP
字号:
#if defined( BIN )
const maxChg = 7;
const AChgCol = 34;
const chgOff = 20,
      chgLen = 10;
static Map map[] =
{
   fdLCTChg, "市内电话费",  6, 34, // 1 0
   fdLDTChg, "程控长话费",  8, 34, // 2 1
   fdMLTChg, "人工长话费", 10, 34, // 3 2
   fdTGTChg, "电  报  费", 12, 34, // 4 3
   fdSBTChg, "月  租  费", 14, 34, // 5 4
   fdTOMChg, "农  话  费", 16, 34, // 6 5
   fdOTChg,  "其      它", 18, 34, // 7 6
};
static char *szSj[] =
{
     //0         1         2         3         4         5         6         7
     //0123456789012345678901234567890123456789012345678901234567890123456789012345
/*00*/" 计费日期   月  日 ─   月  日   电话号码            №                     ",
/*01*/"┏━━━━━┯━━━━━━━━━━━━━━━━━━━┯━━━━━┯━━━━┓",
/*02*/"┃ 用户名称 │                                      │缴费合同号│        ┃",
/*03*/"┠─────┼───────────────────┼─────┴────┨",
/*04*/"┃金额(大写)│                                      │(小写)¥            ┃",//$
/*05*/"┠─────┼─────┬─────────────┼────┬─────┨",
/*06*/"┃          │          │                          │月    份│ 欠费金额 ┃",
/*07*/"┃          ├─────┼─────────────┼────┼─────┨",
/*08*/"┃          │          │                          │        │          ┃",
/*09*/"┃          ├─────┼─────────────┼────┼─────┨",
/*10*/"┃    其    │          │                          │        │          ┃",
/*11*/"┃          ├─────┼─────────────┼────┼─────┨",
/*12*/"┃          │          │                          │        │          ┃",
/*13*/"┃          ├─────┼─────────────┼────┼─────┨",
/*14*/"┃          │          │                          │        │          ┃",
/*15*/"┃          ├─────┼─────────────┼────┼─────┨",
/*16*/"┃    中    │          │                          │        │          ┃",
/*17*/"┃          ├─────┼─────────────┼────┼─────┨",
/*18*/"┃          │          │                          │        │          ┃",
/*19*/"┃          ├─────┼─────────────┼────┼─────┨",
/*20*/"┃          │滞  纳  金│                          │共 欠 费│          ┃",
/*21*/"┗━━━━━┷━━━━━┷━━━━━━━━━━━━━┷━━━━┷━━━━━┛",
/*22*/"                                    收款员:              收款时间: 12:12:12",
};
#else
#endif
#if defined( BIN )
   dbfSJ->GetField( lSjRec, fdName, str );
   memcpy( szSj[ 2 ] + 14, str, 38 ); // Name
   dbfSJ->GetField( lSjRec, fdCNo, str );
   memcpy( szSj[ 2 ] + 66, str, 8 ); // CNo
#else
#endif
#if defined( ShiZhu )
  #define DBF
#elif defined( PengShui )
  #define DBF
#elif defined( YouYang )
  #define DBF
#elif defined( XiuShan )
  #define DBF
#else
  #error Undefined symbol
#endif
#if defined( BIN )
// SJ.DBF
enum
{
   fdTel = 0,      // fd: field
   fdCNo,
   fdName,
   fdLCTChg,
   fdLDTChg,
   fdMLTChg,
   fdTGTChg,
   fdSBTChg,
   fdTOMChg,
   fdOTChg,
   fdRChg,
   fdAChg,
   fdTotChg,
   fdOk,
};
const
   fdLCTChg1 = fdLCTChg,
   fdLCTChg2 = fdSBTChg,
   fdLDTChg1 = fdLDTChg,
   fdLDTChg2 = fdMLTChg;
const rlSJ = 156; // rl: record len
const
   flTel  = 8,    // fl: field len
   flCNo  = 16,
   flName = 40,
   flChg  = 9,
   flRChg = 9,
   flBool = 1;

// LOG.DBF
const rlLog = 79;
const
   flLogDuty = 6,
   flLogDate = 8,
   flLogSjNo = 6,
   flLogTel  = flTel,
   flLogCNo  = 6,
   flLogName = 26;

// QF.DBF
enum
{
   fdQfTel = 0,
   fdQfDate,
   fdQfLCTChg,
   fdQfLDTChg,
   fdQfMLTChg,
   fdQfTGTChg,
   fdQfSBTChg,
   fdQfTOMChg,
   fdQfOTChg,
   fdQfRChg,
};
const rlQf = 86;
#else
#endif



   void interrupt ( *OldInt10 )( ... );
   OldInt10 = getvect( 0x10 );
   setvect( 0x10, NewInt10 );
   system( "SJTR04.EXE >NUL" );
   setvect( 0x10, OldInt10 );

static void interrupt NewInt10( ... )
{
}

void WriteKey( int nKey )
{
   REGS r;
   r.h.ah = 0x05;
   r.x.cx = nKey;
   int86( 0x16, &r, &r );
}

void WriteStr( char *str )
{
   while( *str ) WriteKey( *str ++ );
}

void main()
{
   puts( "Initalizing...\n" );

   void interrupt ( *OldInt10 )( ... );
   OldInt10 = getvect( 0x10 );
   setvect( 0x10, NewInt10 );

   WriteStr( "C:\\SJ" );
   WriteKey( 0x1c0d );
   WriteKey( 0x1c0d );
   system( "SJKEY.EXE >NUL" );

   setvect( 0x10, OldInt10 );

   system( "SJINST.EXE" );
}

#include <string.h>

#define Uses_DBase
#include <ly.h>

#include "\sj\sjdbf.h"

DBase *dbfLog, *dbfSJ;

void AddLog( long lRec )
{
   char szRecord[ rlLog ],
        *p = szRecord + 1;
   memset( szRecord, ' ', rlLog );

   memcpy( p, "333128", 6 ); // DutyNum
   p += flLogDuty;

   memcpy( p, "96/08/29", 8 ); // Date
   p += flLogDate;

   memcpy( p, "001800", 6 ); // BillNo
   p += flLogSjNo;

   dbfSJ->GetField( lRec, fdTel, p ); // Tel.
   p += flLogTel;

   dbfSJ->GetField( lRec, fdCNo, p ); // CNo
   p += flLogCNo;

   dbfSJ->GetField( lRec, fdName, p ); // Name
   p += flLogName;

   dbfSJ->GetField( lRec, fdTotChg, p ); // TotChg
   p += flMoney;

   dbfSJ->GetField( lRec, fdAChg, p );  // AChg
   //p += flMoney;

   dbfLog->AppendRecord( szRecord );
}

void main()
{
   DBase *dbfLog0 = new DBase( "LOG0.DBF", tpNoLoad );
   dbfSJ  = new DBase( "SJ.DBF", tpNoLoad );
   dbfLog = new DBase( "LOG.DBF", tpNoLoad );
   dbfLog->DeleteAll();
   for( long i = 0; i < dbfSJ->GetRecordNum(); i ++ )
   {
      if( dbfSJ->GetBool( i, fdOk ) )
      {
         char szTel[ flTel ];
         dbfSJ->GetField( i, fdTel, szTel );
         if( dbfLog0->Search( szTel, fdLogTel ) < 0 ) AddLog( i );
      }
   }
   delete dbfLog;
   delete dbfLog0;
   delete dbfSJ;
}

void ShowStatus( char * )
{
}

static void TranUSANo5()
{
   DBase *dbfMain = new DBase( szDbfName[ 0 ], tpNoLoad );
   DBase *dbfSJ = new DBase( szSJDbf, tpNoLoad );
   dbfSJ->DeleteAll();

   long lCount = dbfMain->GetRecordNum();
   Blood *blood = new Blood( "正在建立系统数据库", 2 * lCount );

   for( long i = 0; i < lCount; i ++ )
   {
      blood->Increase();

      char szRecord[ rlSJ ],
           *p = szRecord;
      memset( p, ' ', 1 + flTel );
      p += 1 + flTel;

      dbfMain->GetField( i, 0, p ); // CNo
      p += flCNo;

      dbfMain->GetField( i, 1, p ); // NAME
      p += flName;

      dbfMain->GetField( i, 17, p ); // LCTCHG
      p += flMoney;

      dbfMain->GetField( i, 18, p ); // LDTCHG
      p += flMoney;

      dbfMain->GetField( i, 19, p ); // MLTCHG
      p += flMoney;

      dbfMain->GetField( i, 20, p ); // TGTCHG
      p += flMoney;

      dbfMain->GetField( i, 23, p ); // SBTCHG
      p += flMoney;

      dbfMain->GetField( i, 24, p ); // TOMCHG
      p += flMoney;

      dbfMain->GetField( i, 25, p ); // OTCHG
      p += flMoney;

      dbfMain->GetField( i, 31, p ); // RCHG
      p += flMoney;

      memcpy( p, "     0.00", flMoney ); // AChg
      p += flMoney;

      dbfMain->GetField( i, 31, p ); // TotChg
      p += flMoney;

      *p = 'F';

      dbfSJ->AppendRecord( szRecord );
   }

   delete dbfMain;

   DBase *dbfLCT = new DBase( "LCTARC.DBF" );

   for( i = 0; i < lCount; i ++ )
   {
      blood->Increase();

      char szCNo[ flCNo ],
           szTel[ flTel ];
      dbfSJ->GetField( i, 1, szCNo );
      memset( szTel, ' ', flTel );

      int nRecNum = dbfLCT->Seek( szCNo );
      if( nRecNum >= 0 ) dbfLCT->GetField( nRecNum, 1, szTel );

      dbfSJ->Replace( i, fdTel, szTel );
   }

   delete blood;
   delete dbfLCT;
   delete dbfSJ;
}

⌨️ 快捷键说明

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