IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 电话簿系统 -> 正文阅读

[C++知识库]电话簿系统

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

struct person
    {
        char em[20];
        char tel[20];
        char name[20];
        char home[20];
        char sex[20];
    } phone;
void print_tel(struct person phone[],int i)//显示指定联系人
{
    printf("\n");
    printf("\t\t\t姓名:%s \n",phone[i].name);
    printf("\t\t\t性别:%s\n",phone[i].sex);
    printf("\t\t\t电话号码:%s\n",phone[i].tel);
    printf("\t\t\t住址:%s\n",phone[i].home);
    printf("\t\t\tE-mail:%s\n",phone[i].em);
}
void show_tel(struct person phone[],int num)//显示所有联系人
{
    system("CLS");
    int i;
    int m=1;
    printf("电话簿中所有联系人信息如下:第%d页\n",m);
    if(num==0)
    {
        printf("电话簿为空!!!\n");
        system("PAUSE");
        system("CLS");
    }

    else
    {
        for(i=0;i<num;i++)
        {
            printf("姓名:%s\n",phone[i].name);
            printf("住址:%s\n",phone[i].home);
            printf("电话号码:%s\n",phone[i].tel);
            printf("E-mail:%s\n",phone[i].em);//新增翻页
            printf("性别:%s\n",phone[i].sex);
        }
        printf("您的电话簿中共有%d位联系人\n",num);
        printf("\n");
        system("PAUSE");
        system("CLS");//暂停并清屏
    }

}
int add_tel(struct person phone[],int num)//添加新的联系人
    {
        system("CLS");
        printf("请输入联系人的姓名:");
        scanf("%s",phone[num].name);
        printf("请输入联系人的性别:");
        scanf("%s",phone[num].sex);
        printf("请输入联系人的住址:");
        scanf("%s",phone[num].home);
        printf("请输入联系人的电话号码:");
        scanf("%s",phone[num].tel);
        printf("请输入联系人的邮件:");
        scanf("%s",phone[num].em);
        printf("添加成功!!!\n");
        system("PAUSE");
        system("CLS");
        num++;
        return num;
}
int del_tel(struct person phone[],int num )//删除一个联系人
{
    system("CLS");
    int i,j;
    char i_name[20];//用于存放名字
    char flag;
    int a=0;
    printf("\t\t\t请输入需要删除的联系人的姓名:\n\t\t\t");
    scanf("%s",i_name);
    if(num==0)
    {
        printf("\t\t\t暂无可删除的联系人!!!\n");
        system("PAUSE");
        system("CLS");
    }
    else
    {

       for(i=0;i<num;i++)
     {
        if(strcmp(i_name,phone[i].name)==0)
        {
            a=1;
            print_tel(phone,i);
            printf("\t\t\t是否删除该联系人?'T'or'F'\n");
            scanf("%s",&flag);
            if(flag=='T'||flag=='t')
            {
                for(j=i+1;j<num;j++)
                {
                    phone[i]=phone[j];
                }
                printf("\t\t\t已成功删除该联系人!!!\n");
                system("PAUSE");
                system("CLS");
                return num-1;
            }
            else
            {
                printf("\t\t\t已取消删除!!!\n");
                system("PAUSE");
                system("CLS");
                return num;
            }
        }
     }
      if(a==0)
     {
        printf("\t\t\t电话簿中没有该联系人!!!\n");
        return num;
     }
    }
}

void modify_tel(struct person phone[],int num)//修改联系人信息
{
    system("CLS");
    int i,a=0;
    char i_name[20],flag;
    struct person phone0;//创建结构体,进行临时信息的储存
    printf("请输入要修改的联系人:");
    scanf("%s",i_name);
    for(i=0;i<num;i++)//遍历电话薄
    {
        if(strcmp(i_name,phone[i].name)==0)//找到要修改联系人
        {
            print_tel(phone,i);//利用函数print_person打印出该联系人的信息
            printf("请输入联系人的姓名:");
            scanf("%s",phone0.name);
            printf("请输入联系人的性别:");
            scanf("%s",phone0.sex);
            printf("请输入联系人手机号:");
            scanf("%s",phone0.tel);
            printf("请输入联系人家庭住址:");
            scanf("%s",phone0.home);
            printf("请输入联系人的电子邮箱:");
            scanf("%s",phone0.em);
            printf("是否确认修改 T/F:");
            scanf("%s",&flag);
            if(flag=='T'||flag=='t')
            {
                phone[i]=phone0;//将临时储存的信息赋予给电话薄
                printf("修改成功!\n");
                system("PAUSE");
                system("CLS");
                //系统暂停
            }
                 else{
                    printf("已取消修改!\n");
                    system("PAUSE");
                    system("CLS");
                    //系统暂停
                 }
            a=1;
         }
    }
     if(a==0)
    {
        printf("查无此人!\n");
        system("PAUSE");
        system("CLS");
    }

}
void search_tel(struct person phone[],int num)//查询联系人
{
    system("CLS");
    int i;
    char i_name[20];
    printf("请输入要查询联系人:");
    scanf("%s",i_name);//输入要查询联系人
    for(i=0;i<num;i++)//遍历电话薄
    {
        if(strcmp(phone[i].name,i_name)==0)//如果
        {
            printf("已查询到该联系人!");
            print_tel(phone,i);
            system("PAUSE");
            system("CLS");
            break;
        }

    }
    if(i==num)
    {
        printf("未查询到该联系人!\n");
        system("PAUSE");
        system("CLS");
    }

}
void sortname_tel(struct person phone[],int num)//按照姓名排序
{
    int i,j;
    struct person i_name;//定义结构体
    system("CLS");
    int flag;
    if(num==0)
        printf("该电话簿暂无联系人!\n");
    else
    {
        printf("请选择将联系人降序排列or升序排列:1.升序 2.降序\n");
        scanf("%d",&flag);
        switch(flag)
        {
            case 1:
                {
                     for(i=0;i<num-1;i++)
                    {
                        for(j=i+1;j<num;j++)
                        {
                            if(strcmp(phone[i].name,phone[j].name)>0)//判断如果前面的更大
                            {
                                i_name=phone[i];
                                phone[i]=phone[j];
                                phone[j]=i_name;//前后进行位置交换
                            }
                        }
                    }
                    printf("修改成功!\n");
                    break;
                }
            case 2:
                {
                     for(i=0;i<num-1;i++)
                    {
                        for(j=i+1;j<num;j++)
                        {
                            if(strcmp(phone[i].name,phone[j].name)<0)//判断如果后面的更大
                            {
                                i_name=phone[j];
                                phone[j]=phone[i];
                                phone[i]=i_name;//前后进行位置交换
                            }
                        }
                    }
                    printf("修改成功!\n");
                    break;
                }
        }
    }

    system("PAUSE");
    system("CLS");
}
int main()
{
    struct person phone[100];
    int num=0;
    int menu_num;
    while(1)
    {
        printf("\n");
        printf("\t\t\t欢迎使用电话薄系统\n");
        printf("\t\t\t1.显示当前所有号码\n");
        printf("\t\t\t2.添加新的号码。\n");
        printf("\t\t\t3.删除指定号码。\n");
        printf("\t\t\t4.修改联系人。\n");
        printf("\t\t\t5.查询联系人。\n");
        printf("\t\t\t6.将联系人进行排序。\n");

        scanf("%d",&menu_num);
        switch(menu_num)
        {
            case 1: show_tel(phone,num);break;
            case 2: num=add_tel(phone,num);break;
            case 3: num=del_tel(phone,num);break;
            case 4: modify_tel(phone,num); break;
            case 5: search_tel(phone,num);break;
            case 6: sortname_tel(phone,num);break;
        }
    }
    return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:05:50  更:2022-02-24 15:07:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:51:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码