#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<cstddef>
using namespace std;
class student_item
{
public:
student_item():sex("-"),age("-"),grade("-"),id("-"){}
void set_name(string a){name=a;}
void set_sex(string a){sex=a;}
void set_age(string a){age=a;}
void set_grade(string a){grade=a;}
void set_id(string a){id=a;}
string get_name(){return name;}
string get_sex(){return sex;}
string get_age(){return age;}
string get_grade(){return grade;}
string get_id(){return id;}
private:
string name;
string sex;
string age;
string grade;
string id;
};
void vector_student(vector<student_item> &student,string a,string b,string c="-",string d="-",string e="-")
{
student_item someone;
someone.set_name(a);
someone.set_sex(b);
someone.set_age(c);
someone.set_grade(d);
someone.set_id(e);
student.push_back(someone);
}
void vector_student(vector<student_item> &student,string a)
{
student_item someone;
someone.set_name(a);
student.push_back(someone);
} int main()
{
string ifm;
vector<string> information;
cout<<"请逐行依次输入学生的信息,未知信息以 - 代替,\
如一行输入的信息数量过多,将仅取该行前五条信息依次赋给对应的项目,\
如不足五条则从第一个项目赋完为止"<<endl<<"姓名"<<" "<<"性别(男/女)"<<" "<<"年龄"<<" "<<"班级"<<" "<<"学号"<<endl;
while(getline(cin,ifm)){information.push_back(ifm);}
vector<vector<string>> total_item;
for(vector<string>::iterator a=information.begin();a!=information.end();++a)
{
vector<string> each_item;
istringstream x(*a);
string m;
while(x>>m){each_item.push_back(m);}
total_item.push_back(each_item);
x.clear();
}
vector<student_item> student_ifm;
for(size_t a(0);a!=total_item.size();++a)
{
size_t b=total_item[a].size();
switch (b)
{
case 0:;
break;
case 1:vector_student(student_ifm,total_item[a][0]);
break;
case 2:vector_student(student_ifm,total_item[a][0],total_item[a][1]);
break;
case 3:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2]);
break;
case 4:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2],total_item[a][3]);
break;
default:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2],total_item[a][3],total_item[a][4]);
break;
}
}
cout<<"已统计的学生信息如下:"<<endl<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"班级"<<"\t"<<"学号"<<endl;
for(vector<student_item>::iterator a=student_ifm.begin();a!=student_ifm.end();++a)
{
cout<<(*a).get_name()<<"\t"<<(*a).get_sex()<<"\t"<<(*a).get_age()<<"\t"<<(*a).get_grade()<<"\t"<<(*a).get_id()<<endl;
}
system("pause");
return 0;
}
#include<sstream>
#include<string>
#include<vector>
#include<cstddef>
using namespace std;
class student_item
{
public:
student_item():sex("-"),age("-"),grade("-"),id("-"){}
void set_name(string a){name=a;}
void set_sex(string a){sex=a;}
void set_age(string a){age=a;}
void set_grade(string a){grade=a;}
void set_id(string a){id=a;}
string get_name(){return name;}
string get_sex(){return sex;}
string get_age(){return age;}
string get_grade(){return grade;}
string get_id(){return id;}
private:
string name;
string sex;
string age;
string grade;
string id;
};
void vector_student(vector<student_item> &student,string a,string b,string c="-",string d="-",string e="-")
{
student_item someone;
someone.set_name(a);
someone.set_sex(b);
someone.set_age(c);
someone.set_grade(d);
someone.set_id(e);
student.push_back(someone);
}
void vector_student(vector<student_item> &student,string a)
{
student_item someone;
someone.set_name(a);
student.push_back(someone);
} int main()
{
string ifm;
vector<string> information;
cout<<"请逐行依次输入学生的信息,未知信息以 - 代替,\
如一行输入的信息数量过多,将仅取该行前五条信息依次赋给对应的项目,\
如不足五条则从第一个项目赋完为止"<<endl<<"姓名"<<" "<<"性别(男/女)"<<" "<<"年龄"<<" "<<"班级"<<" "<<"学号"<<endl;
while(getline(cin,ifm)){information.push_back(ifm);}
vector<vector<string>> total_item;
for(vector<string>::iterator a=information.begin();a!=information.end();++a)
{
vector<string> each_item;
istringstream x(*a);
string m;
while(x>>m){each_item.push_back(m);}
total_item.push_back(each_item);
x.clear();
}
vector<student_item> student_ifm;
for(size_t a(0);a!=total_item.size();++a)
{
size_t b=total_item[a].size();
switch (b)
{
case 0:;
break;
case 1:vector_student(student_ifm,total_item[a][0]);
break;
case 2:vector_student(student_ifm,total_item[a][0],total_item[a][1]);
break;
case 3:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2]);
break;
case 4:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2],total_item[a][3]);
break;
default:vector_student(student_ifm,total_item[a][0],total_item[a][1],total_item[a][2],total_item[a][3],total_item[a][4]);
break;
}
}
cout<<"已统计的学生信息如下:"<<endl<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"班级"<<"\t"<<"学号"<<endl;
for(vector<student_item>::iterator a=student_ifm.begin();a!=student_ifm.end();++a)
{
cout<<(*a).get_name()<<"\t"<<(*a).get_sex()<<"\t"<<(*a).get_age()<<"\t"<<(*a).get_grade()<<"\t"<<(*a).get_id()<<endl;
}
system("pause");
return 0;
}
