最简单的通讯录(最笨的方法)

功能:添加信息,显示信息,查找信息,修改信息,删除信息,彩色打印,按名字排序。

 信息只有姓名和号码,原理都一样。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n = 0;
void menu()// 主界面
{
    printf("****************welcome to use********\n");    
    printf("**1 功能简介           2 添加信息**\n");
	printf("**3 查看信息           4 查找信息**\n");
	printf("**5 修改信息           6 删除信息**\n");
	printf("**7 退出程序           8 有待完善**\n");
	printf("*************************************\n");
}
function()
{
    printf("!!!!!!!!想多了!!!!!!! \n");
}
void welcome()//欢迎
{
    system("clear");
    printf("\n\n\n\n\n\n\n\n\n\n\n************************************************\n");
    printf("********************WELCOME*********************\n");
    printf("***************老式山寨诺基亚版*****************\n");
    sleep(2);
    
}
struct com
{
    char name[20];
    int num;
};
struct bbb
{
    char name[20];
    int num;
};
void add(struct com *s[])//添加信息
{
    while(1)
    {
        s[n] = (struct com *)malloc(sizeof(struct com));
        printf("please input name:\n");
        scanf("%s",s[n]->name);
        if(strcmp(s[n]->name,"fine") == 0)
            break;
        printf("please input the num:\n");
        scanf("%d",&s[n]->num);
        n++;
    }
    char gggg[20] = {0};//对name冒泡排序
    int ii = 0;
    int i;int k;
    for(i = 0;i < n - 1;i++)
    {
        for (k = n - 1;k > 0;k--)
        {
            if(strcmp(s[k]->name,s[k-1]->name) < 0)
            {
                strcpy(gggg,s[k]->name);
                strcpy(s[k]->name,s[k - 1]->name);
                strcpy(s[k - 1]->name,gggg);
                ii = s[k]->num;
                s[k]->num = s[k - 1]->num;
                s[k - 1] -> num = ii;
            }
        }
    }
}
void scrion(struct com *s[])//显示信息
{
    int j;
    for(j = 0;j < n; j++)
    {
        int z,zz;
		zz = j % 7
        z= zz + 31;
        printf("NO.%d :\n ",j);
        printf("\033[40;%dm 姓名: %s \033[0m\n",z,s[j]->name);
        printf("\033[40;%dm 号码: %d \033[0m\n",z,s[j]->num);
        printf("*************************************\n");
    }
}
void lookfor(struct com *s[])//寻找信息
{
    char lookname[20] = {0};
    printf("please input the name to lookfor:\n");
    scanf("%s",lookname);
    int x = 0;
    for(x = 0;x < n;x++)
    {
        if(strcmp(lookname,s[x]->name)==0)
        {
            printf("name:%s\n",s[x]->name);
            printf("num:%d\n",s[x]->num);
            break;
        }
    }
    if(x == n - 1)
        printf("没有这个人名\n");
}
void change(struct com *s[])//修改信息
{
    char changename[20] = {0};
    printf("please input the name you want to change:\n");
    scanf("%s",changename);
    int b = 0;
    for(b = 0;b < n;b++)
    {
        if(strcmp(changename,s[b]->name)==0)
        {
            printf("1 change name \n2 change num\n");
            int m;
            scanf("%d",&m);
            if(m == 1)
            {
                char newname[20] = {0};

                printf("please input new name:\n");
                scanf("%s",newname);
                strcpy(s[b]->name,newname);
            }
            if(m == 2)
            {
                int c;
                printf("please input the new num:\n");
                scanf("%d",&c);
                s[b]->num = c;
            }
        }
    }
    if(b == n - 1)
        printf("没有这个人名\n");
}
delperson(struct com *s[])//删除信息
{
    printf("please input the person to del:\n");
    char delname[20] = {0};
    scanf("%s",delname);
    int y = 0;
    int yy = 0;
    for(y = 0;y < n;y++)
    {
        if(strcmp(delname,s[y]->name)==0)
        {
            struct bbb *s2[2] = {0};
            s2[2] = (struct bbb *)malloc(sizeof(struct bbb));
            for(yy = y; yy < n; yy++)
            {
                 strcpy(s[yy]->name,s[yy + 1]->name);
                 s[yy]->num = s[yy + 1]->num;
            }
            free(s[n]);
            n = n - 1;

        }
    }
    if(y == n - 1)
        printf("没有这个人名\n");

}
int main()
{
    struct com *s[1000] = {0};
    int choose;
    welcome(); 
    while (1)
    {
        menu();
        scanf("%d",&choose);
        switch(choose)
        {
            case 1:function();
                   break;
            case 2:
                   add(s);
                   break;
            case 3:
                   scrion(s);
                   break;
            case 4:
                   lookfor(s);
                   break;
            case 5:
                   change(s);
                   break;
            case 6:delperson(s);
                   break;
            case 7:exit(1);
			
            case 8:function();
                   break;
        }

    }
    
}

猜你喜欢

转载自blog.csdn.net/chenxinntu/article/details/81291093