日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言之简单通讯录制作

發布時間:2023/12/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言之简单通讯录制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

手機在人們生活中越來越普遍了,每個人的手機中都有一個通訊錄,那么今天我就用c語言給大家實現一個簡易版的手機通訊錄,要求如下:
實現一個通訊錄,通訊錄可以用來存儲1000個人的信息,每個人的信息包括: 姓名、性別、年齡、電話、住址

提供方法如下:

  • 添加聯系人信息
  • 刪除指定聯系人信息
  • 查找指定聯系人信息
  • 修改指定聯系人信息
  • 顯示所有聯系人信息
  • 清空所有聯系人
  • 以名字排序所有聯系人
  • 保存聯系人到文件
  • 加載聯系人
  • 具體實現過程如下,主要是應用結構體,簡單易懂

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<assert.h> #include<stdlib.h>#define NameMax 20 #define SexMax 3 #define TelMax 11 #define AddressMax 20 #define PeopleMax 1000typedef char Persontype;typedef struct PERSON {Persontype Name[NameMax];// 姓名Persontype Sex[SexMax]; // 性別int Age; // 年齡Persontype Tel[TelMax]; //聯系方式Persontype Address[AddressMax]; //地址}Person;typedef struct BOOK {Person Data[PeopleMax];//Address_Book結構體最大存儲容量int count; //當前已存儲人數 }Book;void Initbook(Book* people); //初始化void show_person(Book* people);//打印void Add_person(Book *people);// 增加成員void Del_person(Book* people);//刪除成員int Find_person(Book* people);//查找成員void Change_person(Book* people);//修改成員void BubbleSort_person(Book* people);//冒泡排序//初始化 void Initbook(Book* people) {people->count = 0; }//打印 void show_person(Book* people) {if (people == NULL){printf("通訊錄為空!\n");return;}if (people->count == 0){printf("通訊錄為空!\n");}int i = 0;for (; i <= people->count - 1; ++i){printf("Name:%s\n", people->Data[i].Name);printf("Sex:%s\n", people->Data[i].Sex);printf("Age:%d\n", people->Data[i].Age);printf("Tel:%s\n", people->Data[i].Tel);printf("Addre:%s\n", people->Data[i].Address);}printf("\n"); }//增加成員 void Add_person(Book *people) {assert(people);int i = 0;if (people->count > PeopleMax){printf("通訊錄已滿!\n");return;}printf("請輸入姓名:\n");scanf("%s", (people->Data[people->count]).Name);printf("請輸入性別:\n");scanf("%s", (people->Data[people->count]).Sex);printf("請輸入年齡:\n");scanf("%d", &(people->Data[people->count]).Age);printf("請輸入聯系方式:\n");scanf("%s", (people->Data[people->count]).Tel);printf("請輸入住址:\n");scanf("%s", (people->Data[people->count]).Address);printf("增加成功!\n");people->count++;printf("count = %d\n", people->count);} //刪除成員 void Del_person(Book* people) {if (people == NULL){printf("通訊錄為空!\n");return;}int ret = Find_person(people);if (ret != -1){int i = ret;for (; i < people->count - 1; ++i){people->Data[i] = people->Data[i + 1];}people->count--;printf("count = %d\n", people->count);}else{printf("沒有該成員!\n");} }//查找成員 int Find_person(Book* people) {assert(people);char name[20];printf("請輸入姓名:\n");scanf("%s", name);int i = 0;for (; i < people->count; ++i){if (strcmp(people->Data[i].Name, name) == 0){printf("Name:%s\tSex:%s\tAge:%d\tTel:%s\tAddre:%s\n", people->Data[i].Name, people->Data[i].Sex, people->Data[i].Age, people->Data[i].Tel, people->Data[i].Address);return i;printf("下標為 %d\n", i);}}printf("沒有找到該聯系人!\n");return -1; }//修改成員 void Alter_person(Book* people) {assert(people);int ret = Find_person(people);if (ret != -1){printf("Name->:\n");scanf("%s", people->Data[ret].Name);printf("Sex->:\n");scanf("%s", people->Data[ret].Sex);printf("Age->:\n");scanf("%d", &(people->Data[ret]).Age);printf("Tel->:\n");scanf("%s", people->Data[ret].Tel);printf("Add->:\n");scanf("%s", people->Data[ret].Address);}else{printf("沒有該成員!\n");return;} }void BubbleSort_person(Book* people) {if (people == NULL){printf("空通訊錄!\n");return;}int i = 0;for (; i < people->count - 1; ++i){int j = 0;for (; j < people->count - 1 - i; ++j){if (strcmp(people->Data[j].Name, people->Data[j + 1].Name) > 0){char tmp[NameMax];strcpy(tmp, people->Data[j].Name);strcpy(people->Data[j].Name, people->Data[j + 1].Name);strcpy(people->Data[j + 1].Name, tmp);}}}show_person(people); }void menu() {printf("*** 通訊錄 *********************\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"); }int main() {Book people;Initbook(&people);while (1){menu();int n = 0;scanf("%d", &n);switch (n){case 1:Add_person(&people);break;case 2:Del_person(&people);break;case 3:Find_person(&people);break;case 4:Alter_person(&people);break;case 5:show_person(&people);break;case 6:Initbook(&people);break;case 7:BubbleSort_person(&people);break;case 8:exit(0);default:{printf("輸入錯誤!\n");break;}}}return 0; }

    總結

    以上是生活随笔為你收集整理的C语言之简单通讯录制作的全部內容,希望文章能夠幫你解決所遇到的問題。

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