注册 登录
编程论坛 C++教室

多维数组的信息查询与修改,求解!

跳跳鱼 发布于 2012-05-28 22:45, 307 次点击
下面的程序:在多维数组中输入一个人的姓名,查找到这个姓名,并修改它
代码
程序代码:
#include <iostream>
#include <string>
using namespace std;
class message
{
public:
    message(){}       //定义空的构造函数
    message(string nam,string add,string city,int mail):name(nam),address(add),city(city),mail(mail){}
    int input();
    void display();   //输出数据
    string amend();   //修改名字
    string getname()
    {
        return name;
    };
private:
    string name;
    string address;
    string city;
    int mail;
};
int message::input()                             
{
    cout<<"请输入你的信息:"<<endl;
    cout<<"请输入您的姓名:"<<endl; cin>>name;
    cout<<"请输入您的地址:"<<endl; cin>>address;
    cout<<"请输入您所在的城市:"<<endl; cin>>city;
    cout<<"请输入您所在城市的邮政编码:"<<endl; cin>>mail;
    return 0;
}

void message::display()
{
    cout<<"姓名"<<name<<" "<<"地址:"<<address<<" "<<endl;
    cout<<"城市:"<<city<<" "<<"邮政编码:"<<mail<<endl;
}

string message::amend()
{   message a;
    cout<<"请输入您要修改的姓名:"<<endl;
    cin>>name;
    return 0;
}

int main()
{
    int i,flag=1;
    message mess[3];
    cout<<"请输入三个人的信息:"<<endl;
    for(i=0;i<3;i++)
    {
        mess[i].input();
    }
    cout<<"现在核查您的信息:"<<endl;
    for(i=0;i<3;i++)
    {
        mess[i].display();
    }
    cout<<"请输入你要修改信息的原来人的姓名:"<<endl;

这个代码没有写完,我不知道该怎样查找其中一个人的姓名,用栈?或者建立一个名字线性表?对他们进行遍历?
谁能告诉我一个比较简单的思想,求解!
2 回复
#2
hellovfp2012-05-29 10:34
#include <iostream>
#include <string>
using namespace std;
class message
{
public:
    message(){}       //定义空的构造函数
    message(string nam,string add,string city,int mail):name(nam),address(add),city(city),mail(mail){}
    int input();
    void display();   //输出数据
    string amend();   //修改名字
    void modify_name(string new_name);
    string getname()
    {
        return name;
    };
private:
    string name;
    string address;
    string city;
    int mail;
};
int message::input()                             
{
    cout<<"请输入你的信息:"<<endl;
    cout<<"请输入您的姓名:"<<endl; cin>>name;
    cout<<"请输入您的地址:"<<endl; cin>>address;
    cout<<"请输入您所在的城市:"<<endl; cin>>city;
    cout<<"请输入您所在城市的邮政编码:"<<endl; cin>>mail;
    return 0;
}

void message::display()
{
    cout<<"姓名"<<name<<" "<<"地址:"<<address<<" "<<endl;
    cout<<"城市:"<<city<<" "<<"邮政编码:"<<mail<<endl;
}

string message::amend()
{   message a;
    cout<<"请输入您要修改的姓名:"<<endl;
    cin>>name;
    return 0;
}

void message::modify_name(string new_name)
{
    this->name = new_name;
}

int main()
{
    int i,flag=1;
    message mess[3];
    cout<<"请输入三个人的信息:"<<endl;
    for(i=0;i<3;i++)
    {
        mess[i].input();
    }
    cout<<"现在核查您的信息:"<<endl;
    for(i=0;i<3;i++)
    {
        mess[i].display();
    }
    cout<<"请输入你要修改信息的原来人的姓名:"<<endl;
    string old_name, new_name;
    cin >> old_name;
    cout << "修改的姓名:" << endl; cin >> new_name;
    int found = 0;
    for( i = 0; i < 3; i++ )
    {
        if(old_name == mess[i].getname())
        {
            cout << "找到该人了" << endl;
            found = 1;
            break;
        }
    }
    if(found) mess[i].modify_name(new_name);
    for(i=0;i<3;i++)
    {
        mess[i].display();
    }

    return 0;
}
#3
跳跳鱼2012-05-29 12:19
回复 2楼 hellovfp
我爱死你了!大牛!回复的及时又准确!O(∩_∩)O~
1