日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C语言 通讯录管理系统(链表,手机号码分段存储,txt文件存取)

發布時間:2023/12/31 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 通讯录管理系统(链表,手机号码分段存储,txt文件存取) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通訊錄管理系統

  • 一、需求分析
  • 二、設計思路
  • 三、數據
    • 1、內存數據結構
    • 2、文件數據
  • 四、主要功能接口
  • 五、問題以及解決方案
    • 1.從txt文件中讀取數據到內存時
    • 2.用scanf函數從stdin中讀取輸入數據,因錯誤輸入的數據可能導致scanf函數死循環的問題
    • 3.itoa函數不是C語言標準庫函數,需要實現該函數
  • 六、完整代碼
  • 七、效果截圖


一、需求分析

設計一個通訊錄管理系統,記錄聯系人的手機號碼,姓名,聯系地址,職業,公司,郵箱。可以增加聯系人信息,刪除聯系人信息,修改聯系人信息,查找聯系人,排序,打印通訊錄信息,一鍵清空通信錄等


二、設計思路

1.根據需求分析,需要對數據進行增加,刪除,修改,查找,排序等,我選擇了雙向鏈表作為內存數據結構,考慮到每個人的手機號碼是唯一的,選擇了手機號碼作為key,同時考慮到數據量很大的情況下,可能會影響排序性能,所以考慮用手機號碼的前四位進行分段存儲,每一段對應一個鏈表,所以代碼中管理了10000條雙向鏈表,分別對應手機號碼前四位0-9999的手機號碼段。

2.數據持久化,我選擇將通訊錄內存數據保存到txt文件中,從內存數據到txt文件,用C語言庫函數提供的fopen函數和sprintf函數即可實現,從txt文件數據到內存數據,用C語言庫函數fopen函數和strtok函數即可實現。


三、數據

1、內存數據結構

聯系人信息

struct People {char tel[20]; //手機號碼char name[30]; //姓名char address[100]; //聯系地址char occupation[20]; //職業char company[40]; //公司char email[30]; //郵箱 };

鏈表中的一個節點

struct People_Node {struct People people; //聯系人信息struct People_Node *next; //上一個節點struct People_Node *pre; //下一個節點 };

一條鏈表

struct People_List {int len; //鏈表節點總個數struct People_Node *head; //頭節點struct People_Node *tail; //尾節點 };

2、文件數據

默認 contact.txt 文件(注意最后一行是空白行)

手機號碼 姓名 聯系地址 職業 公司 郵箱

contact.txt 文件 保存示例(用測試命令生產的數據)

手機號碼 姓名 聯系地址 職業 公司 郵箱 10121882476 宋八 天津 快遞員 云上科技 555@163.com 10698756589 宋八 武漢 老師 云上科技 333@qq.com 12121198969 唐九 武漢 個體 小云直播 666@163.com 14779567330 王五 廣西 個體 小蔥蔬菜 111@163.com 18817493813 李四 北京 快遞員 滕芬網絡 111@163.com

四、主要功能接口

增加聯系人相關

int add_con(); //增加聯系人 int add_people(struct People people); //增加聯系人到鏈表

刪除聯系人相關

int del_con(); //刪除聯系人 int del_people(struct People people); //從鏈表中刪除聯系人

修改聯系人相關

int mod_con(); //修改聯系人信息 int mod_people(struct People people); //從鏈表中修改聯系人信息

查找聯系人相關

int find_con(); //查找聯系人 struct People_Node *find_people(struct People people); //從鏈表中查找聯系人

排序通訊錄相關

void sort_con(); //排序通訊錄 void sort_people_list(); //按照手機號碼從小到大排序通訊錄并輸出到屏幕

打印通訊錄相關

void print_con(); //打印通訊錄 void print_people_list(); //打印通訊錄列表 void print_people(struct People *p); //打印聯系人信息

清空通訊錄

int clean_con(); //清空通訊錄

退出通訊錄

void exit_con(); //退出通訊錄

五、問題以及解決方案

1.從txt文件中讀取數據到內存時

fprintf(fp, "%s %s %s %s %s %s\n", people.tel, people.name, people.address, people.occupation, people.company, people.email);

問題1:如上代碼所示,因為用fprintf函數寫入到txt文件時,最后一個數據是加了\n的,所以從txt文件中讀取數據到內存數據時,應該將\0替換掉\n,再保存在內存中,如下代碼所示。

//字符串拷貝剔除掉換行符\n void strcpy_not_n(char *des, char *src) {while (*src != '\0'){if (*src != '\n')*des = *src;else*des = '\0';src++;des++;} }

從txt文件中加載數據到內存代碼片段

switch (column){case 0:strcpy(people.tel, str);break;case 1:strcpy(people.name, str);break;case 2:strcpy(people.address, str);break;case 3:strcpy(people.occupation, str);break;case 4:strcpy(people.company, str);break;default:strcpy_not_n(people.email, str); //去掉\nbreak;}str = strtok(NULL, LINE);column++;

問題2:因為我們存儲數據的txt文件,默認最后一行是空白行,所以從txt文件中加載數據到內存的時候,應該過濾掉空白行,不然我們從txt文件中加載數據會多了一個6個數據都為空的記錄,具體處理如下所示。

從txt文件中加載數據到內存代碼片段

char buf[BUFF_SIZE];int len = 0;int row = 0;while(fgets(buf, BUFF_SIZE, fp)){if ((row++) == 0) //第一行是注釋 手機號碼 姓名 聯系地址 職業 公司 郵箱continue;if(buf[0] == '\n') //過濾掉讀到的是空白行continue;

2.用scanf函數從stdin中讀取輸入數據,因錯誤輸入的數據可能導致scanf函數死循環的問題

因為scanf函數,我們從命令行輸入數據,并按下enter換行鍵后,scanf函數會從stdin緩沖區中按照我們格式化的格式讀取輸入的數據,并且不符合讀取格式的數據會跳過,并還留在緩沖區中,直到按照我們的格式讀取到完整數據為止,并且輸入過多的未讀取的數據也還在緩沖區中,所以為了防止殘留的stdin中的垃圾數據阻礙我們下一次從stdin緩沖區中讀取到不準確的數據,我們應該在scanf函數讀取到完整數據后,對stdin緩沖區進行清空,處理如下:

//清空無效的輸入 void clean_stdin() {char s;do{scanf("%c", &s);}while(s != '\n'); }

部分代碼段

scanf("%s %s %s %s %s", people.name, people.address, people.occupation, people.company, people.email);clean_stdin();

3.itoa函數不是C語言標準庫函數,需要實現該函數

//數字轉字符串函數 char *itoa_my(int value, char *str, int radix) {static char dig_my[] ="0123456789""abcdefghijklmnopqrstuvwxyz";int n = 0, neg = 0;unsigned int v;char* p, *q;char c;/* 負數:十進制直接在前面加負號,其它進制用補碼 */if (radix == 10 && value < 0) {v = -value;neg = 1;}else{v = value;}/* 其它進制的負數轉為unsigned int類型,即取了補碼 */do {str[n++] = dig_my[v%radix];v /= radix;} while (v);if (neg)str[n++] = '-';str[n] = '\0';/* 字符串反轉 */for (p = str, q = p + (n-1); p < q; ++p, --q)c = *p, *p = *q, *q = c;return str; }

六、完整代碼

contact.h 文件

#ifndef CONTACT_H #define CONTACT_H#define CON_TXT_PATH "./contact.txt" #define BUFF_SIZE 256 #define LINE " " //分割符號 #define COUNT_TEL_MAX 9999 #define RETURN_MAIN ".." #define RETURN_MAIN_FLAG 100 #define PEOPLE_INFO "手機號碼\t姓名\t聯系地址\t職業\t公司\t郵箱\n"enum OPTION {TEST = 0,ADD = 1,DEL,MOD,FIND,SORT,PRINT,CLEAN,EXIT,END };//聯系人信息 struct People {char tel[20]; //手機號碼char name[30]; //姓名char address[100]; //聯系地址char occupation[20]; //職業char company[40]; //公司char email[30]; //郵箱 };//鏈表中的一個節點 struct People_Node {struct People people; //聯系人信息struct People_Node *next; //上一個節點struct People_Node *pre; //下一個節點 };//一個鏈表 struct People_List {int len; //鏈表節點總個數struct People_Node *head; //頭節點struct People_Node *tail; //尾節點 };//手機號碼前四位對應的鏈表集合 struct People_List *g_tel[COUNT_TEL_MAX];void display_menu(); //列出功能菜單 int init_con(); //初始化通訊錄 int load_con(); //從txt文件中加載通訊錄int add_con(); //增加聯系人 int add_people(struct People people); //增加聯系人到鏈表int del_con(); //刪除聯系人 int del_people(struct People people); //從鏈表中刪除聯系人int mod_con(); //修改聯系人信息 int mod_people(struct People people); //從鏈表中修改聯系人信息int find_con(); //查找聯系人 struct People_Node *find_people(struct People people); //從鏈表中查找聯系人void sort_con(); //排序通訊錄 void sort_people_list(); //按照手機號碼從小到大排序通訊錄并輸出到屏幕void print_con(); //打印通訊錄 void print_people_list(); //打印通訊錄列表 void print_people(struct People *p); //打印聯系人信息int clean_con(); //清空通訊錄void exit_con(); //退出通訊錄int test_cmd(); //測試命令//輔助函數 void clean_stdin(); //清空無效的輸入 int check_return_main(const char *str); //是否返回主菜單 int get_key(const char *tel); //返回手機號碼對應的數組數組下標 int is_digit_string(const char *str); //檢測str是否為全數字 int check_people(struct People people); //檢測輸入的格式比如手機號碼格式是否正確等 void strcpy_not_n(char *des, char *src); //字符串拷貝剔除掉換行符\n void save_people_list(); //保持數據到txt文件 char *itoa_my(int value, char *str, int radix); //數字轉字符串函數#endif

contact.c 文件

#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <ctype.h> #include <time.h> #include "contact.h"extern int errno;int main() {srand((unsigned)time(NULL)); /*播種子*/init_con();enum OPTION op = 0;int r = 0;while(1){display_menu();r = scanf("%d", &op);if (r == 0 || op < TEST || op >= END) {clean_stdin();printf("輸入錯誤,請重新選擇功能\n");continue;}switch(op){case TEST:{while(1){r = test_cmd();if (r == RETURN_MAIN_FLAG)break;}break;}case ADD:{while(1){r = add_con();if (r == RETURN_MAIN_FLAG)break;}break;}case DEL:{while(1){r = del_con();if (r == RETURN_MAIN_FLAG)break;}break;}case MOD:{while(1){r = mod_con();if (r == RETURN_MAIN_FLAG)break;}break;}case FIND:{while(1){r = find_con();if (r == RETURN_MAIN_FLAG)break;}break;}case SORT:sort_con();break;case PRINT:print_con();break;case CLEAN:{while(1){r = clean_con();if (r != 0)break;}break;}case EXIT:exit_con();break;default:break;}}return 0; }//列出功能菜單 void display_menu() {printf("*****************************************************************************************\n");printf("** 通訊錄 **\n");printf("** **\n");printf("** 請選擇功能 **\n");printf("** 0:測試命令 **\n");printf("** 1:增加聯系人 **\n");printf("** 2:刪除聯系人 **\n");printf("** 3:修改聯系人 **\n");printf("** 4:查找聯系人 **\n");printf("** 5:排序聯系人 **\n");printf("** 6:打印通訊錄 **\n");printf("** 7:清空通訊錄 **\n");printf("** 8:退出 **\n");printf("** **\n");printf("** 在子功能下輸入:.. 返回到主目錄 **\n");printf("** **\n");printf("*****************************************************************************************\n"); }//初始化通訊錄 int init_con() {int i = 0;for (i = 0; i < COUNT_TEL_MAX; i++){struct People_List *list = (struct People_List *)malloc(sizeof(struct People_List));list->len = 0;list->head = NULL;list->tail = NULL;g_tel[i] = list;}return load_con(); }//從contact.txt文件中加載通訊錄 int load_con() {FILE *fp = fopen(CON_TXT_PATH, "r");if (!fp){fprintf(stderr, "打開%s文件錯誤:%s\n", CON_TXT_PATH, strerror(errno));return 0;}char buf[BUFF_SIZE];int len = 0;int row = 0;while(fgets(buf, BUFF_SIZE, fp)){if ((row++) == 0) //第一行是注釋 手機號碼 姓名 聯系地址 職業 公司 郵箱continue;if(buf[0] == '\n') //過濾掉讀到的是空白行continue;int column = 0;struct People people;char *str = strtok(buf, LINE);while(str){switch (column){case 0:strcpy(people.tel, str);break;case 1:strcpy(people.name, str);break;case 2:strcpy(people.address, str);break;case 3:strcpy(people.occupation, str);break;case 4:strcpy(people.company, str);break;default:strcpy_not_n(people.email, str); //去掉\nbreak;}str = strtok(NULL, LINE);column++;}add_people(people);row++;}fclose(fp);//print_people_list();return 1; }//增加聯系人 int add_con() {printf("請輸入手機號碼 姓名 聯系地址 職業 公司 郵箱\n");struct People people; scanf("%s", people.tel);if(check_return_main(people.tel)){clean_stdin();return RETURN_MAIN_FLAG;}scanf("%s %s %s %s %s", people.name, people.address, people.occupation, people.company, people.email);clean_stdin();int r = check_people(people);if (r == -1)return 0;if (find_people(people)){ printf("手機號碼:%s 的聯系人已經存在!\n", people.tel);return 0;}r = add_people(people);if (!r)return 0;//print_people_list();FILE *fp = fopen(CON_TXT_PATH, "a+"); /*打開一個文本文件,允許讀寫文件。如果文件不存在,則會創建一個新文件。讀取會從文件的開頭開始,寫入則只能是追加模式。*/if (!fp){fprintf(stderr, "打開%s文件錯誤:%s\n", CON_TXT_PATH, strerror(errno));return 0;}fprintf(fp, "%s %s %s %s %s %s\n", people.tel, people.name, people.address, people.occupation, people.company, people.email);fclose(fp);printf("添加聯系人成功!\n");return 1; }//增加聯系人到鏈表 int add_people(struct People people) {struct People_List *plist = NULL;//加入手機號碼對應的鏈表庫struct People_Node *pnode = (struct People_Node *)malloc(sizeof(struct People_Node));if (!pnode){fprintf(stderr, "申請內存失敗:%s\n", strerror(errno));return 0;}pnode->people = people;pnode->pre = NULL;pnode->next = NULL;int key = get_key(people.tel);plist = g_tel[key];if ((plist->len++) == 0) //鏈表為空時{plist->head = pnode;plist->tail = pnode;} else {pnode->pre = plist->tail;plist->tail->next = pnode;plist->tail = pnode;}return 1; }//刪除聯系人 int del_con() { printf("請輸入要刪除的聯系人的手機號碼\n");struct People people;int r = scanf("%s", &people.tel);clean_stdin();if(check_return_main(people.tel))return RETURN_MAIN_FLAG;if (r == 0) {printf("輸入手機號碼格式不正確--------r = %d\n", r);return 0;}r = check_people(people);if (r == -1)return 0;return del_people(people); }//從鏈表中刪除聯系人 int del_people(struct People people) {int key = get_key(people.tel);struct People_Node *pnode = g_tel[key]->head;int find = 0;while(pnode){if (strcmp(people.tel, pnode->people.tel) == 0){find = 1;break;} pnode = pnode->next;}if (!find){printf("沒有找到要刪除的聯系人\n");return 0;}g_tel[key]->len = g_tel[key]->len - 1;if (pnode == g_tel[key]->head){g_tel[key]->head = pnode->next;if (g_tel[key]->len == 0)g_tel[key]->tail = NULL;else pnode->next->pre = NULL;} else if (pnode == g_tel[key]->tail) {g_tel[key]->tail = pnode->pre;pnode->pre->next = NULL;} else {pnode->pre->next = pnode->next;pnode->next->pre = pnode->pre;}free(pnode);//print_people_list();save_people_list();printf("刪除聯系人成功!\n");return 1; }//修改聯系人信息 int mod_con() {printf("請輸入需要修改聯系人的 手機號碼 姓名 聯系地址 職業 公司 郵箱\n");struct People people;scanf("%s", people.tel);if(check_return_main(people.tel)){clean_stdin();return RETURN_MAIN_FLAG;}scanf("%s %s %s %s %s", people.name, people.address, people.occupation, people.company, people.email);clean_stdin();if(check_return_main(people.tel))return RETURN_MAIN_FLAG;int r = check_people(people);if (r == -1)return 0;return mod_people(people); }//從鏈表中修改聯系人信息 int mod_people(struct People people) {int key = get_key(people.tel);struct People_Node *pnode = g_tel[key]->head;int find = 0;while(pnode){if (strcmp(people.tel, pnode->people.tel) == 0){find = 1;break;} pnode = pnode->next;}if (!find){printf("沒有找到要修改的聯系人\n");return 0;}pnode->people = people;//print_people_list();save_people_list();printf("修改聯系人成功!\n");return 1; }//查找聯系人 int find_con() {printf("請輸入要查找的聯系人的手機號碼\n");struct People people;int r = scanf("%s", &people.tel);clean_stdin();if(check_return_main(people.tel))return RETURN_MAIN_FLAG;if (r == 0) {printf("輸入手機號碼格式不正確\n");return 0;}r = check_people(people);if (r == -1)return 0;struct People_Node *pnode = find_people(people);if (!pnode){printf("沒有查找到手機號碼對應的聯系人!\n");return 0;}printf(PEOPLE_INFO);print_people(&pnode->people);return 1; }//從鏈表中查找聯系人 struct People_Node *find_people(struct People people) {int key = get_key(people.tel);struct People_Node *pnode = g_tel[key]->head;while(pnode){if (strcmp(people.tel, pnode->people.tel) == 0){return pnode;} pnode = pnode->next;}return NULL; }//排序通訊錄 void sort_con() {sort_people_list(); }//按照手機號碼從小到大排序通訊錄并輸出到屏幕 void sort_people_list() {// printf("---------------before sort---------------\n");// print_people_list();struct People_List *plist = NULL;struct People_Node *pnode = NULL;struct People_Node *pnext = NULL;struct People_Node *pmin = NULL;struct People ptemp;int i = 0;for (i = 0; i < COUNT_TEL_MAX; i++){plist = g_tel[i];pnode = plist->head;while (pnode){pmin = pnode;//ptemp = pnode;pnext = pnode->next;while(pnext){if (atof(pmin->people.tel) > atof(pnext->people.tel))pmin = pnext;pnext = pnext->next;}if (pmin != pnode) //當前節點不是最小節點{ptemp = pnode->people;pnode->people = pmin->people;pmin->people = ptemp;}pnode = pnode->next;} }// printf("---------------after sort---------------\n");// print_people_list();printf("排序成功!\n"); }//打印通訊錄 void print_con() {printf("----------開始打印通訊錄----------\n");print_people_list();printf("----------打印通訊錄完畢----------\n"); }//打印通訊錄列表 void print_people_list() {int i = 0;struct People_Node *pnode;printf(PEOPLE_INFO);for (i = 0; i < COUNT_TEL_MAX; i++){pnode = g_tel[i]->head;while (pnode){//printf("key = %d ", i);print_people(&(pnode->people));pnode = pnode->next;}} }//打印聯系人信息 void print_people(struct People *p) {printf("%s\t%s\t%s\t%s\t%s\t%s\n", p->tel, p->name, p->address, p->occupation, p->company, p->email); }//清空通訊錄 int clean_con() {printf("是否清空通訊錄:y or n\n");char op[100];int r = scanf("%s", &op);clean_stdin();if (check_return_main(op) || strcmp(op, "n") == 0)return RETURN_MAIN_FLAG;if (strcmp(op, "y") != 0){printf("輸入:y or n 錯誤!\n");return 0;}printf("----------開始清空通訊錄,開始釋放內存數據----------\n");int i = 0;struct People_List *plist;struct People_Node *pcur = NULL;struct People_Node *pnext = NULL;for (i = 0; i < COUNT_TEL_MAX; i++){plist = g_tel[i];pcur = plist->head;while (pcur){pnext = pcur->next;//printf("free node tel = %s\n", pcur->people.tel);free(pcur);pcur = pnext;}plist->len = 0;plist->head = NULL;plist->tail = NULL;}save_people_list();printf("----------釋放內存數據成功,清空通訊錄成功----------\n");return 1; }//退出通訊錄 void exit_con() {printf("----------開始保存通訊錄----------\n");save_people_list();printf("----------開始退出通訊錄,開始釋放內存數據----------\n");int i = 0;struct People_List *plist;struct People_Node *pcur = NULL;struct People_Node *pnext = NULL;for (i = 0; i < COUNT_TEL_MAX; i++){plist = g_tel[i];pcur = plist->head;while (pcur){pnext = pcur->next;//printf("free node tel = %s\n", pcur->people.tel);free(pcur);pcur = pnext;}free(plist);}printf("----------釋放內存數據成功,退出通訊錄成功----------\n");exit(1); }//清空無效的輸入 void clean_stdin() {char s;do{scanf("%c", &s);}while(s != '\n'); }//是否返回主菜單 int check_return_main(const char *str) {if (strcmp(str, RETURN_MAIN) == 0)return 1;return 0; }//返回手機號碼對應的數組數組下標 int get_key(const char *tel) {char str[5];memcpy(str, tel, 4);int key = atoi(str);if (key > COUNT_TEL_MAX || key < 0)return -1;return key; }//檢測str是否為全數字 int is_digit_string(const char *str) {if (*str == '\0')return 0;while (*str != '\0'){if(!isdigit(*str++))return 0;}return 1; }// 檢測輸入的格式比如手機號碼格式是否正確等 int check_people(struct People people) {if (!is_digit_string(people.tel)) //是否是數字{printf("手機號碼格式不全是數字\n");return -1;}if (strlen(people.tel) < 4) //手機號碼是否過短{printf("手機號碼不能低于4位\n");return -1;}return 0; }//字符串拷貝剔除掉換行符\n void strcpy_not_n(char *des, char *src) {while (*src != '\0'){if (*src != '\n')*des = *src;else*des = '\0';src++;des++;} }//保持數據到txt文件 void save_people_list() {FILE *fp = fopen(CON_TXT_PATH, "w"); /*打開一個文本文件,允許讀寫文件。如果文件不存在,則會創建一個新文件。讀取會從文件的開頭開始,寫入則只能是追加模式。*/if (!fp){fprintf(stderr, "打開%s文件錯誤:%s\n", CON_TXT_PATH, strerror(errno));return ;}int i = 0;fprintf(fp, "手機號碼 姓名 聯系地址 職業 公司 郵箱\n");int interval = 3;char dest[1024] = "";char str[256] = "";int record = 0;struct People_Node *pnode = NULL;for (i = 0; i < COUNT_TEL_MAX; i++){pnode = g_tel[i]->head;while (pnode){ record = record + 1;sprintf(str, "%s %s %s %s %s %s\n", pnode->people.tel, pnode->people.name, pnode->people.address, pnode->people.occupation, pnode->people.company, pnode->people.email);strcat(dest, str);strcpy(str, "");if (record%interval == 0){fprintf(fp, dest);record = 0;strcpy(dest, "");}pnode = pnode->next;}}if (strcmp(dest, "") != 0)fprintf(fp, dest);fclose(fp); }//測試命令 int test_cmd() {printf("1:隨機增加n個聯系人,例如:1 1000 就是隨機增加1000個聯系人\n");char cmd1[20];int cmd2 = 0;scanf("%s", &cmd1);if(check_return_main(cmd1)){clean_stdin();return RETURN_MAIN_FLAG;}scanf("%d", &cmd2);clean_stdin();if (atoi(cmd1) != 1 || cmd2 <= 0){printf("輸入的測試命令格式不對\n");return 0;}char *family_names[10] = {"李一一","歐陽二","張三","李四","王五","易六","高七","宋八","唐九","楊十"};char *address[10] = {"廣州","上海","天津","北京","武漢","拉薩","新疆","河北","河南","廣西"};char *occupation[10] = {"老師","快遞員","工程師","個體","醫生","護士","培訓師","務農","健身教練","CEO"};char *company[10] = {"滕芬網絡","云上科技","佳佳超市","水煮魚餐飲","來一杯奶茶","好多好吃","小蔥蔬菜","水果批發商","酸菜魚特產","小云直播"};char *email[10] = {"111@163.com","222@qq.com","333@qq.com","444@163.com","555@163.com","666@163.com","777@163.com","888@qq.com","999@qq.com","123@163.com"};struct People people;int i = 0, j = 0;int temp;char tel[12] = "1";char str[2];for (i = 0; i < cmd2; i ++){for (j = 0; j < 10; j++){temp = (int)rand()%10;//printf("%d\n", temp);itoa_my(temp, str, 10);strcat(tel, str);strcpy(str, "");}strcpy(people.tel, tel);strcpy(people.name, family_names[(int)rand()%10]);strcpy(people.address, address[(int)rand()%10]);strcpy(people.occupation, occupation[(int)rand()%10]);strcpy(people.company, company[(int)rand()%10]);strcpy(people.email, email[(int)rand()%10]);//printf("%s\n", tel);add_people(people);strcpy(tel, "1");}save_people_list();printf("新增聯系人成功\n");return 1; }//數字轉字符串函數 char *itoa_my(int value, char *str, int radix) {static char dig_my[] ="0123456789""abcdefghijklmnopqrstuvwxyz";int n = 0, neg = 0;unsigned int v;char* p, *q;char c;/* 負數:十進制直接在前面加負號,其它進制用補碼 */if (radix == 10 && value < 0) {v = -value;neg = 1;}else{v = value;}/* 其它進制的負數轉為unsigned int類型,即取了補碼 */do {str[n++] = dig_my[v%radix];v /= radix;} while (v);if (neg)str[n++] = '-';str[n] = '\0';/* 字符串反轉 */for (p = str, q = p + (n-1); p < q; ++p, --q)c = *p, *p = *q, *q = c;return str; }

七、效果截圖

首頁

測試命令增加10個聯系人,并打印通訊錄

退出通訊錄

總結

以上是生活随笔為你收集整理的C语言 通讯录管理系统(链表,手机号码分段存储,txt文件存取)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久一区二区无卡 | 亚洲高清视频在线观看免费 | 国产精品对白一区二区三区 | www.天天射.com| 最新婷婷色 | 很黄很黄的网站免费的 | 黄色软件视频大全免费下载 | 亚洲精品美女久久 | 国产精品一区二区三区在线播放 | 一区二区三区精品在线视频 | 国产原创av在线 | 一级片视频免费观看 | 久久国产91 | 99热网站| av在线免费网站 | 337p日本欧洲亚洲大胆裸体艺术 | 91插插插免费视频 | 国产3p视频| 99热只有精品在线观看 | 成人午夜电影在线 | 8x成人在线 | 日韩av五月天| 国产美女视频免费 | 国产精品成人一区二区三区 | 亚洲午夜电影网 | 日韩性xxx| 亚洲毛片一区二区三区 | 日韩在线观看高清 | 欧美aa一级片 | 亚洲国内精品在线 | 丰满少妇在线观看网站 | 国产视频一区在线免费观看 | 色播五月激情综合网 | 免费高清在线一区 | av品善网| 免费黄色av| 久久久精品国产一区二区 | 成人性生交大片免费看中文网站 | 久久精品一区二区三区国产主播 | 国产精品系列在线 | 色婷婷丁香 | 日本大尺码专区mv | 国产精品99蜜臀久久不卡二区 | 91看片黄色 | 大胆欧美gogo免费视频一二区 | 在线观看中文字幕一区 | 国产一区二区精品在线 | 国产视频精品免费播放 | 色婷婷五 | 99在线高清视频在线播放 | 精品91| 狠狠狠色丁香婷婷综合久久88 | 日韩精品一区在线观看 | 日批视频| 欧美日韩国产二区 | 日韩一二区在线 | 一级国产视频 | 日韩免费看视频 | 国产精品美女久久久久久久久 | 九九一级片 | 久久人人爽人人片 | av在线日韩 | 成人网在线免费视频 | 国产精品福利小视频 | 在线视频亚洲 | 91精品久久久久久久久久入口 | 在线视频中文字幕一区 | 国产视频手机在线 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 成片免费观看视频大全 | 国产视频一二区 | 国产成人一区二区在线观看 | 九九免费精品 | 久久国产精品系列 | 女人18片毛片90分钟 | 婷婷丁香六月 | 成人欧美亚洲 | 亚洲精品一区二区精华 | av电影 一区二区 | 日韩网站在线观看 | 超级碰99 | 久久久久久久久久久影院 | 精品国产免费一区二区三区五区 | 91精品视频免费 | 久久av网址 | 免费网站黄色 | 日本女人在线观看 | 色婷婷a| 成人黄色片免费看 | 中文字幕精品一区二区精品 | 久久久久久高清 | 国产一及片| 久久99精品国产麻豆婷婷 | 911精品美国片911久久久 | 国产精品96久久久久久吹潮 | 国产精品综合久久久久 | 国产精品麻豆免费版 | 久久精品久久久久久久 | 亚洲精品无| 久久久九九 | 亚洲爱av | 免费看片网页 | 国产日韩精品在线观看 | 国产在线观看免费观看 | 日韩色在线观看 | 激情婷婷亚洲 | 欧美亚洲国产精品久久高清浪潮 | 中文字幕亚洲不卡 | 天堂在线v | 久久高清片| 在线免费黄| 国产精品久久久久免费观看 | 亚洲国内精品 | 手机av电影在线观看 | 久久国产精品免费 | 99国产视频 | 超碰日韩| 91亚洲在线观看 | 久久综合狠狠综合久久激情 | 五月的婷婷 | avwww在线| 日韩在线观看免费 | 手机色站 | 97在线观看免费高清 | www.久久久精品 | 在线观看免费av网 | 国产一二区视频 | av电影在线观看完整版一区二区 | 99在线视频免费观看 | 色网址99 | 日韩av在线网站 | 久草在线视频免赞 | 在线激情影院一区 | 亚洲成人精品久久 | 天天射,天天干 | 中文在线www | 色射色 | 久久精品亚洲一区二区三区观看模式 | 国产精品video爽爽爽爽 | 亚洲日本精品 | 深夜免费福利网站 | 欧美成人在线免费 | 成人香蕉视频 | 国产精品久久久久一区 | 欧美 亚洲 另类 激情 另类 | 在线中文字幕电影 | 免费在线观看av片 | 成人黄在线 | 亚洲一级电影在线观看 | 久久精品国产免费观看 | 国产精品午夜久久久久久99热 | 欧美一级久久久 | 日本精品在线看 | 午夜999 | 午夜免费视频网站 | av福利第一导航 | 国产综合91 | 国产精在线 | av高清在线观看 | 国产亚洲高清视频 | 亚洲性少妇性猛交wwww乱大交 | 中文字幕视频网 | av色网站 | 国产一级精品在线观看 | 午夜视频在线瓜伦 | 在线91色 | 在线观看 亚洲 | 丁香综合av | 日韩av影片在线观看 | 色综合色综合久久综合频道88 | 成人免费观看a | 国产精品一区二区久久精品爱涩 | 国产精品一区二区三区四区在线观看 | 99精品网站 | 少妇搡bbbb搡bbb搡69 | 91大神精品视频在线观看 | 免费亚洲电影 | 亚洲高清视频在线播放 | 国产精品高潮呻吟久久久久 | 2022中文字幕在线观看 | 国产你懂的在线 | 亚洲国产精品va在线 | 亚洲欧美激情精品一区二区 | 最新中文在线视频 | 午夜视频99| 2020天天干天天操 | 香蕉影院在线播放 | 狠狠插狠狠操 | 一区二区久久久久 | 久久爱992xxoo | 一区二区伦理 | 天天干天天草天天爽 | 日韩网站一区二区 | 涩涩色亚洲一区 | 插婷婷 | 国产一区二区手机在线观看 | 五月天色丁香 | 国产乱老熟视频网88av | 久久成人国产精品免费软件 | 在线看av的网址 | 午夜黄色一级片 | 国产精品第一页在线观看 | 日韩在线国产 | 日韩欧美高清 | 成人av网站在线播放 | 国产a级片免费观看 | 五月天婷婷丁香花 | 亚洲少妇久久 | 色婷婷综合成人av | 久久全国免费视频 | 欧美孕妇与黑人孕交 | 中文字幕高清 | 伊人伊成久久人综合网站 | 亚洲成av人片在线观看www | 国内毛片毛片 | 超碰97国产 | 久久久蜜桃一区二区 | 91麻豆传媒 | 久久精品老司机 | 久草观看 | 日韩三级不卡 | 精品福利视频在线观看 | 日韩精品久久久 | 色综合久久久久综合 | 色综合天天综合 | 97超碰色| 中文在线免费一区三区 | 亚洲精品在线观看免费 | 亚洲人视频在线 | 在线欧美a | 精品亚洲va在线va天堂资源站 | 久久婷婷国产色一区二区三区 | 99色国产| 国产精品第一页在线观看 | 香蕉在线播放 | 日韩免费视频播放 | 99色人| 日日干激情五月 | 国产精品毛片久久久 | 欧美久久久久久久 | 西西444www| 超碰免费成人 | 91网址在线看 | 亚洲欧美日韩精品一区二区 | 久久久99精品免费观看乱色 | 中文超碰字幕 | 在线成人小视频 | 成人av动漫在线 | 日本中文字幕在线视频 | 最近中文字幕免费 | 在线成人免费电影 | 国产一区二区在线视频观看 | 欧美日韩国产免费视频 | 国产又黄又爽无遮挡 | 国产精品视频app | 国产精品18久久久久久久网站 | 日韩欧美视频免费在线观看 | 中文日韩在线 | 美女免费黄视频网站 | 免费观看一级特黄欧美大片 | a级片在线播放 | www.综合网.com| 中文字幕在线久一本久 | 天天色综合三 | 亚洲欧洲国产视频 | 成人黄色大片在线观看 | 美女国内精品自产拍在线播放 | 久久夜色精品国产欧美乱极品 | 免费三级黄 | 国产精品都在这里 | 国内精品久久久久久久影视简单 | 国产一区二区不卡在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美国产日韩久久 | 欧美精品一区二区免费 | 狠狠网亚洲精品 | 8x成人在线 | 欧美日韩国产精品一区二区三区 | 国产不卡一 | 在线观看成年人 | 夜夜视频| 97影视| 黄污视频网站大全 | av怡红院| 精品播放| 国产一级免费播放 | 久草视频视频在线播放 | 精品久久久国产 | 国产免费黄视频在线观看 | 免费又黄又爽的视频 | 欧美性大胆 | 99精品视频网 | av中文字幕在线免费观看 | 韩国在线视频一区 | 四虎在线影视 | av日韩国产| 中文字幕av播放 | 在线观看免费观看在线91 | 99亚洲精品 | 天天操夜操视频 | 日韩av看片| 午夜一级免费电影 | 色婷婷www| 蜜臀av夜夜澡人人爽人人桃色 | 欧美一区二区精品在线 | 一色屋精品视频在线观看 | 最近中文字幕视频网 | 国产视频二区三区 | 亚洲欧洲精品一区二区精品久久久 | 美女黄久久 | 992tv在线观看| 亚洲一区不卡视频 | 国产在线一线 | 国产日产精品一区二区三区四区的观看方式 | 97精品免费视频 | 成人精品视频 | 久久久精品一区二区 | 日批在线观看 | 久操中文字幕在线观看 | 久久久久久久久久久免费av | 精品美女在线视频 | 亚洲日本va在线观看 | 97超碰人人 | 国产人在线成免费视频 | 色在线免费观看 | 亚洲丝袜中文 | 亚洲一区不卡视频 | 中文字幕在线观看三区 | 久久久久久久久免费视频 | 中文字幕在线观看免费 | 国产精品不卡av | 美女网站视频免费都是黄 | 九九视频免费观看视频精品 | 久久久久久国产一区二区三区 | 韩国av免费 | 九九综合在线 | 天天躁日日 | 成人av一级片 | 国产视频一区在线播放 | 国产无遮挡又黄又爽在线观看 | 色婷婷激情综合 | 成 人 黄 色 视频播放1 | 婷婷新五月 | 成人黄色影片在线 | 国产亚洲人 | 中文字幕在线中文 | 日日操天天操狠狠操 | 午夜影院一区 | 91精品啪啪 | 在线播放一区二区三区 | 久久午夜电影 | 亚洲最新视频在线播放 | 在线视频日韩欧美 | 亚洲日本在线一区 | 国产无套视频 | 国产黄色高清 | 午夜黄色一级片 | 在线免费高清一区二区三区 | 色噜噜在线观看 | 国产精品福利无圣光在线一区 | 99精品在线 | 国产一区在线免费观看视频 | 午夜久久久久久久久久久 | 国产不卡一二三区 | 成人av影视 | 国产精品系列在线播放 | 日韩欧美有码在线 | 日韩一区二区三区在线看 | av黄色免费在线观看 | 最新中文字幕视频 | av在线亚洲天堂 | 国产一级免费视频 | 亚洲国产精品500在线观看 | 国产国产人免费人成免费视频 | 欧洲亚洲国产视频 | 中文字幕成人在线观看 | 欧美a级片网站 | 99福利片| 色黄久久久久久 | 国产日韩视频在线播放 | 欧美午夜剧场 | 国产日韩精品在线观看 | 国产精品一区二区三区观看 | 五月婷婷在线综合 | 九九九九精品九九九九 | 手机成人免费视频 | 天天干天天操天天爱 | 精品国产伦一区二区三区免费 | 久久在线视频精品 | 99r在线视频 | 天堂中文在线播放 | 亚洲欧美日韩一区二区三区在线观看 | 丁香激情婷婷 | 久久亚洲私人国产精品 | 999国内精品永久免费视频 | 国产视频精品网 | 精品影院 | 午夜av不卡 | 久久久久久久久久久网 | 免费a v网站 | 免费a视频 | 久久久久久久综合色一本 | 精品在线一区二区 | 色丁香色婷婷 | 久久黄色免费观看 | 狠狠的日 | 深夜免费福利视频 | 国产精品久久久久高潮 | 在线观看亚洲国产精品 | 欧美极度另类 | 亚洲无吗视频在线 | 国产玖玖精品视频 | 九九天堂| 91高清一区 | 成年美女黄网站色大片免费看 | 精品国产精品久久一区免费式 | 91成人亚洲 | 在线看国产日韩 | 久久精品中文字幕一区二区三区 | 一区二区视频在线观看免费 | av成年人电影 | 99久久国产免费免费 | 精品v亚洲v欧美v高清v | 中文字幕高清有码 | 五月综合婷 | 色婷婷综合久久久中文字幕 | 婷婷综合影院 | 天堂av一区二区 | 欧美少妇18p | 亚洲精品资源在线 | 91成人天堂久久成人 | 国产黄色一级片在线 | 欧美日韩一区二区三区不卡 | 国产精品久久久久久久电影 | 天堂网一区二区三区 | 亚洲精品午夜久久久久久久 | 精品久久久久久久久久久久久 | 丁香5月婷婷| 美女激情影院 | 成人午夜性影院 | 国产一级片久久 | 黄网站免费大全入口 | 日韩av午夜 | 成人小视频免费在线观看 | 五月婷婷开心中文字幕 | 久在线观看 | 黄色av网站在线观看 | 四虎永久免费网站 | 欧美aⅴ在线观看 | 西西444www大胆高清图片 | 狠狠色丁香婷婷综合视频 | 欧美三级免费 | 亚洲 欧美 成人 | 久久久免费播放 | 性色va | 日韩av免费一区二区 | 波多野结衣在线视频一区 | 国产精品成人一区二区三区吃奶 | 婷婷丁香五 | 美女黄频 | 人人看人人草 | 国产探花视频在线播放 | 国产精品久久久久婷婷二区次 | 日韩av手机在线看 | 超碰97在线资源 | 最新超碰在线 | 美腿丝袜av | 免费麻豆网站 | 国产高清综合 | 婷婷网五月天 | 91热视频在线观看 | 在线看的av网站 | 色视频成人在线观看免 | 免费99| 成人观看视频 | 久久久久久在线观看 | 国产精品久久久久免费观看 | 国产精品国产三级国产专区53 | 黄色av播放 | 91夜夜夜| 开心激情五月婷婷 | 麻豆传媒在线免费看 | av电影在线免费观看 | 就操操久久 | 中文字幕在线观看一区二区三区 | 亚洲第一色 | 美女网站在线观看 | 国产视频在线观看一区二区 | a午夜电影| 久久久久久久久久电影 | av电影不卡 | 国产区在线视频 | 久草在线视频网站 | 天天色.com | 国内小视频在线观看 | 午夜精品在线看 | 日韩在线视 | 亚洲另类视频在线观看 | 亚洲精品国产精品国自产在线 | 日本激情视频中文字幕 | 日韩精品短视频 | 亚洲国产丝袜在线观看 | 97视频在线免费播放 | 天天综合在线观看 | 免费观看一区二区 | 国产成人精品一区二 | 国产99久久久国产精品成人免费 | 国产精品毛片一区二区 | 在线成人高清电影 | 天天做夜夜做 | 色诱亚洲精品久久久久久 | 一区二区日韩av | 黄色软件网站在线观看 | 欧美性久久久 | 91在线观看视频 | 亚洲九九九 | 欧美精品久久人人躁人人爽 | 99色婷婷| www麻豆视频 | 午夜久久 | 免费日韩av电影 | 波多野结衣在线中文字幕 | 伊人五月 | 欧美在线资源 | 狠狠操天天射 | 一区二区三区在线观看免费 | 亚洲三级国产 | 超碰97久久 | 97超级碰碰碰视频在线观看 | 91精品久久久久久久99蜜桃 | 婷婷深爱 | 亚洲综合欧美激情 | 毛片激情永久免费 | 久爱精品在线 | 日韩欧美高清一区二区三区 | 久久av电影 | 久久69av | 亚洲成aⅴ人片久久青草影院 | 五月天久久精品 | 色综合天天综合在线视频 | 国产一区精品在线观看 | 一级欧美日韩 | 瑞典xxxx性hd极品 | 日韩精品专区在线影院重磅 | 欧美天天干| 欧美日韩国内在线 | 亚洲永久精品一区 | www免费网站在线观看 | 人人射人人| 亚洲综合激情网 | 超碰国产在线观看 | 97视频免费播放 | 欧美日韩国产区 | 国产一区二区不卡视频 | 国产精品国产三级在线专区 | 久久激情综合 | 午夜精品久久久久久久久久 | 最新高清无码专区 | av片中文 | 91丨九色丨国产女 | 日韩精品一区二区电影 | 天天操天天能 | 国产视频精品免费 | 日本久久成人中文字幕电影 | 色吊丝在线永久观看最新版本 | 久久精品999 | 婷婷丁香av | 国产在线精品一区二区 | 亚洲高清色综合 | 精品欧美在线视频 | www.人人草 | 亚洲一区二区视频在线播放 | 国产午夜一区二区 | 欧美精品在线观看免费 | 又色又爽又激情的59视频 | 五月激情久久久 | 久久电影色| 激情欧美网 | 国产一级免费电影 | 欧美日韩69| 久久精品免费看 | 99视频这里只有 | 日韩电影中文,亚洲精品乱码 | 亚洲九九爱 | 热久久电影 | 日韩激情综合 | 亚洲精品美女免费 | av成人在线网站 | 精品国产乱码久久 | 免费成人在线观看 | 超碰av免费 | 欧美a性 | 在线黄色av | 99r在线 | 性色xxxxhd| 白丝av免费观看 | 亚洲黄色av网址 | 日韩欧美v | 日韩免费三区 | 久久99精品久久久久婷婷 | 亚洲草视频 | 久久成年人视频 | 人人干人人搞 | 亚洲精品福利视频 | 99久久999久久久精玫瑰 | 99久久99久国产黄毛片 | 久久福利小视频 | 色视频网站在线观看一=区 a视频免费在线观看 | 99久久99视频只有精品 | 一区二三国产 | 色噜噜狠狠狠狠色综合 | 在线亚洲天堂网 | 免费久久网站 | 97视频免费观看 | 色多多在线观看 | 婷婷夜夜 | 成人a大片 | 成年人天堂com | 亚洲视屏 | 国产特级毛片aaaaaa毛片 | 蜜臀av免费一区二区三区 | 免费高清在线观看电视网站 | 欧美日韩在线观看视频 | 九色在线视频 | 久久免费视频5 | 区一区二区三区中文字幕 | 91久久在线观看 | 日韩精品一区二区三区不卡 | av 一区二区三区 | 手机在线日韩视频 | 精品久久久久一区二区国产 | 久久一区二 | 成人午夜黄色 | 亚洲成人网av| 91福利国产在线观看 | 免费电影一区二区三区 | 婷婷伊人网 | 色婷婷视频在线观看 | 亚洲自拍av在线 | 在线精品在线 | 国产成人av综合色 | 亚洲电影自拍 | 免费看麻豆| 成年人在线免费看视频 | 久久久久久在线观看 | 伊人av综合| 色偷偷88欧美精品久久久 | 天天操 夜夜操 | 国产精品黄 | 91影视成人 | 特级毛片在线免费观看 | 久久婷婷国产 | 欧美吞精 | 久久艹人人 | 国产精品嫩草影院123 | 91精品在线免费 | 九九热在线免费观看 | 97av免费视频 | 国产日韩精品一区二区三区在线 | 视频国产区 | 一区二区三区久久精品 | 91福利视频免费 | 91免费的视频在线播放 | 成人h电影在线观看 | 狠狠躁18三区二区一区ai明星 | 欧美福利视频一区 | 精品国产1区 | 亚洲激色 | 亚洲国产成人在线 | 国产成人精品999 | 欧美午夜精品久久久久久孕妇 | 丝袜美腿亚洲综合 | 国产亲近乱来精品 | 亚洲va欧美va人人爽春色影视 | 免费黄色网址大全 | 婷婷中文字幕在线观看 | 久久黄色a级片 | 黄色91在线观看 | 日日爽夜夜操 | 中文字幕一区二区三区久久 | 操久| 波多野结衣一区 | 久草精品在线播放 | 国产成人综合在线观看 | 久久成人麻豆午夜电影 | 日韩电影在线观看一区二区三区 | 国产成人福利在线观看 | 激情欧美一区二区三区 | 免费国产在线精品 | 久久综合九色综合久久久精品综合 | 日本性动态图 | 91精品一区二区三区久久久久久 | 国产午夜精品一区 | 日韩综合色 | 91成人网在线观看 | 亚洲男男gaygay无套 | 九九久久久久久久久激情 | 国产精品美女视频 | 亚洲成人网在线 | 97视频中文字幕 | 看v片| 国产精品婷婷午夜在线观看 | 成人久久久电影 | adn—256中文在线观看 | 国产剧在线观看片 | 日本久久99| 天天曰天天曰 | 国产成人三级一区二区在线观看一 | 一区二区三区免费在线播放 | 亚洲精品国内 | 爱情影院aqdy鲁丝片二区 | 99久久精品免费视频 | 天天射射天天 | 国产国语在线 | 日韩毛片一区 | 成人三级网站在线观看 | 99热手机在线 | 91久久黄色| 九九九九九九精品任你躁 | 麻豆成人网 | 高清av免费看 | 一区二区精品在线 | 一本一本久久a久久精品牛牛影视 | 亚洲精品xxxx | 五月天丁香视频 | 久久久久国产成人免费精品免费 | 欧美国产日韩一区二区三区 | 久久人人爽人人爽人人片av软件 | 亚洲国产成人在线播放 | 91视频首页 | avhd高清在线谜片 | 中文国产成人精品久久一 | 99久久精品免费一区 | 99免费视频 | 国产高清av免费在线观看 | 色中文字幕在线观看 | 午夜成人免费影院 | 久草99 | 黄色网在线播放 | 高清不卡毛片 | 99精品免费久久久久久久久 | 久久久国产精品电影 | 99久久精品国产网站 | av观看免费在线 | 日韩精品一二三 | 国际av在线 | 麻豆91网站| 欧美成人影音 | 久久久久美女 | 99久久99久国产黄毛片 | 西西444www大胆无视频 | 国产又黄又硬又爽 | 成人av免费在线观看 | 中文字幕亚洲精品在线观看 | 国产尤物在线视频 | 美女网站黄免费 | 国产精品99久久久久久人免费 | 在线欧美最极品的av | a视频在线播放 | 97电影在线观看 | 成人黄色在线播放 | 精品国产乱码久久久久久天美 | 色噜噜日韩精品欧美一区二区 | 中文在线中文资源 | 欧美精品黑人性xxxx | 久草9视频 | 亚洲视频专区在线 | 精品在线观看一区二区 | 一区二区三区韩国免费中文网站 | 久久视频一区二区 | 中文字幕人成人 | 国产最新福利 | 亚洲人毛片 | 2000xxx影视 | av中文字幕在线电影 | 99免费国产 | 麻豆av一区二区三区在线观看 | 91麻豆精品国产91久久久久久 | 在线成人国产 | 中文资源在线播放 | 国产成人福利片 | 久久91久久久久麻豆精品 | 久久国产精品免费视频 | 国产美女精品在线 | 精品九九九| 天天操天天操天天操 | 久久久久亚洲最大xxxx | 日韩av成人在线 | 中文字幕在线免费看线人 | 久久呀| 久久国产网 | 久久久这里有精品 | 免费视频资源 | 97国产大学生情侣白嫩酒店 | av网站免费在线 | 日韩电影在线视频 | 成人在线视频在线观看 | 91视频 - 88av | 2023亚洲精品国偷拍自产在线 | 91av原创 | 成人黄色大片在线观看 | 国产精品一区二区av影院萌芽 | 久久人人爽人人 | 江苏妇搡bbbb搡bbbb | 日本黄色免费看 | 国产韩国精品一区二区三区 | 久久伦理 | 日韩精品短视频 | 成人不用播放器 | 日韩一级黄色av | 一区二区精品在线观看 | 91视频高清 | 久久精品免费播放 | 成人午夜电影在线 | 国产成人精品av在线观 | 美女在线黄 | 国产在线精品观看 | 超碰999 | 国产人成免费视频 | 欧美a视频在线观看 | 免费av网站在线 | 中文字幕永久免费 | 欧美精品在线免费 | av免费观看在线 | 久草在线免费新视频 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 一区二区高清在线 | 日本乱视频 | 很黄很污的视频网站 | www.狠狠干 | 中文字幕精品在线 | 午夜av激情| 天天综合人人 | 成人免费91 | 亚洲一一在线 | 亚洲精品一区二区网址 | 亚洲 成人 一区 | 久久香蕉影视 | 国产精品24小时在线观看 | 亚洲六月丁香色婷婷综合久久 | 一级片免费观看视频 | 五月婷影院 | 极品美女被弄高潮视频网站 | 久久这里 | 91热视频在线观看 | 国产中文字幕在线视频 | 亚洲精品国产精品国自产观看 | 97超碰免费在线 | 国产色久 | 国产三级av在线 | 中文字幕2021| 欧美资源 | 成人av片免费看 | 国产一级二级三级视频 | 欧美精品在线观看免费 | 免费日韩一区 | 91久久黄色 | 亚洲精品玖玖玖av在线看 | 中文字幕在线免费观看 | 天天操天天艹 | 国产精品一区电影 | 亚洲成人精品在线观看 | 日韩在线视频观看免费 | www操操| 欧美一区二区日韩一区二区 | 夜夜躁日日躁 | 欧美日韩xxx | 91在线看网站 | 福利一区二区在线 | 色偷偷人人澡久久超碰69 | 黄av资源| 黄色软件在线观看免费 | 麻豆传媒视频在线免费观看 | 日本69hd| 69av视频在线 | 一区二区久久久久 | 99这里只有精品视频 | 欧美日韩国语 | 91精品国产91p65 | 久久999精品 | 欧美a级免费视频 | 日本久久久亚洲精品 | 国产黄色片免费看 | 黄色免费在线视频 | 久久乐九色婷婷综合色狠狠182 | 日韩精品在线观看视频 | 日日夜夜婷婷 | 日韩精品高清不卡 | 在线91精品 | 久久免费视频精品 | 人人爽久久涩噜噜噜网站 | 亚洲三级在线免费观看 | 欧美视频99 | 日韩久久精品一区二区 | 国产精品99在线播放 | 国产精品免费观看视频 | 蜜臀aⅴ国产精品久久久国产 | 国内精品小视频 | 婷婷丁香导航 | 免费观看www小视频的软件 | 91精品视频播放 | 精品爱爱| 国产综合精品久久 | 精品一区 在线 | 国产精品视频不卡 | 在线观看av中文字幕 | 婷婷新五月 | 一区二三国产 | 免费观看91视频 | 亚洲精品国产成人 | 日本中文字幕在线 | 午夜婷婷在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 在线免费三级 | 热99在线视频 | 51久久夜色精品国产麻豆 | 免费看的黄色录像 | 四虎成人精品永久免费av | 日本特黄一级片 | 日本中文字幕在线观看 | 福利一区视频 | 免费国产在线观看 | 中文免费观看 | 最新日韩中文字幕 | 久草视频2| 99免费在线观看视频 | 美女免费视频网站 | 国产亚洲精品久久网站 | 国产免费亚洲 | 免费看片黄色 | 国产精品免费视频一区二区 | 福利区在线观看 | 91亚洲精品国偷拍 | 激情综合色综合久久 | 久九视频| 亚洲精品久久久久www | 日韩免费看片 | 在线播放视频一区 | 日韩二区三区在线 | 日韩理论在线观看 | 亚洲va在线va天堂va偷拍 | 国产成人精品一区二区三区在线 | 欧美性另类 | 精品九九九 | 午夜性盈盈 | 日韩1级片 | 欧美网站黄色 | 亚洲黄色在线观看 | 天天摸天天操天天爽 | 天天躁日日躁狠狠躁av麻豆 | 久久久久久久99精品免费观看 | 天天操夜操 | 免费在线播放黄色 | 国产精品夜夜夜一区二区三区尤 | 亚洲香蕉视频 | 国产精品国产三级国产 | 午夜精品一区二区三区视频免费看 | 精品在线观看一区二区 | 免费av片在线 | 亚洲成av人片在线观看无 | 天天操天天摸天天射 | 在线亚洲人成电影网站色www | 夜夜躁狠狠躁日日躁视频黑人 | 日韩免费一区二区在线观看 | 丁香午夜婷婷 | 久久久久久久久福利 | 国产香蕉97碰碰碰视频在线观看 | 免费观看视频的网站 | 久久久国产精品网站 | 天天操夜夜操天天射 | 色视频网站在线观看一=区 a视频免费在线观看 | 91日韩免费 | 麻豆系列在线观看 | 国产精品毛片一区二区 | 精品视频国产一区 | 一区二区三区四区免费视频 | 99久久精品国产一区二区三区 | 日日爱夜夜爱 | 97超碰超碰| 亚洲高清视频一区二区三区 | 欧美日韩精品在线 | 精品国产一区二区三区久久久 | avav99| 一区二区三区日韩在线观看 | 成人黄色小说视频 | 超碰夜夜| 久久免费精品视频 | 亚洲精品在线免费播放 | 国内精品国产三级国产aⅴ久 | 久久久96| 精壮的侍卫呻吟h | 国产91小视频 | 91在线中字| 久久精品三 | 午夜精品久久久久久久99热影院 | 午夜精品久久久久久 | 一区二区伦理 | 91精品老司机久久一区啪 |