C++程序设计《通讯录管理系统》

C++程序设计《通讯录管理系统》

1、文章概述

	在C++语言学习过程中的初级阶段,通过编写一个小型功能系统,完善对程序语言的初步学习,是一个比较好
	的回顾和自检过程,本文章通过对C++程序课程学习,编写了简易的通讯录管理系统,供大家免费阅读。
	由于笔者能力有限,文章错误还请大家指正共同学习。

2、代码功能

  • 1、添加联系人
  • 2、显示联系人
  • 3、删除联系人
  • 4、查找联系人
  • 5、修改联系人
  • 6、清空联系人
  • 7、退出通讯录

3、 函数结构图

在这里插入图片描述

4、功能实现

  • 联系人结构体
struct Person{
    string name;//姓名
    int sex;//性别
    int age;//年龄
    string number;//号码
    string address;//地址
};
  • 通讯录结构体
struct AddressBooks{
   struct Person personArray[MAX];
   int size;
}addressBooks;
  • 主函数
int main() {
    int condition=0;
    cout<<"欢迎使用通讯录系统!"<<endl;
    while (true){
        showMenu();
        cout<<"请输入操作数:"<<endl;
        cin>>condition;
        switch (condition) {
            case 1:
                addPerson(&addressBooks);
                break;
            case 2:
                showPerson(&addressBooks);
                break;
            case 3:
                deletePerson(&addressBooks);
                break;
            case 4:
                selectPerson(&addressBooks);
                break;
            case 5:
                changePerson(&addressBooks);
                break;
            case 6:
                clearPerson(&addressBooks);
                break;
            case 0:
                cout<<"通讯录系统退出成功!感谢您的使用";
                return 0;
                break;
            default:
                cout<<"请输入正确的操作数!"<<endl;
                break;
        }
    }
    return 0;
}

5、程序代码附录

#include <iostream>
using namespace std;
#define MAX 1000
/*
 * write by yuHeng
 * date:2020/3/10
 * */
//联系人结构体
struct Person{
    string name;
    int sex;
    int age;
    string number;
    string address;
};
//通讯录结构体
struct AddressBooks{
   struct Person personArray[MAX];
   int size;
}addressBooks;
//添加联系人
void addPerson(AddressBooks *p){
    if(p->size==MAX){
        cout<<"通讯录已满,无法添加"<<endl;
    }else{
        //姓名
        string names;
        cout<<"请输入姓名:"<<endl;
        cin>>names;
        p->personArray[p->size].name=names;
        //性别
        int index=0;
        cout<<"请输入性别1(男)/2(女):"<<endl;
        cin>>index;
        if(index==1||index==2){
            p->personArray[p->size].sex=index;
        }else{
            cout<<"输入错误,请重新添加!"<<endl;
            return;
        }
        //年龄
        int ages;
        cout<<"请输入年龄:"<<endl;
        cin>>ages;
        p->personArray[p->size].age=ages;
        //号码
        string numbers;
        cout<<"请输入号码:"<<endl;
        cin>>numbers;
        p->personArray[p->size].number=numbers;
        //地址
        string address;
        cout<<"请输入地址"<<endl;
        cin>>address;
        p->personArray[p->size].address=address;
        //更新通讯录人数
        p->size++;
        cout<<"添加成功!"<<endl;
//        system("pause");
//        system("cls");
 }
}
//显示联系人
void showPerson(AddressBooks *p){
    if(p->size==0){
        cout<<"通讯录为空,显示失败!"<<endl;
//        system("cls");
    }else{
        cout<<"姓名\t性别\t年龄\t号码\t住址\t"<<endl;
        for(int i=0;i<p->size;i++){
            cout<<p->personArray[i].name<<"\t"
                <<(p->personArray[i].sex==1?"男":"女")<<"\t"
                <<p->personArray[i].age<<"\t"
                <<p->personArray[i].number<<"\t"
                <<p->personArray[i].address<<endl;
        }
    }
}
//判断联系人是否存在
int isExist(AddressBooks *p,string name){
    for(int i=0;i<p->size;i++){
        if(p->personArray[i].name==name){
            return i;
        }//return -1;放在此次值判断一次!
    }
    return -1;
}
//删除联系人
void deletePerson(AddressBooks *p){
    if(p->size==0){
        cout<<"通讯录为空,删除失败!"<<endl;
    }else{
        string name;
        cout<<"请输入要删除联系人的姓名:"<<endl;
        cin>>name;
        if(isExist(&addressBooks,name)==-1){
            cout<<"联系人不存在,删除失败!"<<endl;
        }else{
            for(int i= isExist(&addressBooks,name);i<p->size;i++){
                p->personArray[i]=p->personArray[i+1];
            }
            cout<<"联系人删除成功!"<<endl;
            p->size--;
        }
    }
}
//查找联系人
void selectPerson(AddressBooks*p){
    if(p->size==0){
        cout<<"通讯录为空,查找失败!"<<endl;
    }else{
        string name;
        cout<<"请输入要查询联系人的姓名:"<<endl;
        cin>>name;
        int result= isExist(&addressBooks,name);
        if(result==-1){
            cout<<"联系人不存在!"<<endl;
        }else{
            cout<<"查找成功!信息如下:"<<endl;
            cout<<"姓名\t性别\t年龄\t号码\t住址\t"<<endl;
            cout<<p->personArray[result].name<<"\t"
                <<(p->personArray[result].sex==1?"男":"女")<<"\t"
                <<p->personArray[result].age<<"\t"
                <<p->personArray[result].number<<"\t"
                <<p->personArray[result].address<<endl;
        }
    }
}
//修改联系人
void changePerson(AddressBooks*p){
    if(p->size==0){
        cout<<"通讯录为空,修改失败!"<<endl;
    }else{
        string name;
        cout<<"请输入修改联系人的姓名:"<<endl;
        cin>>name;
        int result= isExist(&addressBooks,name);
        if(result==-1){
            cout<<"联系人不存在!"<<endl;
        }else{
            //名字
            cout<<"请重新输入"<<name<<"的名字:"<<endl;
            string names;
            cin>>names;
            p->personArray[result].name=names;
            //性别
            cout<<"请重新输入"<<name<<"的性别1(男)/2(女):"<<endl;
            int index=0;
            while (true){
                cin>>index;
                if(index==1||index==2){
                    p->personArray[result].sex=index;
                    break;
                }else {
                    cout << "输入错误,请重新输入!" << endl;
                }
            }
            //年龄
            cout<<"请重新输入"<<name<<"的年龄:"<<endl;
            int ages;
            cin>>ages;
            p->personArray[result].age=ages;
            //号码
            cout<<"请重新输入"<<name<<"的号码:"<<endl;
            string numbers;
            cin>>numbers;
            p->personArray[result].number=numbers;
            //地址
            cout<<"请重新输入"<<name<<"的地址:"<<endl;
            string address;
            cin>>address;
            p->personArray[result].address=address;
            cout<<"修改联系人成功!"<<endl;
        }
    }
}
//清空联系人
void clearPerson(AddressBooks*p){
    if(p->size==0){
        cout<<"通讯录为空,清空失败!"<<endl;
    }else{
        p->size=0;
        cout<<"通讯录清空成功!"<<endl;
    }
}
//显示功能菜单
/*
 * 1、添加联系人
 * 2、显示联系人
 * 3、删除联系人
 * 4、查找联系人
 * 5、修改联系人
 * 6、清空联系人
 * 7、退出通讯录
 *
 * */
void showMenu(){
    cout<<"1、添加联系人"<<endl;
    cout<<"2、显示联系人"<<endl;
    cout<<"3、删除联系人"<<endl;
    cout<<"4、查找联系人"<<endl;
    cout<<"5、修改联系人"<<endl;
    cout<<"6、清空联系人"<<endl;
    cout<<"0、退出通讯录"<<endl;
}
int main() {
    int condition=0;
    cout<<"欢迎使用通讯录系统!"<<endl;
    while (true){
        showMenu();
        cout<<"请输入操作数:"<<endl;
        cin>>condition;
        switch (condition) {
            case 1:
                addPerson(&addressBooks);
                break;
            case 2:
                showPerson(&addressBooks);
                break;
            case 3:
                deletePerson(&addressBooks);
                break;
            case 4:
                selectPerson(&addressBooks);
                break;
            case 5:
                changePerson(&addressBooks);
                break;
            case 6:
                clearPerson(&addressBooks);
                break;
            case 0:
                cout<<"通讯录系统退出成功!感谢您的使用";
                return 0;
                break;
            default:
                cout<<"请输入正确的操作数!"<<endl;
//                system("cls");
                break;


        }
    }
    return 0;
}

6、文章后述


可根据本程序代码修改为其他功能系统,例如:图书信息管理系统,学生信息管理系统等,如果该文章对你有用 
给我点个免费的赞吧,同时欢迎码友评论。

  • 19
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值