最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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é)果如下圖所示:

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

相關(guān)文章

  • 一文搞懂C++ 動態(tài)內(nèi)存

    一文搞懂C++ 動態(tài)內(nèi)存

    這篇文章主要介紹了C++ 動態(tài)內(nèi)存的的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C語言編程C++自定義個性化類型

    C語言編程C++自定義個性化類型

    這篇文章主要介紹了C語言編程中如何來自定義C++個性化類型,文中附含詳細的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Qt界面美化之自定義qss樣式表的詳細步驟

    Qt界面美化之自定義qss樣式表的詳細步驟

    很多人應(yīng)該和我一樣,想做界面才接觸的Qt,結(jié)果就是做不出來華麗的界面,下面這篇文章主要給大家介紹了關(guān)于Qt界面美化之自定義qss樣式表的詳細步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • C++深入淺出講解希爾排序算法的實現(xiàn)

    C++深入淺出講解希爾排序算法的實現(xiàn)

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡單插入排序經(jīng)過改進之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。本文會以圖解的方式詳細介紹希爾排序的基本思想及其代碼實現(xiàn)
    2022-05-05
  • C++超詳細講解構(gòu)造函數(shù)

    C++超詳細講解構(gòu)造函數(shù)

    C++的構(gòu)造函數(shù)的作?:初始化類對象的數(shù)據(jù)成員。即類的對象被創(chuàng)建的時候,編譯系統(tǒng)對該對象分配內(nèi)存空間,并?動調(diào)?構(gòu)造函數(shù),完成類成員的初始化。構(gòu)造函數(shù)的特點:以類名作為函數(shù)名,?返回類型
    2022-06-06
  • 詳解C++的模板中typename關(guān)鍵字的用法

    詳解C++的模板中typename關(guān)鍵字的用法

    在C++的Template中我們經(jīng)??梢砸姷绞褂胻ypename來定義類型名稱,更加具體的我們就在接下來為大家詳解C++的模板中typename關(guān)鍵字的用法,需要的朋友可以參考下:
    2016-06-06
  • 基于linux下C開發(fā)中的幾點技術(shù)經(jīng)驗總結(jié)

    基于linux下C開發(fā)中的幾點技術(shù)經(jīng)驗總結(jié)

    本篇文章是對linux下C開發(fā)中的幾點技術(shù)經(jīng)驗總結(jié)進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++調(diào)用Matlab函數(shù)求特征值

    C++調(diào)用Matlab函數(shù)求特征值

    這篇文章主要為大家詳細介紹了C++調(diào)用Matlab函數(shù)求特征值,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C語言位運算符:與、或、異或、取反、左移與右移詳細介紹

    C語言位運算符:與、或、異或、取反、左移與右移詳細介紹

    以下是對C語言中的位運算符:與、或、異或、取反、左移與右移進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • Opencv分水嶺算法學習

    Opencv分水嶺算法學習

    這篇文章主要為大家詳細介紹了Opencv分水嶺算法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論

芜湖县| 罗甸县| 平乐县| 开封市| 芦山县| 铁力市| 溆浦县| 汕尾市| 沛县| 砚山县| 卓资县| 邹平县| 湘阴县| 扎囊县| 连州市| 临沧市| 南岸区| 阜新市| 莫力| 汽车| 磴口县| 青阳县| 池州市| 黄石市| 满洲里市| 土默特右旗| 克山县| 莫力| 台东县| 阳东县| 成都市| 勃利县| 来安县| 遵义县| 大安市| 无极县| 怀仁县| 诸暨市| 滁州市| 旅游| 晋中市|