C++联系人管理系统

这是一个用C++编写的联系人管理系统,包括添加联系人、显示所有联系人、删除联系人、查找联系人、修改联系人和清空联系人等功能。系统通过结构体存储联系人信息,使用命令行交互进行操作。
摘要由CSDN通过智能技术生成

#include<string>

#include<iostream>

using namespace std;

#define MAX 1000

struct Person

{

    string m_name;

    int m_sex;

    int m_age;

    string m_phone;

    string m_addr;

};

 

struct addressbook

{

    struct Person perbook[MAX];

    int num;

};

 

//caidan

void showlist()

{

    cout<<"**********************"<<endl;

    cout<<"******1.添加联系人******"<<endl;

    cout<<"******2.显示联系人******"<<endl;

    cout<<"******3.删除联系人******"<<endl;

    cout<<"******4.查找联系人******"<<endl;

    cout<<"******5.修改联系人******"<<endl;

    cout<<"******6.清空联系人******"<<endl;

    cout<<"******0.退出通讯录******"<<endl;

    cout<<"**********************"<<endl;

}

 

//1.tianjia

void addperson(struct addressbook *p)

{

    if(p->num>=MAX)

        return;

    cout<<"请输入姓名:"<<endl;

    cin>>p->perbook[p->num].m_name;

    cout<<"请输入性别:"<<endl;

    cout<<"1------男"<<endl;

    cout<<"2------女"<<endl;

    int sex;

    while(true){

        cin>>sex;

        if(sex==1||sex==2)

            break;

            }

    p->perbook[p->num].m_sex=sex;

    cout<<"请输入年龄:"<<endl;

    int age;

    while(true)

    {

        cin>>age;

        if(age>0&&age<=100)

            break;

    }

    p->perbook[p->num].m_age=age;

    cout<<"请输入联系电话:"<<endl;

    cin>>p->perbook[p->num].m_phone;

    cout<<"请输入家庭地址:"<<endl;

    string address;

    cin>>address;

    p->perbook[p->num].m_addr=address;

    p->num++;

    cout<<"添加成功!"<<endl;

    system("pause");

    system("cls");

}

 

//2.xianshi

void showallperson(struct addressbook *p)

{

    if(p->num==0)

        cout<<"当前记录为空!"<<endl;

    else

        for(int i=0;i<p->num;i++)

        {

            cout<<"姓名   "<< p->perbook[i].m_name;

            cout<<"   性别   "<< p->perbook[i].m_sex;

            cout<<"   年龄   "<< p->perbook[i].m_age;

            cout<<"   联系电话   "<< p->perbook[i].m_phone;

            cout<<"   家庭住址   "<< p->perbook[i].m_addr<<endl;

        }

    system("pause");

    system("cls");

}

 

//3.shanchu

int isexit(struct addressbook *p,string name)

{

    for(int i=0;i<p->num;i++)

    {

        if(p->perbook[i].m_name==name)

            return i;

    }

    return -1;

}

void deleteperson(struct addressbook *p)

{

    string name;

    cout<<"请输入药删除的联系人::"<<endl;

    cin>>name;

    int sign=isexit(p, name);

    if(sign==-1)

    {

        cout<<"查无此人!"<<endl;

    }

    else

    {

        if(sign!=p->num-1)

        {

            for(int i=sign;i<p->num-1;i++)

                p->perbook[i] = p->perbook[i+1];

        }

        p->num--;

        cout<<"删除成功!"<<endl;

    }

    system("pause");

    system("cls");

}

 

//4.chazhao

void findperson(struct addressbook *p)

{

    cout<<"请输入你要查找的联系人:"<<endl;

    string name;

    cin>>name;

    int sign=isexit(p, name);

    if(sign==-1)

        cout<<"查无此人!"<<endl;

    else

    {

        cout<<"姓名   "<< p->perbook[sign].m_name;

        cout<<"   性别   "<< p->perbook[sign].m_sex;

        cout<<"   年龄   "<< p->perbook[sign].m_age;

        cout<<"   联系电话   "<< p->perbook[sign].m_phone;

        cout<<"   家庭住址   "<< p->perbook[sign].m_addr<<endl;

        cout<<"查询成功!"<<endl;

    }

    system("pause");

    system("cls");

}

 

//xiugai

void  changeperson(struct addressbook *p)

{

    cout<<"请输入你要修改的联系人:"<<endl;

    string name;

    cin>>name;

    int sign=isexit(p, name);

    if(sign==-1)

        cout<<"查无此人!"<<endl;

    else

    {

        cout<<"请输入姓名:"<<endl;

        cin>>p->perbook[sign].m_name;

        cout<<"请输入性别:"<<endl;

        cout<<"1------男"<<endl;

        cout<<"2------女"<<endl;

        int sex;

        while(true){

            cin>>sex;

            if(sex==1||sex==2)

                break;

                }

        p->perbook[sign].m_sex=sex;

        cout<<"请输入年龄:"<<endl;

        int age;

        while(true)

        {

            cin>>age;

            if(age>0&&age<=100)

                break;

        }

        p->perbook[sign].m_age=age;

        cout<<"请输入联系电话:"<<endl;

        cin>>p->perbook[sign].m_phone;

        cout<<"请输入家庭地址:"<<endl;

        string address;

        cin>>address;

        p->perbook[sign].m_addr=address;

    }

    system("pause");

    system("cls");

}

 

//6.qingkong

void cleanaddressbook(struct addressbook *p)

{

    p->num=0;

    cout<<"通讯录已经清空"<<endl;

    system("pause");

    system("cls");

}

 

int main()

{

    struct addressbook abs;

    abs.num=0;

    int select=0;

    while(1)

    {

        showlist();

        cin>>select;

        switch (select) {

            case 1:

                addperson(&abs);

                break;

            case 2:

                showallperson(&abs);

                break;

            case 3:

                deleteperson(&abs);

                break;

            case 4:

                findperson(&abs);

                break;

            case 5:

                

                break;

            case 6:

                

                break;

            case 0:

                cout<<"欢迎再次使用!"<<endl;

                system("pause");

                return 0;

                break;

            default:

                cout<<"请输入正确的数字!"<<endl;

                break;

        }

    }

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#define _CRT_SECURE_NO_WARNINGS 1 #ifndef __CONTACT_H_ #define __CONTACT_H_ #include<stdio.h> #include<stdlib.h> #include<string.h> #define PEO_MAX 30 #define STUID_MAX 10 #define NAME_MAX 20 #define SEX_MAX 10 #define TEL_MAX 15 typedef struct People { char id[STUID_MAX]; char name[NAME_MAX]; char sex[SEX_MAX]; char tel[TEL_MAX]; }*peo; typedef struct Contact { int count; struct People people[PEO_MAX]; }*pCon; void add_peo(pCon pcon); //添加联系人信息 void show_peo(pCon pcon); //显示指定联系人信息 void find_peo(pCon pcon); //查找联系人信息 void modify_peo(pCon pcon); //修改指定联系人信息 void clear_peo(pCon pcon); //清空联系人信息 void show_menu(); //菜单显示 #endif int search(pCon pcon, char *name) { int i = 0; for (i=0; i < pcon->count; i++) { if (strcmp(name, pcon->people[i].name) == 0) return i; } return -1; } void add_peo(pCon pcon) //添加联系人 { if (pcon->count == PEO_MAX) { printf("The contact has fullen."); return; } printf("please input studentID: "); scanf("%s",(pcon->people[pcon->count]).id); printf("please input name: "); scanf("%s", (pcon->people[pcon->count]).name); printf("please input sex : "); scanf("%s", (pcon->people[pcon->count]).sex); printf("please input tel: "); scanf("%s", (pcon->people[pcon->count]).tel); pcon->count++; } void show_peo(pCon pcon)//显示联系人 { int i = 0; for (; i < pcon->count; i++) { printf("studentID name sex tel \n"); printf("%s\t%s\t%s\t%s\n", pcon->people[i].id, pcon->people[i].name, pcon->people[i].sex, pcon->people[i].tel); } } void find_peo(pCon pcon) //查找联系人信息 { int i; char name[NAME_MAX]; printf("please input the people you want to find:"); scanf("%s", name); i = search(pcon, name); if (i == -1) printf("The people doesn't exsit.\n"); else printf("%s\t%s\t%s\t%s\n", pcon->people[i].id, pcon->people[i].name, pcon->people[i].sex, pcon->people[i].tel); } void modify_peo(pCon pcon) //修改指定联系人信息 { int i; char name[NAME_MAX]; printf("please input the people you want to modify:"); scanf("%s", name); i = search(pcon, name); if (i == -1) printf("The people doesn't exsit.\n"); else printf("please input studentID: "); scanf("%s", (pcon->people[i]).id); printf("please input name: "); scanf("%s", (pcon->people[i]).name); printf("please input sex : "); scanf("%s", (pcon->people[i]).sex); printf("please input tel: "); scanf("%s", (pcon->people[i]).tel); } void clear_peo(pCon pcon) //清空联系人 { pcon->count = 0; } void show_menu() //菜单显示 { printf("==========通讯录==========\n"); printf(" \n"); printf("*******[1]显示通讯录******\n"); printf("*******[2]查 询******\n"); printf("*******[3]修 改******\n"); printf("*******[4]结 束******\n"); } int main() { struct Contact my_contact; int input = 1; my_contact.count = 0; while (input) { show_menu(); printf("please input:"); scanf("%d", &input;); switch (input) { case 1: add_peo(&my;_contact); break; case 2: show_peo(&my;_contact); break; case 3: find_peo(&my;_contact); break; case 4: modify_peo(&my;_contact); break; case 5: clear_peo(&my;_contact); break; default: break; } } return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值