欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C程序中唯一序列號的生成實例詳解

 更新時間:2017年06月25日 10:10:34   投稿:lqh  
這篇文章主要介紹了C程序中唯一序列號的生成實例詳解的相關資料,需要的朋友可以參考下

C程序中唯一序列號的生成實例詳解

在實際的軟件開發(fā)項目中,經(jīng)常會涉及唯一序列號的生成。本文以一個實際的程序為例,介紹了唯一序列號的生成過程。
本文生成的序列號的樣式為:MMDDHHMINSS_XXXXXX。

程序如下:

* 修改記錄1:// 修改歷史記錄, 包括修改日期、版本號、修改人及修改內(nèi)容
* 修改日期: 20140603
* 版 本 號: V1.0
* 修 改 人: Zhou Zhaoxiong
* 修改內(nèi)容: 創(chuàng)建
**********************************************************************/
  
#include <afxinet.h>
  
// 數(shù)據(jù)類型
typedef unsigned char    UINT8;
typedef unsigned char    UINT16;
typedef unsigned int      UINT32;
typedef signed  int       INT32;
  
  
// 時間信息結(jié)構(gòu)體
typedef struct
{
 UINT8  second;    /* 0-59 */
 UINT8  minute;     /* 0-59 */
 UINT8  hour;       /* 0-23 */
 UINT8  day;       /* 1-31 */
 UINT8  month;      /* 1-12 */
 UINT16 year;       /* 1994-2099 */
 UINT8  week;       /* 1-7 */
 UINT8  Count10ms; /* 0-99 */
} ClockStruc;
  
  
// 函數(shù)聲明
void GetCurTime(ClockStruc *pCurrentTime);              // 獲取當前時間
INT32 CreateSerial(UINT8 *pSerialID, UINT32 iSerialSize);   // 創(chuàng)建序列號
INT32 main(void);                                       // 主函數(shù)
  
  
/**********************************************************************
* 功能描述: 獲取當前時間                      
* 輸入?yún)?shù): 無
* 更多精彩內(nèi)容:http://www.bianceng.cn/Programming/C/                      
* 輸出參數(shù): pCurrentTime-當前時間結(jié)構(gòu)體               
* 返 回 值: 無                           
* 其它說明: 無                           
* 修改日期   版本號   修改人     修改內(nèi)容         
* ----------------------------------------------------------------------------
* 20140603    V1.0  Zhou Zhaoxiong    創(chuàng)建          
**********************************************************************/
void GetCurTime(ClockStruc *pCurrentTime)
{
  SYSTEMTIME tCurrentTime;
  
  GetLocalTime(&tCurrentTime);
  
  pCurrentTime->month   = (UINT8)tCurrentTime.wMonth;
  pCurrentTime->day    = (UINT8)tCurrentTime.wDay;
  pCurrentTime->hour   = (UINT8)tCurrentTime.wHour;
  pCurrentTime->minute  = (UINT8)tCurrentTime.wMinute;
  pCurrentTime->second  = (UINT8)tCurrentTime.wSecond;
  pCurrentTime->week   = (UINT8)tCurrentTime.wDayOfWeek;
  if (pCurrentTime->week == 0)     // 表示星期天
  {
    pCurrentTime->week = 7;
  }
}
  
  
/**********************************************************************
* 功能描述: 創(chuàng)建序列號
* 輸入?yún)?shù): iSerialSize: 序列號長度
* 輸出參數(shù): pSerialID: 序列號
* 返 回 值: 0-成功 -1-失敗
* 其它說明: 序列號的樣式: MMDDHHMINSS_XXXXXX
* 修改日期     版本號      修改人     修改內(nèi)容
* --------------------------------------------------------------
* 20140603      V1.0     Zhou Zhaoxiong   創(chuàng)建
***********************************************************************/
INT32 CreateSerial(UINT8 *pSerialID, UINT32 iSerialSize)
{
  ClockStruc  tClock  = {0};
  static UINT32 iTailNum = 0;
    
  if (NULL == pSerialID)
  {
    printf("CreateSerial: input parameter is NULL.\n");
    return -1;
  }
  
  GetCurTime(&tClock);
  
  
  _snprintf((char *)pSerialID, iSerialSize, "%02d%02d%02d%02d%02d_%06d",
       tClock.month, tClock.day, tClock.hour, tClock.minute, tClock.second, iTailNum);
  
  
  iTailNum ++;
  if (iTailNum > 999999)
  {
    iTailNum = 0;
  }
  
  return 0;
}
  
  
/****************************************************************
* 功能描述: 主函數(shù)                      
* 輸入?yún)?shù): 無                        
* 輸出參數(shù): 無                        
* 返 回 值: 0-執(zhí)行成功 -1-執(zhí)行失敗              
* 其他說明: 無                        
* 修改日期    版本號    修改人    修改內(nèi)容
* ------------------------------------------------------------------------
* 20140603     V1.0   Zhou Zhaoxiong   創(chuàng)建
****************************************************************/
INT32 main(void)
{
  UINT32 iLoopFlag   = 0;   // 該變量用于表示循環(huán)標志
  INT32 iRetValue   = 0;    // 該變量用于表示調(diào)用CreateSerial函數(shù)返回的值
  UINT8 szSerialID[50] = {0};  // 該變量用于存放生成的序列號
    
  // 生成10個序列號, 并打印出來
  for (iLoopFlag = 0; iLoopFlag < 10; iLoopFlag ++)
  {
    iRetValue = CreateSerial(szSerialID, sizeof(szSerialID));
    if (iRetValue != 0)
    {
      printf("exec CreateSerial failed.\n");
      return -1;
    }
      
    printf("第%d個序列號為: %s\n", iLoopFlag + 1, szSerialID);
  }
  
  return 0;
}

程序運行的結(jié)果如下圖所示:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 示例詳解C++語言中的命名空間 (namespace)

    示例詳解C++語言中的命名空間 (namespace)

    C++名字空間是一種描述邏輯分組的機制,也就是說,如果有一些聲明按照某種準則在邏輯上屬于同一個模塊,就可以將它們放在同一個名字空間,以表明這個事實,這篇文章主要給大家介紹了關于C++語言中命名空間 (namespace)的相關資料,需要的朋友可以參考下
    2021-08-08
  • C語言中K-means算法實現(xiàn)代碼

    C語言中K-means算法實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了C語言中K-means算法的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++超詳細講解標準庫

    C++超詳細講解標準庫

    C++強大的功能來源于其豐富的類庫及庫函數(shù)資源。C++標準庫(C++ Standard Library, 亦可稱作,C++標準程序庫)的內(nèi)容總共在50個標準頭文件中定義。在C++開發(fā)中,要盡可能地利用標準庫完成
    2022-06-06
  • C++在成員函數(shù)中使用STL的find_if函數(shù)實例

    C++在成員函數(shù)中使用STL的find_if函數(shù)實例

    這篇文章主要介紹了C++在成員函數(shù)中使用STL的find_if函數(shù)實例,包括了STL中find_if函數(shù)的具體用法及相關的完整實例,非常具有參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • 詳解C++中StringBuilder類的實現(xiàn)及其性能優(yōu)化

    詳解C++中StringBuilder類的實現(xiàn)及其性能優(yōu)化

    在Java和C#中,StringBuilder可以創(chuàng)造可變字符序列來動態(tài)地擴充字符串,那么在C++中我們同樣也可以實現(xiàn)一個StringBuilder并且用來提升性能,下面就來詳解C++中StringBuilder類的實現(xiàn)及其性能優(yōu)化
    2016-05-05
  • MFC之ComboBox控件用法實例教程

    MFC之ComboBox控件用法實例教程

    這篇文章主要介紹了MFC之ComboBox控件用法,包括了ComboBox控件常見的各類用法,非常具有實用價值,需要的朋友可以參考下
    2014-09-09
  • 用C語言winform編寫滲透測試工具實現(xiàn)SQL注入功能

    用C語言winform編寫滲透測試工具實現(xiàn)SQL注入功能

    本篇文章主要介紹使用C#winform編寫滲透測試工具,實現(xiàn)SQL注入的功能。使用python編寫SQL注入腳本,基于get顯錯注入的方式進行數(shù)據(jù)庫的識別、獲取表名、獲取字段名,最終獲取用戶名和密碼;使用C#winform編寫windows客戶端軟件調(diào)用.py腳本,實現(xiàn)用戶名和密碼的獲取
    2021-08-08
  • C語言進階教程之函數(shù)指針詳解

    C語言進階教程之函數(shù)指針詳解

    函數(shù)指針是一個指針變量,它可以存儲函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關于C語言進階教程之函數(shù)指針的相關資料,需要的朋友可以參考下
    2022-04-04
  • VC6.0常見編譯錯誤提示附解決方法

    VC6.0常見編譯錯誤提示附解決方法

    這篇文章主要介紹了VC++6.0編譯過程中常遇到的一些錯誤提示并給出了錯誤原因與分析,需要的朋友尅參考下
    2013-07-07
  • VSCode Linux的C++代碼格式化配置的實現(xiàn)

    VSCode Linux的C++代碼格式化配置的實現(xiàn)

    動格式化代碼容易出現(xiàn)錯誤,特別是當代碼量較大時,使用自動格式化可以減少這種錯誤的風險,本文主要介紹了VSCode Linux的C++代碼格式化配置的實現(xiàn),感興趣的可以了解一下
    2023-10-10

最新評論