我也编写了一下这个程序,结果也是出错了,哪位高手帮帮忙哈!!~
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
class data
{
public:
data(){};
private:
string name;
int num;
};
int main()
{
vector<data> vec;
data d;
void check(int numb,vector<data>);
void check(string str,vector<data>);
void input();
int numb;
string nam;
ifstream infile("nam_num.dat",ios::in);
//nam_num.dat
是你存放名字和学号对应表的文件。
if(!infile)
{
cerr<<"open file error!"<<endl;
exit(0);
}
ostream& operator>>(ostream&input,data&d)
{
input>>d.num>>d.name;
return input;
}
while(infile>>d)
vec.push_back(d);
cout<<"请输入你要查询的学号:";
cin>>numb;
check(numb,vec);
cout<<"请输入你要查询的学生姓名:";
cin>>nam;
check(nam,vec);
return 0;
}
void check(string nam,vector<data> vec)
{
int i,m;
int flag(0);
for(i=0;i!=vec.size();++i)
if(nam==data.name[i])
{
flag=1;
m=i;
}
if(flag)
cout<<vec[m].num<<"
"<<vec[m].name<<endl;
else
cout<<"没有这个学生!"<<endl;
}
void check(int numb,vector<data> vec)
{
int i,m;
int flag(0);
for(i=0;i!=vec.size();++i)
if(numb==data.num[i])
{
flag=1;
m=i;
}
if(flag)
cout<<vec[m].num<<"
"<<vec[m].name<<endl;
else
cout<<"没有这个学生!"<<endl;
}