注册 登录
编程论坛 VC++/MFC

求 c++ 大神看到题。。

f15837012909 发布于 2014-05-17 14:18, 629 次点击
定义工人工资资登记表结构体,使用动态分配内存,由键盘输入工人工资等相关信息。然后键入其中一人的姓名,查询其工资情况。 要求使用结构体指针访问结构成员。
这道题怎么写
2 回复
#2
funyh2502014-05-17 15:26
查询功能应该涉及到关联容器吧   正在学。。。
#3
funyh2502014-05-18 16:00
#include <iostream>
#include <string>
#include <map>
using namespace std;

struct Worker
{
    string name;
    int wage;
    Worker(){}
    ~Worker(){}
    void setname()
    {
        cin>>name;
    }
    void setwage()
    {
        cin>>wage;
    }

    string getname()
    {
        return name;
    }
    int getwage()
    {
        return wage;
    }
};

int main()
{
    map<string,int> m;
    map<string,int>::iterator im;
    int i(0);
    cout<<"请输入工人信息:"<<endl;
    while(i!=2)
    {
        Worker ww;
        cout<<"姓名:";
        ww.setname();
        cout<<"工资:";
        ww.setwage();
        m.insert(make_pair(ww.getname(),ww.getwage()));   //存入信息
        i++;
    }
    cout<<endl<<"姓名"<<"工资"<<endl;
    for(im=m.begin();im!=m.end();im++)
        cout<<(*im).first<<":"<<(*im).second<<endl;
    string wfind;
    cin.seekg(ios::cur);
    cout<<"请输入要查询的工人的名字:";
    getline(cin,wfind);
    if(m[wfind] ==0)
        {
            cout<<"输入名字有错,不存在该工人!";
            exit(0);
        }
    cout<<"工人"<<wfind<<"的工资为:"<<m[wfind]<<endl;
    return 0;
}

没有用到指针
代码还可以优化和扩展
1