zoukankan      html  css  js  c++  java
  • c++ 通讯录

    #include <iostream>
    //#include "add.h"
    
    #define MAX 10
    using namespace std;
    
    void showMenu(){
        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;
    }
    
    struct Person{
        string name;
        int gender;// 1:男,0:女
        int age;
        string phone;
        string addr;
    };
    
    struct Addressbooks{
        Person personArr[MAX];
        int size = 0;
    };
    
    
    void addAds(Addressbooks * ads){
        if(ads->size >= MAX){
            cout<<"通讯录人数已经超过"<<MAX<<endl;
            return;
        } else{
            cout<<"请输入姓名"<<endl;
            cin>>ads->personArr[ads->size].name;
            cout<<"请输入性别(1:男,2:女)"<<endl;
            while (true){
                int gender;
                cin>>gender;
                if(gender == 1 || gender == 2){
                    ads->personArr[ads->size].gender = gender;
                    break;
                }
                cout<<"输入有误"<<endl;
            }
            cout<<"请输入年龄"<<endl;
            cin>>ads->personArr[ads->size].age;
            cout<<"请输入电话"<<endl;
            cin>>ads->personArr[ads->size].phone;
            cout<<"请输入地址"<<endl;
            cin>>ads->personArr[ads->size].addr;
            cout<<"添加成功"<<endl;
            ads->size++;
    
        }
    
    }
    
    void showAds(Addressbooks * ads){
        for (int i = 0; i < ads->size; ++i) {
    
            cout<<ads->personArr[i].name<<"	"<<
            ads->personArr[i].gender<<"	"<<
            ads->personArr[i].age<<"	"<<
            ads->personArr[i].phone<<"	"<<
            ads->personArr[i].addr<<"	"<<
    
            endl;
        }
        system("clear");
    }
    
    
    int getAdsIndex(Addressbooks * ads, string name){
        for (int i = 0; i < ads->size; ++i) {
            if(ads->personArr[i].name == name){
                return i;
            }
        }
        return -1;
    }
    void delAds(Addressbooks * ads){
        cout<<"请输入姓名"<<endl;
        string name;
        cin>>name;
        int index = getAdsIndex(ads,name);
        if(index == -1){
            cout<<"查无此人"<<endl;
            return;
        }
    
        for (int i = index; i < ads->size && i + 1 < ads->size - 1; ++i) {
            ads->personArr[i] = ads->personArr[i+1];
        }
        ads->size--;
        cout<<"删除成功"<<endl;
    }
    
    void getAds(Addressbooks * ads){
        cout<<"请输入姓名"<<endl;
        string name;
        cin>>name;
        int i = getAdsIndex(ads,name);
        if(i == -1){
            cout<<"查无此人"<<endl;
            return;
        }
    
        cout<<ads->personArr[i].name<<"	"<<
            ads->personArr[i].gender<<"	"<<
            ads->personArr[i].age<<"	"<<
            ads->personArr[i].phone<<"	"<<
            ads->personArr[i].addr<<"	"<<
    
            endl;
    }
    
    void updateAds(Addressbooks * ads){
        cout<<"请输入姓名"<<endl;
        string name;
        cin>>name;
        int i = getAdsIndex(ads,name);
        if(i == -1){
            cout<<"查无此人"<<endl;
            return;
        }
        cout<<"请输入姓名"<<endl;
        cin>>ads->personArr[i].name;
        cout<<"请输入性别(1:男,2:女)"<<endl;
        cin>>ads->personArr[i].gender;
        cout<<"请输入年龄"<<endl;
        cin>>ads->personArr[i].age;
        cout<<"请输入电话"<<endl;
        cin>>ads->personArr[i].phone;
        cout<<"请输入地址"<<endl;
        cin>>ads->personArr[i].addr;
        cout<<"修改成功"<<endl;
    
    }
    
    void clearAds(Addressbooks * ads){
        ads->size = 0;
        cout<<"清理完成"<<endl;
    }
    
    int main() {
        int select;
        Addressbooks ads;
    
        while (true){
            showMenu();
            cin>> select;
            switch (select){
                case 1:
                    addAds(&ads);
                    break;
                case 2:
                    showAds(&ads);
                    break;
                case 3:
                    delAds(&ads);
                    break;
                case 4:
                    getAds(&ads);
                    break;
                case 5:
                    updateAds(&ads);
                    break;
                case 6:
                    clearAds(&ads);
                    break;
                case 0:
                    cout<<"欢迎下次使用"<<endl;
                    return 0;
                default:
                    break;
            }
    
        }
        return 0;
    }
  • 相关阅读:
    自己实现的一个简单的C# IOC 容器
    C# 内存缓存工具类 MemoryCacheUtil
    使用触发器和C#程序实现数据同步
    Maven 命令安装指定 jar 包到本地仓库
    C# RSA 非对称加密
    JS可选链操作符?.和双问号??
    Learn D3 入门文档: Introduction
    Lerna 基本概念
    图片 src 为二进制的处理
    ASCII 和 Base64
  • 原文地址:https://www.cnblogs.com/dongma/p/13812310.html
Copyright © 2011-2022 走看看