c语言通讯录打电话,C语言实现简易通讯录 | 术与道的分享
#include
#include
#include
#include
#include
#pragma warning (disable:4996)
enum Contact //枚舉變量
{
Quit, //默認(rèn)為0,下面依次遞增+1
Add, //1
Delect, //2
Select, //3
Alter, //4
Show, //5
Empty, //6
Sort //7
};
//打印菜單
void menu()
{
printf("#########################################################\n");
printf("############## C語言實(shí)現(xiàn)簡易通訊錄 #############\n");
printf("############## 1.添加聯(lián)系人 #############\n");
printf("############## 2.刪除聯(lián)系人 #############\n");
printf("############## 3.查找聯(lián)系人 #############\n");
printf("############## 4.修改聯(lián)系人 #############\n");
printf("############## 5.顯示所有聯(lián)系人 #############\n");
printf("############## 6.清空聯(lián)系人 #############\n");
printf("############## 7.按聯(lián)系人名字排序 #############\n");
printf("############## 0.退出 #############");
}
//定義一個(gè)結(jié)構(gòu)體
typedef struct Peo
{
char name[10];
char sex[5];
char Old[10];
char Phone_num[20];
char adrress[30];
}people;
people Peo[1000]; //定義一個(gè)可以存儲(chǔ)1000用戶的結(jié)構(gòu)圖數(shù)組
//添加聯(lián)系人
int Add_Peo(people Peo[], int n)
{
int i = 0;
char select = 0;
char Rem[20];
while (select != 'N') //判斷是否繼續(xù)添加聯(lián)系人
{
printf("姓名:");
scanf("%s", &Peo[n + i].name);
printf("性別:");
scanf("%s", &Peo[n + i].sex);
printf("年齡:");
scanf("%s", &Peo[n + i].Old);
printf("電話:");
scanf("%s", &Peo[n + i].Phone_num);
printf("地址:");
scanf("%s", &Peo[n + i].adrress);
gets(Rem); //讀取字符串
printf("\n是否繼續(xù)添加?(Y/N):");
scanf("%c", &select);
i++;
}
return (n + i);
}
//刪除聯(lián)系人
int Del_Peo(people Peo[], int n)
{
int i = 0;
int j = 0;
char Name[15];
printf("請(qǐng)輸入你要?jiǎng)h除聯(lián)系人的姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{ //判斷輸入的與結(jié)構(gòu)體數(shù)組中存在的是否匹配,此處為不匹配,且未到達(dá)聯(lián)系人上限
i++;
}
if (i == n) //結(jié)構(gòu)體的出口,說明到達(dá)聯(lián)系人上限
{
printf("沒有此聯(lián)系人!\n\n");
return n;
}
for (j = i; j < n - 1; j++) //找到匹配的聯(lián)系人,刪除后,將刪除處之后的數(shù)據(jù)前移一位
{
strcpy(Peo[j].name, Peo[j + 1].name);
strcpy(Peo[j].sex, Peo[j + 1].sex);
strcpy(Peo[j].Old, Peo[j + 1].Old);
strcpy(Peo[j].Phone_num, Peo[j + 1].Phone_num);
strcpy(Peo[j].adrress, Peo[j + 1].adrress);
}
printf("刪除成功!\n");
return (n - 1);
}
//查找聯(lián)系人
void Sel_Peo(people Peo[], int n)
{
char Name[15];
int i = 0;
printf("請(qǐng)輸入要查看聯(lián)系人的姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{
i++;
}
if (i == n)
{
printf("查找的聯(lián)系人不存在!\n\n");
}
else
{
printf("姓名:%s\n", Peo[i].name);
printf("性別:%s\n", Peo[i].sex);
printf("年齡:%s\n", Peo[i].Old);
printf("電話:%s\n", Peo[i].Phone_num);
printf("地址:%s\n", Peo[i].adrress);
}
printf("\n");
}
//修改聯(lián)系人信息
void Alter_Peo(people Peo[], int n)
{
int i = 0;
char Name[15];
printf("請(qǐng)輸入你要修改的聯(lián)系人姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{
i++;
}
if (i == n)
{
printf("未查到此聯(lián)系人!\n\n");
}
else
{
printf("姓名:");
scanf("%s", &Peo[i].name);
printf("性別:");
scanf("%s", &Peo[i].sex);
printf("年齡:");
scanf("%s", &Peo[i].Old);
printf("電話:");
scanf("%s", &Peo[i].Phone_num);
printf("地址:");
scanf("%s", &Peo[i].adrress);
}
}
//顯示所有聯(lián)系人信息
void Show_Peo(people Peo[], int n)
{
int i = 0;
printf(" 姓名 性別 年齡 電話 地址\n");
for (i = 0; i < n; i++)
{
printf("%7s%6s%8s%14s%15s\n", Peo[i].name, Peo[i].sex, Peo[i].Old, Peo[i].Phone_num, Peo[i].adrress);
}
printf("\n");
}
//清空聯(lián)系人信息
void Empty_Peo(people Peo[], int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
*Peo[i].name = '\0';
*Peo[i].sex = '\0';
*Peo[i].Old = '\0';
*Peo[i].Phone_num = '\0';
*Peo[i].adrress = '\0';
}
printf("\n");
}
//按聯(lián)系人名字排序
void Sort_Peo(people Peo[], int n)
{
int i = 0;
int j = 0;
struct Peo tmp;
for (i = 0; i < n - 1; i++)
{
for (j = i; j < n; j++)
{
if ((strcmp(Peo[i].name, Peo[j].name)) > 0)
{
tmp = Peo[i];
Peo[i] = Peo[j];
Peo[j] = tmp;
}
}
}
}
int main()
{
int input = 1;
int ret = 0;
while (input)
{
menu();
printf("\n請(qǐng)選擇-->");
scanf("%d", &input);
switch (input)
{
case Add:
ret = Add_Peo(Peo, ret);
break;
case Delect:
ret = Del_Peo(Peo, ret);
break;
case Select:
Sel_Peo(Peo, ret);
break;
case Alter:
Alter_Peo(Peo, ret);
break;
case Show:
Show_Peo(Peo, ret);
break;
case Empty:
Empty_Peo(Peo, ret);
break;
case Sort:
Sort_Peo(Peo, ret);
break;
case Quit:
exit(0);
break;
default:
break;
}
}
system("pause");
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的c语言通讯录打电话,C语言实现简易通讯录 | 术与道的分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言链表找姓,急啊!!!求救了 C语言
- 下一篇: android 运动管理,使用 Moti