#include <stdio.h>
#include <string.h>
#define MAX 100
void menu()
{
printf("1.Add 2.Show 3.Del 4.Change 5.Find 0.Exit");
}
// 创建通讯录,并且可以记录通讯人员的个数
struct begin
{
char name[10];
int age;
char tel[12];
char sex[10];
};
struct Contact
{
struct begin data[MAX];
int num;
};
// 初始化通讯录
void InitContact(struct Contact *ps)
{
memset(ps->data, 0, sizeof(ps->data));
ps->num = 0;
}
// 查找函数
int Find(struct Contact *pp, char *name)
{
for (int k = 0; k < pp->num; k++)
{
if (strcmp(pp->data[k].name, name) == 0)
{
return k;
}
}
return -1;
}
//
// 实现通讯录添加功能
void AddContact(struct Contact *uu)
{
printf("please enter name:>");
scanf("%s", uu->data[uu->num].name);
printf("please enter age:>");
scanf("%d", &uu->data[uu->num].age);
printf("please enter tel:>");
scanf("%s", uu->data[uu->num].tel);
printf("please enter sex:>");
scanf("%s", uu->data[uu->num].sex);
uu->num++;
}
// 实现查看通讯录功能
void ShowContact(struct Contact *ui)
{
if (ui->num == 0)
{
printf("通讯录为空");
}
for (int i = 0; i < ui->num; i++)
{
printf("%12s", ui->data[i].name);
printf("%12d", ui->data[i].age);
printf("%12s", ui->data[i].tel);
printf("%12s", ui->data[i].sex);
printf("\n");
}
}
// 实现通讯录删除功能
void DelContact(struct Contact *pp)
{
char name[10];
printf("please enter the name you want to delete:>");
scanf("%s", name);
int ret = Find(pp, name);
// 返回1,开始进行替换删除
if (ret >= 0)
{
for (int j = ret; j < pp->num - 1; j++)
{
pp->data[j] = pp->data[j + 1];
}
pp->num--;
printf("Deletion Completed");
}
else if (ret == -1)
{
printf("没有这个人,找屁");
}
}
// 改变通讯录联系人
void ChangeContact(struct Contact *jk)
{
char name[10];
printf("Enter the contact you want to change:>");
scanf("%s", name);
int pos = Find(jk, name);
if (pos >= 0)
{
printf("please enter name:>");
scanf("%s", jk->data[pos].name);
printf("please enter age:>");
scanf("%d", &jk->data[pos].age);
printf("please enter tel:>");
scanf("%s", jk->data[pos].tel);
printf("please enter sex;>");
scanf("%s", jk->data[pos].sex);
}
else if (pos == -1)
{
printf("找不到那个人,要我怎么改啊");
}
}
// 查找通讯录联系人
void FindContact(struct Contact *ip)
{
char name[10];
printf("please enter the Contact you want search:>");
scanf("%s", name);
int ret = Find(ip, name);
if (ret >= 0)
{
printf("找到喽!\n");
printf("%12s", ip->data[ret].name);
printf("%12d", ip->data[ret].age);
printf("%12s", ip->data[ret].tel);
printf("%12s", ip->data[ret].sex);
}
else if (ret == -1)
{
printf("查无此人");
}
}
int main()
{
menu();
int input = 0;
// 定义好通讯录结构体
struct Contact con;
// 初始化通讯录
InitContact(&con);
do
{
printf("\nplease make your choice:>");
scanf("%d", &input);
// Function selection
switch (input)
{
case 1:
AddContact(&con);
break;
case 2:
ShowContact(&con);
break;
case 3:
DelContact(&con);
break;
case 4:
ChangeContact(&con);
break;
case 5:
FindContact(&con);
break;
default:
continue;
}
} while (input);
printf("Exit completed");
return 0;
}
刚学完C语言结构体,写个这个复习一下,大家也可以参照着复习复习