# include & ltiostream & gt
# include & ltstring.h & gt
/*******************************************
功能:身份證號碼查詢
隨機生成身份證號碼
Typedef結構枚舉srand rand用法演示
函數指針使用演示
Linux系統源代碼中公共鏈表的使用演示
文件名:codeid2.cpp
相關文件:全國各地區代碼信息文件code.bin。
作者:李勇
日期:2010.9.4
******************************************/
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & lttime.h & gt
# include & ltsys \ timeb.h & gt
# include & ltconio.h & gt
# include & ltdos.h & gt
使用命名空間std
typedef結構list_head{
struct list _ head * next
struct list _ head * prev
}列表;
typedef struct _Page{
LIST sort _ list
長碼;
字符名稱[100];
int Hash
LIST Hash _ List
}頁面;
//用於讀寫文件
typedef struct _context{
長碼;//地區代碼,6位整數
字符名稱[100];//地區信息
} IDCODE
typedef枚舉成員列表名稱{
排序列表,散列列表
}成員_列表_名稱;
typedef struct _person_id {
字符編碼[19];//個人身份證號碼
} PERSON _ ID
typedef結構{
長碼;//區號,6位數字
字符名稱[100];//區號的名稱,也就是地址信息。
int年;
int月;
int日;
int性別;
個人標識號;//18個人身份證號碼
} ID _ INFOR
//存儲系統的當前日期和時間。
typedef結構{
int年;
int月;
int日;
int小時、分鐘、秒;
int工作日;
} SYSDATE
//初始化列表的頭指針指向自己。
#定義Init_List(ptr) do { \
(ptr)-& gt;next =(ptr);\
(ptr)-& gt;prev =(ptr);\
} while (0)
//從壹個結構體ptr中,計算出其宿主結構體的地址。
//鍵入主機結構的名稱
//member是主機結構中ptr的名稱。
#define list_entry(ptr,type,member) \
((type*)((char*)(ptr)-(無符號長整型)(& amp((type *)0)-& gt;成員)))
#定義最大數量20
typedef int(* PFUN _ COMPARE)(LIST * _ LIST 1,LIST * _list2,MEMBER _ LIST _ NAME ListName);
typedef void(* PFUN _ PRINT)(LIST * head,MEMBER _ LIST _ NAME ListName);