64,648
社区成员
发帖
与我相关
我的任务
分享
//Person.h
#include<iostream>
#include <string>
#include <vector>
#include <map>
#include <utility>
using namespace std;
#ifndef PERSON_H
#define PERSON_H
class Person
{
public:
Person();
Person(string ,string ,string ,string ,string,string );
static void display() ;//显示所有信息
static void addinfor(const Person&);//添加信息
static void findinfor();//查询信息
virtual ~Person();
private:
string id;
string name;
string age;
string sex;
string address;
string telephone;
static map<string, vector<Person> > infor;
};
#endif
//Person.cpp
#include "Person.h"
map<string, vector<Person> > Person::infor;
Person::Person() {}
Person::Person(string id1,string name1,string age1,string sex1,string address1,string telephone1)
:id(id1),name(name1),age(age1),sex(sex1),address(address1),telephone(telephone1)
{
}
void Person::display()
{
for(map<string,vector<Person> >::iterator map_it = infor.begin();
map_it != infor.end();++map_it)
{
for(vector<Person>::iterator iter = map_it->second.begin();
iter != map_it->second.end();++iter)
{
cout<<"学号:"<<map_it->first<<" ";
cout<<"姓名:"<<iter->name<<" ";
cout<<"年龄:"<<iter->age<<" ";
cout<<"性别:"<<iter->sex<<" ";
cout<<"地址:"<<iter->address<<" ";
cout<<"电话:"<<iter->telephone<<" "<<endl;
}
}
system("pause");
}
void Person::addinfor(const Person& rhs)
{
vector<Person> ivec;
ivec.push_back(rhs);
infor.insert(make_pair(rhs.id,ivec));
}
void Person::findinfor()
{
cout<<"请输入要查询的学生的学号:"<<endl;
string num;
cin>>num;
map<string,vector<Person> >::iterator map_it = infor.find(num);
if(map_it != infor.end())
{
vector<Person>::iterator iter = map_it->second.begin();
cout<<"学号:"<<map_it->first<<" ";
cout<<"姓名:"<<iter->name<<" ";
cout<<"年龄:"<<iter->age<<" ";
cout<<"性别:"<<iter->sex<<" ";
cout<<"地址:"<<iter->address<<" ";
cout<<"电话:"<<iter->telephone<<" "<<endl;
}
else
{
cout<<"您查找的学生不存在!"<<endl;
}
system("pause");
system("cls"); //清屏
}
Person::~Person()
{
}
//Main.cpp
#include <iostream>
#include <cstdlib>
#include "Person.h"
using namespace std;
void addstu();
int main()
{
cout<<"\t\t***********************************************"<<endl;
cout<<"\t\t***********************************************"<<endl;
cout<<"\t\t\t\t"<<"欢迎进入人事管理系统"<<endl;
cout<<"\t\t***********************************************"<<endl;
cout<<"\t\t***********************************************"<<endl;
cout<<"\n";
cout<<"\n";
cout<<"请选择你要进行的操作......"<<endl;
while(1)
{
cout<<"1:添加学生信息"<<"\t\t\t"<<"2:按学号查询信息"<<endl;
cout<<"\n";
cout<<"3:查看所有学生信息"<<"\t\t\t"<<"4:退出"<<endl;
cout<<"\n";
cout<<"请输入:";
int num;
cin>>num;
switch(num)
{
case 1:
system("cls"); //清屏
addstu();
break;
case 2:
system("cls"); //清屏
Person::findinfor();
break;
case 3:
system("cls"); //清屏
Person::display();
break;
case 4:
exit(0);
break;
}
}
system("pause");
return 0;
}
void addstu()
{
cout<<"学号:";
string id;
try
{
cin>>id;
}
catch(...)
{
cerr<<"对不起你输入的学号超出范围"<<endl;
cin.clear();
}
cout<<"姓名:";
string name;
cin>>name;
cout<<"年龄:";
string age;
cin>>age;
cout<<"性别:";
string sex;
cin>>sex;
cout<<"地址:";
string address;
cin>>address;
cout<<"电话: ";
string telephone;
cin>>telephone;
Person stu1(id,name,age,sex,address,telephone);
Person::addinfor(stu1);
system("cls");
cout<<"一条信息已经添加完毕,请选择接下来的操作:"<<endl;
//continue;
}