C语言简易通讯录

#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语言结构体,写个这个复习一下,大家也可以参照着复习复习

猜你喜欢

转载自blog.csdn.net/2203_76113052/article/details/128749845