C语言学习历程(十五)结构体数组实现通讯录

这篇博客介绍了如何使用C语言通过结构体数组来实现一个简单的通讯录功能,包括添加、读取、修改和删除联系人。博主给出了结构体的定义,以及添加、读取、修改和删除的函数原型,但并未给出具体实现。
摘要由CSDN通过智能技术生成

#include <stdio.h>
#include<stdlib.h>
#include<string.h>

struct student
{
int num;
char name[20];
char sex[5];
char phone[15];
}STU[30] = {
{1,”chenwenjie”,”male”,”15646488745”},
{2,”maozequan” ,”male”,”15646488745”},
{3,”yangjifu” ,”male”,”15646488745”},
{4,”zhuzhiwen” ,”male”,”15646488745”},
{5,”chenlijun” ,”male”,”15646488745”},
{6,”chenwenjie”,”male”,”15646488745”},
{7,”chenwenjie”,”male”,”15646488745”},
{8,”chenwenjie”,”male”,”15646488745”},
{9,”maozequan” ,”male”,”15646488745”},
{10,”yangjifu” ,”male”,”15646488745”},
{11,”zhuzhiwen” ,”male”,”15646488745”},
{12,”chenwenjie”,”male”,”15646488745”},
{13,”maozequan” ,”male”,”15646488745”},
{14,”yangjifu” ,”male”,”15646488745”},
{15,”zhuzhiwen” ,”male”,”15646488745”},
{16,”chenlijun” ,”male”,”15646488745”},
{17,”chenlijun” ,”male”,”15646488745”},
{18,”maozequan” ,”male”,”15646488745”},
{19,”yangjifu” ,”male”,”15646488745”},
{20,”zhuzhiwen” ,”male”,”15646488745”},
{21,”chenlijun” ,”male”,”15646488745”},
{22,”maozequan” ,”male”,”15646488745”},
{23,”yangjifu” ,”male”,”15646488745”},
{24,”zhuzhiwen” ,”male”,”15646488745”},
{25,”chenlijun” ,”male”,”15646488745”},

};

void add()
{
int index,num;
char name[20];
char sex[10];
char phone[15];
static i = 0;

while(STU[i].num != 0)
{
    i++;
}

printf("请输入你想增加的序列号:");
scanf("%d",&index);

if(index < i)
{
    printf("请输入该同学的学号:");
    scanf("%d",&num);
    printf("请输入该同学的姓名:");
    scanf("%s",name);
    printf("请输入该同学的性别:");
    scanf("%s",sex);
    printf("请输入该同学的手机号码:");
    scanf("%s",phone);

    for(i ; i >= index-1 ; i--)    
    {
        if(i == index)
        {
            STU[i].num = num;
            strcpy(STU[i].name , name);
            strcpy(STU[i].sex , sex);
            strcpy(STU[i].phone , phone);
        }
        else
        {
          /* 
           * a[i+1].num  = a[i].num;
            strcpy(a[i+1].name , a[i].name);
            strcpy(a[i+1].sex , a[i].sex);
            strcpy(a[i+1].phone , a[i].phone);   
            */
            STU[i] = STU[i-1];
        }

    }   
}
else 
    printf("************超过范围,请重新输入*************\n");

printf("**************增添信息成功,谢谢!*****************\n"); 

}

void read()
{
int i=0;
while(STU[i].num != 0)
{
printf(“num = %d , name = %s , sex = %s , phone = %s\n”,STU[i].num , STU[i].name , STU[i].sex , STU[i].phone);
i++;
}
}

void change()
{
int num,index;
char name[20];
char sex[10];
char phone[15];
int i = 0;

printf("请输入你想修改的序列号:");
scanf("%d",&index);
printf("请输入该同学的学号:");
scanf("%d",&num);
printf("请输入该同学的姓名:");
scanf("%s",name);
printf("请输入该同学的性别:");
scanf("%s",sex);
printf("请输入该同学的手机号码:");
scanf("%s",phone);

if(index == 1)
{
    STU[0].num = num;
    strcpy(STU[0].name , name);
    strcpy(STU[0].sex , sex);
    strcpy(STU[0].phone , phone);

}
while(STU[i].num != index)
{
    i++;
    if(STU[i].num == index)
    {
        STU[i].num = num;
        strcpy(STU[i].name , name);
        strcpy(STU[i].sex , sex);
        strcpy(STU[i].phone , phone);break;
    }

}

printf("***************修改信息成功,谢谢!*****************\n");

}

void delete()
{
int index;
int i;

printf("请输入你想删除的序列号:");
scanf("%d",&index);
i = index;

while(STU[i].num != 0)
{
    STU[i-1] = STU[i]; 
    i++;
}
printf("****************删除成功,谢谢!*****************\n");

}

int main(int argc, char **argv)
{
char a;

printf("***********欢迎来到154班通讯录*************\n");
printf("***********增添信息 :请输入a *************\n");
printf("***********查询信息 :请输入b *************\n");
printf("***********修改信息 :请输入c *************\n");
printf("***********删除信息 :请输入d *************\n");

scanf("%c",&a);

switch(a)
{
    case 'a' : add()    ; break;
    case 'b' : read()   ; break;
    case 'c' : change() ; break;
    case 'd' : delete() ; break;
    default : printf("***********输入有误************\n");break;
}


read();
return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值