c++基础学习之通讯录管理系统

本文介绍了使用C++实现的简单通讯录管理系统,包括添加、查看、删除、查找和修改联系人功能。通过实例演示了如何操作数组模拟通讯录,并记录了学习过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

虽然发布这么简单的逻辑代码有点羞耻,但是千里之行,始于足下。记录吾c++学习过程。

通信录管理系统

就是简单的对数组的添加,修改,删除等操作来模拟通讯录管理系统。根据用户输入1、2、3、4、5、6、0进行交互。

主程序

执行文件

#include <iostream>
#include <string>
#include "mail_list.h"
using namespace std;

int main() {
    /*
     1 添加联系人
     2 显示联系人
     3 删除联系人
     4 查找联系人
     5 修改联系人
     6 清空联系人
     0 退出通讯录
     */
    show_menu();

    bool flag = true;

    struct Mail_list mailList;
    while (flag){
        int select = 0;
        cout << "请输入你的选择!" << endl;
        cin >> select;
        switch (select) {
            case 1:{
                add_person(&mailList);
                break;
            }
            case 2:{
                show_mail_list(mailList);
                break;
            }
            case 3:{
                cout << "请输入你要删除的联系人姓名:" << endl;
                string name;
                cin >> name;
                del_person(mailList, name);
                break;
            }
            case 4:{
                cout << "请输入你要查找的人姓名:" << endl;
                string name;
                cin >> name;
                find_person(mailList, name, true);
                break;
            }
            case 5:{
                cout << "请输入要修改的联系人姓名:" << endl;
                string name;
                cin >> name;
                modify_person(mailList, name);
                break;
            }
            case 6:{
                clear_person(mailList);
                break;
            }
            case 0:{
                flag=false;
                cout << "退出" << endl;
                break;
            }
            default:{
                flag= false;
                cout << "please input right select value!, value range is 0~6" << endl;
                break;
            }
        }
    }

    return 0;
}

头文件

定义函数声明、类和结构体。

#include <iostream>
#include <string>
using namespace std;
#define MAX 100

struct Person{
    string name;
    string sex;
    int age;
    int telephone_number;
    string address;
};
struct Mail_list{
    struct Person person_array[MAX];
    int m_size=0;
};
void show_menu();
void add_person(Mail_list * mailList);
void show_mail_list(Mail_list mailList);
int find_person(Mail_list mailList, string name, bool show= false);
void del_person(Mail_list & mailList, string name);
void modify_person(Mail_list & mailList, string name);
void clear_person(Mail_list & mailList);

源文件

具体的函数实现

//
// Created by 安超 on 2021/8/12.
//
#include "mail_list.h"
#include <iostream>
#include <string>
using namespace std;
#define MAX 100

void show_menu(){
    cout << "1 添加联系人" << endl;
    cout << "2 显示联系人" << endl;
    cout << "3 删除联系人" << endl;
    cout << "4 查找联系人" << endl;
    cout << "5 修改联系人" << endl;
    cout << "6 清空联系人" << endl;
    cout << "0 退出通讯录" << endl;
}

void add_person(Mail_list * mailList){
    if (mailList->m_size == MAX){
        cout << "通讯录已满,无法添加!" << endl;
        return;
    }
    else{
        string name;
        string sex;
        int age;
        int telephone_number;
        string address;
        cout << "请输入姓名:" << endl;
        cin >> name;
        cout << "请输入性别:" << endl;
        cin >> sex;
        cout << "请输入年龄:" << endl;
        cin >> age;
        cout << "请输入电话号码:" << endl;
        cin >> telephone_number;
        cout << "请输入地址:" << endl;
        cin >> address;
        mailList->person_array[mailList->m_size].name=name;
        mailList->person_array[mailList->m_size].sex=sex;
        mailList->person_array[mailList->m_size].age=age;
        mailList->person_array[mailList->m_size].telephone_number=telephone_number;
        mailList->person_array[mailList->m_size].address=address;
        mailList->m_size++;
        cout << name <<"添加成功!" << endl;
    }
}

void show_mail_list(Mail_list mailList){
    if(mailList.m_size == 0){
        cout << "通信录为空!" << endl;
    }
    else{
        for(int i=0; i<mailList.m_size; i++){
            cout << "**************************************" << endl;
            cout << "姓名:" << mailList.person_array[i].name << endl;
            cout << "性别:" << mailList.person_array[i].sex << endl;
            cout << "年龄:" << mailList.person_array[i].age << endl;
            cout << "电话号码:" << mailList.person_array[i].telephone_number << endl;
            cout << "地址:" << mailList.person_array[i].address << endl;
            cout << "**************************************" << endl;
        }
    }
}

int find_person(Mail_list mailList, string name, bool show){
    if(mailList.m_size==0){
        cout << "通信录为空,您要找的人不存在!"<< endl;
        return -1;
    }
    else{
        for(int i=0; i<mailList.m_size; i++){
            if(name==mailList.person_array[i].name){
                cout << "查有此人!" << endl;
                if(show){
                    cout << "查询到的信息:" << endl;
                    cout << "**************************************" << endl;
                    cout << "姓名:"<< mailList.person_array[i].name << endl;
                    cout << "性别:"<< mailList.person_array[i].sex << endl;
                    cout << "年龄:"<< mailList.person_array[i].age << endl;
                    cout << "电话号码:"<< mailList.person_array[i].telephone_number << endl;
                    cout << "地址:"<< mailList.person_array[i].address << endl;
                    cout << "**************************************" << endl;
                }
                return i;
            }
        }
    }
    cout << "查无此人!" << endl;
    return -1;
}

void del_person(Mail_list & mailList, string name){
    int index = find_person(mailList, name);
    if(index != -1){
        for(int i=index; i<mailList.m_size; i++){
            mailList.person_array[index] = mailList.person_array[index+1];
        }
        cout << "删除成功!" << endl;
        mailList.m_size--;
    }
}

void modify_person(Mail_list & mailList, string name){
    int index = find_person(mailList, name);
    if(index != -1){
        cout << "请输入修改后的姓名:" << endl;
        string new_name;
        cin >> new_name;
        mailList.person_array[index].name = new_name;
        cout << "请输入修改后的性别:" << endl;
        string new_sex;
        cin >> new_sex;
        mailList.person_array[index].sex = new_sex;
        cout << "请输入修改后的年龄:" << endl;
        int new_age;
        cin >> new_age;
        mailList.person_array[index].age = new_age;
        cout << "请输入修改后的电话号:" << endl;
        int new_tel;
        cin >> new_tel;
        mailList.person_array[index].telephone_number= new_tel;
        cout << "请输入修改后的住址:" << endl;
        string new_address;
        cin >> new_address;
        mailList.person_array[index].address= new_address;
    }
}

void clear_person(Mail_list & mailList){
    mailList.m_size=0;
    cout << "通讯录已清空!"<< endl;
}

总结

写这些逻辑虽然不费脑子,但是费体力,所以必须记录,为了能学好c++,keep going!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超超爱AI

土豪请把你的零钱给我点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值