用c语言写一个通讯录(初级版)

来源:互联网 发布:米卡有软件 编辑:程序博客网 时间:2024/05/17 07:47

这是一个简单的通讯录(实现方案是初级版,并且只能在程序运行期间存在(没有写入文件))(以后还会写一个用动态内存分配+实现文件存储的版本)

代码:

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<Windows.h>#pragma warning(disable:4996)struct address{    char name[20];    char sex[10];    int age;    char phonen[15];    char site[40];}people[1000];int main(){       int i = 0;//用于计数    char m[20] = { 0 };    int option = 0;    printf("###      这是一个通 讯 录^-^    ###\n");    while (1)    {        printf("###-----------------------------###\n");        printf("###      1.>查找指定联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      2.>修改指定联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      3.>删除指定联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      4.>添加指定联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      5.>显示所有联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      6.>删除所有联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      7.>排序所有联系人      ###\n");        printf("###-----------------------------###\n");        printf("###      8.>退出通讯录          ###\n");         printf("###-----------------------------###\n");        printf("\n请选择要进行的操作:>");        scanf("%d", &option);        fflush(stdin);        switch (option)        {        case 1:            printf("\n\n\t输入要查找的姓名:>");            gets(m);//因为gets函数可以接收空格而scanf函数不可以        /*        **这里使用了一个简单的遍历的算法,也可以封        **装一个函数,用更高效的查找算法实现        */            for (; i < 1000; i++)            {                if (strcmp(people[i].name, m) == 0)                {                    printf("\n\t姓名:%s\n\t性别:%s\n\t年龄:%d\n\t电话:%s\n\t住址:%s\n", people[i].name,\                    people[i].sex, people[i].age, people[i].phonen, people[i].site);                    break;                }            }            if (1000==i)                printf("\t没有找到该联系人!\n");            break;    case 2:        /*        **这里实现的是一个基本方案,目前一次只能修改一项内容,并且要重新开始        **才可以修改另一项或者多项内容。以后会再次改进这里的功能!        */        printf("\n\n\t请输入要修改的联系人姓名:>");        gets(m);        for (i=0;i < 1000;i++)        {            if (strcmp(people[i].name, m) == 0)            {                int n = 0;                printf("请选择要修改的信息:\n\t1.name\n\t2.sex\n\t3.age\n\t4.phone number\n\t5.site\n\t");                scanf("%d", &n);                fflush(stdin);                switch (n)                {                case 1:                    printf("请输入修改后的内容:");                    char arr[20];                    gets(arr);                    strcpy(people[i].name, arr);                    printf("修改成功!\n");                    break;                case 2:                    printf("\n\t请输入修改后的内容:");                    gets(arr);                    strcpy(people[i].sex, arr);                    printf("修改成功!\n");                    break;                case 3:                    printf("\n\t请输入修改后的内容:");                    scanf("%d", &people[i].age);                    fflush(stdin);                    printf("修改成功!\n");                    break;                case 4:                    printf("\n\t请输入修改后的内容:");                    gets(arr);                    strcpy(people[i].phonen, arr);                    printf("修改成功!\n");                    break;                case 5:                    printf("\n\t请输入修改后的内容:");                    gets(arr);                    strcpy(people[i].site, arr);                    printf("修改成功!\n");                    break;                }                break;            }        }        if (1000==i)            printf("\t该联系人不存在!\n");        break;    case 3:        printf("\n\n\t请输入要删除的联系人姓名:>");        gets(m);        for (i=0; i < 1000; i++)        {            if (strcmp(people[i].name, m) == 0)            {                strcpy(people[i].name, "\0");                strcpy(people[i].sex, "\0");                people[i].age = 0;                strcpy(people[i].site, "\0");                strcpy(people[i].phonen, "\0");                printf("删除成功!\n");                break;            }        }        if (1000 == i)            printf("\t该联系人不存在!\n");        break;    case 4:        for (i=0;i < 1000; i++)        {            char num[20] = { 0 };            if (strcmp(people[i].name,num)==0)            {                printf("\n\n\t请输入要添加联系人的姓名:>");                 char arr[20] = { 0 };                 gets(arr);                 strcpy(people[i].name, arr);                       printf("\t请输入要添加联系人的性别:>");                 gets(arr);                 strcpy(people[i].sex, arr);                printf("\t请输入要添加联系人的年龄:>");                 scanf("%d", &people[i].age);                 fflush(stdin);                printf("\t请输入要添加联系人的电话号码:>");                 gets(arr);                 strcpy(people[i].phonen, arr);                printf("\t请输入要添加联系人的住址:>");                 gets(arr);                 strcpy(people[i].site, arr);                printf("\t添加成功!\n");                break;            }           }        if (1000 == i)            printf("添加失败,通讯录已满!\n");        break;    case 5:        for (i = 0;i < 1000; i++)        {            if (strcmp(people[i].name, m) != 0)            {                printf("\n\t姓名:%s\n\t性别:%s\n\t年龄:%d\n\t电话:%s\n\t住址:%s\n", people[i].name, \                people[i].sex, people[i].age, people[i].phonen, people[i].site);            }        }        break;    case 6:        for (i = 0; i < 1000; i++)        {            if (strcmp(people[i].name, m) != 0)            {                strcpy(people[i].name, "\0");                strcpy(people[i].sex, "\0");                people[i].age = 0;                strcpy(people[i].site, "\0");                strcpy(people[i].phonen, "\0");            }        }        if (1000 == i)            printf("删除成功!\n");        break;    case 7:         //这块用qsort()给非空姓名数组排序即可        break;    case 8:        return 0;        break;    default:        printf("输入错误!重新选择!");        break;    }}system("pause");return 0;

}

原创粉丝点击