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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

通讯录的制作

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

前言:

今天我們制作一個

c語言版簡單的通訊錄(最多有一千個聯系人):

主要有一下功能:

1.增加聯系人.

2.刪除聯系人.

3.查找聯系人.

4.修改聯系人.

5.排序聯系人

6. 顯示聯系人信息

目錄:

一、創建目錄:

二、主函數

三、結構體定義

四、結構體初始化

五、查找姓名

六、函數功能更部分

七、完整代碼

一、創建目錄


為了可以讓用戶可以明顯的看清楚我們通訊錄的功能,所以我們需要創建目錄,那么我們應該如何創建目錄呢?

?

演示效果:

?

二、主函數

?三、結構體定義

四、結構體的初始化?

五、查找姓名

六、函數功能?

1.增加聯系人.

演示效果:

?

?2.刪除聯系人

?

?演示如下:

?

3.修改聯系人.

?

演示如下:?

?

4.查找聯系人 :

演示如下:?

5.排序聯系人

?

1.按年齡排序

演示如下:

?

?

?

?2.按名字排序

?

?
演示如下:

?6.顯示聯系人.

演示如下:

?

?效果如下:

?

?

七、完整代碼?

#define MAX_NAME 20 #define MAX_SEX 6 #define MAX_NUMBER 20 #define MAX_ADRESS 30#define MAX 1000 struct content {char name[MAX_NAME];char sex[MAX_SEX];char number[MAX_NUMBER];int age;char adress[MAX_ADRESS]; }; struct contact {struct content tent[MAX];int num; };#include<stdio.h> #include<string.h>//初始化結構體 void Ini_contact(struct contact* pc);//增加通訊錄人員 void addcontact(struct contact* pc);//刪除通訊錄人員 void delcontact(struct contact* pc);//查找被刪除人的姓名 int findbyname(struct contact* pc, char* pch);//查找聯系人的信息 void searchcontact(struct contact* pc); //改變聯系人信息 void changecontact(struct contact* pc); //顯示聯系人信息 void showcontact(struct contact* pc); //排序聯系人信息 void sortcontact(struct contact* pc); int CmpByAge(const void* e1, const void* e2); int CmpByName(const void* e1, const void* e2); void Ini_contact(struct contact* pc) {pc->num = 0;memset(pc->tent, 0, sizeof(pc->tent)); }//增加通訊錄人員 void addcontact(struct contact* pc) {if (pc->num == MAX){printf("通訊錄已滿\n");return;}printf("請輸入姓名:>\n");scanf("%s",pc->tent[pc->num].name);printf("請輸入性別:>\n");scanf("%s",pc->tent[pc->num].sex);printf("請輸入電話:>\n");scanf("%s",pc->tent[pc->num].number);printf("請輸入年齡:>\n");scanf("%d", &(pc->tent[pc->num].age));printf("請輸入地址:>\n");scanf("%s", pc->tent[pc->num].adress);pc->num++;printf("添加成功\n"); } //查找姓名 int findbyname(struct contact* pc, char ch[20]) {int i = 0;for (i = 0; i < pc->num; i++){if (strcmp(pc->tent[i].name, ch) == 0){return i;}}return -1; } //刪除通訊錄人員 void delcontact(struct contact* pc) {if (pc->num == 0){printf("通訊錄為空無法刪除\n");return -1;}char name[20];printf("請輸入刪除人的姓名\n");scanf("%s", name);//查找被刪除人信息的下標int ret = findbyname(pc,name);//替換下標for (int j = ret; j <= pc->num-1; j++){pc->tent[j] = pc->tent[j + 1];}pc->num--;printf("刪除成功\n"); }//查找聯系人的信息 void searchcontact(struct contact* pc) {printf("請輸入查找人的姓名\n");char name[20];scanf("%s", name);int ret = findbyname(pc,name);if (ret == -1){printf("查找的人不存在\n");return;}else{printf("%5s\t%5s\t%20s\t%5d\t%20s\t", pc->tent[ret].name, pc->tent[ret].sex, pc->tent[ret].number, pc->tent[ret].age, pc->tent[ret].adress);printf("查找成功\n");} } //改變聯系人信息 void changecontact(struct contact* pc) {char name[20];printf("請輸入修改聯系人的姓名:>\n");scanf("%s", name);int ret = findbyname(pc, name);if (ret == -1){printf("找不到\n");}else{printf("請輸入姓名:>\n");scanf("%s", pc->tent[ret].name);printf("請輸入性別:>\n");scanf("%s", pc->tent[ret].sex);printf("請輸入電話:>\n");scanf("%s", pc->tent[ret].number);printf("請輸入年齡:>\n");scanf("%d", &(pc->tent[ret].age));printf("請輸入地址:>\n");scanf("%s", pc->tent[ret].adress);printf("修改完成:>\n");} }//顯示聯系人信息 void showcontact(struct contact* pc) {printf("%-20s%-20s%-12s%-5s%-20s\n", "姓名", "性別", "電話", "年齡", "地址");int i = 0;for (i = 0; i < pc->num; i++){printf("%-20s%-20s%-12s%-5d%-20s\n", pc->tent[i].name,pc->tent[i].sex,pc->tent[i].number,pc->tent[i].age,pc->tent[i].adress);} }//排序聯系人 void sortcontact(struct contact* pc) { qsort(pc->tent, pc->num, sizeof(struct content), CmpByAge);//qsort(pc->tent, pc->num, sizeof(struct content), CmpByName);printf("排序成功\n"); } int CmpByAge(const void* e1, const void* e2) {return ((struct content*)e1)->age - ((struct content*)e2)->age; } int CmpByName(const void* e1, const void* e2) {return strcmp(((struct content*)e1)->name , ((struct content*)e2)->name); } void meau() {printf("************1.增加聯系人**************\n");printf("************2.刪除聯系人************\n");printf("************3.修改聯系人************\n");printf("************4.查找聯系人************\n");printf("************5.排序聯系人************\n");printf("************6.展示聯系人************\n");printf("************0.退出程序 ************\n");printf("************************************\n"); } enum option {EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT }; int main() {int input = 0;struct contact con;//結構體初始化Ini_contact(&con);do{meau();printf("請選擇你要進行的操作:>\n");scanf("%d", &input);switch (input){case 1://增加聯系人的信息addcontact(&con);break;case 2://刪除聯系人的信息delcontact(&con);break;case 4://查找聯系人的信息searchcontact(&con);break;case 3://改變聯系人信息changecontact(&con);break;case 5://排序聯系人信息sortcontact(&con);break;case 6://顯示聯系人信息showcontact(&con);break;case 0:break;default :printf("輸入無效,請重新輸入\n");break;}} while (input); return 0; }

總結

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

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