面向过程的通讯录条目管理程序

面向过程的通讯录条目管理程序


题目: 问题
主界面示例
采用结构体存储通讯录信息

struct commEntry
{
    string name;
    string tel;
    string addr;
};

目录设计

void content(){
    cout<<"==========================="<<endl;
    cout<<"1.输入通讯录条目"<<endl;
    cout<<"2.输出通讯录条目"<<endl;
    cout<<"3.修改姓名"<<endl;
    cout<<"4.修改电话"<<endl;
    cout<<"5.修改地址"<<endl;
    cout<<"6.增加条目"<<endl;
    cout<<"7.删除条目"<<endl;
    cout<<"8.查找信息"<<endl;
    cout<<"0.退出"<<endl;
    cout<<"============================"<<endl;
    cout<<"请输入(0-8):";
}

通过被调函数实现各种功能

void content();  ///目录
void Input(commEntry&);  ///输入条目
void print(commEntry);   ///打印条目
void Rename(commEntry&);  ///修改姓名
void Retel(commEntry&);   ///修改电话
void Readdr(commEntry&);  ///修改地址

采用switch…case语句实现功能的调用,全部代码展示:

#include<iostream>
using namespace std;

struct commEntry
{
    string name;
    string tel;
    string addr;
};

void content();  ///目录
void Input(commEntry&);  ///输入条目
void print(commEntry);   ///打印条目
void Rename(commEntry&);  ///修改姓名
void Retel(commEntry&);   ///修改电话
void Readdr(commEntry&);  ///修改地址

int main(){
    system("chcp 65001"); 
    int Key,i,n;
    string Finame;
    commEntry CE[100];
    while(1){
        content();
        cin>>Key;
        switch(Key) {
            case 1: {
                cout<<"请输入要管理的条目数量:";
                cin>>n;
                for(i=0;i<n;i++){
                   Input(CE[i]);
                }
                break;
            }
            case 2: {
                for(i=0;i<n;i++){
                    print(CE[i]);
                }
                break;
            }
            case 3: {
                cout<<"请输入要修改的姓名:";
                cin>>Finame;
                for(i=0;i<n;i++){
                    if(Finame==CE[i].name){
                        Rename(CE[i]);
                        break;
                        }
                }
                if(i>=n)
                    cout<<"Not Find!"<<endl;
                break;
            }
            case 4: {
                cout<<"请输入要修改的姓名:";
                cin>>Finame;
                for(i=0;i<n;i++) {
                    if(Finame==CE[i].name){
                        Retel(CE[i]);
                        break;
                    }
                }
                if(i<=n)
                    cout<<"Not Find!"<<endl;
                break;
            }
            case 5: {
                cout<<"请输入要修改的姓名:";
                cin>>Finame;
                for(i=0;i<n;i++){
                    if(Finame==CE[i].name)
                         Readdr(CE[i]);
                }
                if(i>=n)
                    cout<<"Not Find!"<<endl;
                break;
            }
            case 6: {
                    cout<<"请输入要增加的条目数:";
                    cin>>i;                   
                    for(i=0;i<n;i++){
                        Input(CE[i]);
                    }
                    n+=i;
                    break;
                }
            case 7: {
                    cout<<"请输入要删除的姓名:";
                    cin>>Finame;
                    for(i=0;i<n;i++){
                        if(Finame==CE[i].name)
                            for(;i<n;i++){
                            CE[i].name=CE[i+1].name;
                            CE[i].tel=CE[i+1].tel;
                            CE[i].addr=CE[i+1].addr;
                        }
                    }
                    if(i<=n)
                        cout << "Not Find!" << endl;
                    else
                        n -= 1;
                    break;
                }
            case 8: {
                    cout<<"请输入需要查找的姓名:";
                    cin>>Finame;
                    for(i=0;i<n;i++)
                    {
                        if(Finame==CE[i].name)
                            print(CE[i]);
                    }
                    if(i<=n)
                        cout << "Not Find!" << endl;
                    break;
                }
            case 0:
                return 0;
            default: {
                cout<<"Error!"<<endl;
                break;
            }
        }
    }
    return 0;
}
void content(){
    cout<<"==========================="<<endl;
    cout<<"1.输入通讯录条目"<<endl;
    cout<<"2.输出通讯录条目"<<endl;
    cout<<"3.修改姓名"<<endl;
    cout<<"4.修改电话"<<endl;
    cout<<"5.修改地址"<<endl;
    cout<<"6.增加条目"<<endl;
    cout<<"7.删除条目"<<endl;
    cout<<"8.查找信息"<<endl;
    cout<<"0.退出"<<endl;
    cout<<"============================"<<endl;
    cout<<"请输入(0-8):";
}
void Input(commEntry& ce){
        cout<<"Name:";
        cin>>ce.name;
        cout<<"Tle:";
        cin>>ce.tel;
        cout<<"Addr:";
        cin>>ce.addr;
}
void print(commEntry ce){
        cout<<"Name:"<<ce.name<<"   Tel:"<<ce.tel<<"    Addr:"<<ce.addr<<endl;
}
void Rename(commEntry& ce){
    cout<<"New name:";
    cin>>ce.name;
}
void Retel(commEntry& ce){
    cout<<"New tel:";
    cin>>ce.tel;
}
void Readdr(commEntry& ce){
    cout<<"New addr:";
    cin>>ce.addr;
}

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值