C语言之简单通讯录制作
生活随笔
收集整理的這篇文章主要介紹了
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语言之简单通讯录制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模之秩和比综合评价方法(RSR)
- 下一篇: We7务实性电子政务与‘云’