vector<_0843杨晓慧>::iterator p=i.v.begin(); cout<< setiosflags(ios::left)<<setw(13)<<"学号"<<setw(23)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"英语"<<setw(6)<<"高数"<<setw(6)<<"汇编"<<endl; cout<< setiosflags(ios::left)<<setw(13)<<"22560640000"<<setw(23)<<"格林尼治张三"<<setw(6)<<"m"<<setw(6)<<"88"<<setw(6)<<"89"<<setw(6)<<"99"<<endl;完善上面的代码使其能够查询
时间: 2023-07-19 21:33:35 浏览: 47
这段代码只是输出了一行学生信息的表头和一行学生信息的数据,无法进行查询。如果你想要实现查询功能,可以参考我在之前的回答中提供的代码,将查询功能加入其中。
以下是我对代码进行修改后的建议:
```c++
cout << "按学号请按1,按姓名请按2:" << endl;
int option;
cin >> option;
if (option == 1) {
cout << "请输入要查找的学号:" << endl;
int num;
cin >> num;
bool found = false;
for (auto it = i.v.begin(); it != i.v.end(); ++it) {
if (it->num == num) {
found = true;
cout << setiosflags(ios::left) << setw(13) << "学号" << setw(23) << "姓名" << setw(6) << "性别" << setw(6) << "英语" << setw(6) << "高数" << setw(6) << "汇编" << endl;
cout << setiosflags(ios::left) << setw(13) << it->num << setw(23) << it->name << setw(6) << it->sex << setw(6) << it->english << setw(6) << it->math << setw(6) << it->assembly << endl;
break;
}
}
if (!found) {
cout << "未找到该学生的信息" << endl;
}
} else if (option == 2) {
cout << "请输入要查找的姓名:" << endl;
string name;
cin >> name;
bool found = false;
for (auto it = i.v.begin(); it != i.v.end(); ++it) {
if (it->name == name) {
found = true;
cout << setiosflags(ios::left) << setw(13) << "学号" << setw(23) << "姓名" << setw(6) << "性别" << setw(6) << "英语" << setw(6) << "高数" << setw(6) << "汇编" << endl;
cout << setiosflags(ios::left) << setw(13) << it->num << setw(23) << it->name << setw(6) << it->sex << setw(6) << it->english << setw(6) << it->math << setw(6) << it->assembly << endl;
break;
}
}
if (!found) {
cout << "未找到该学生的信息" << endl;
}
} else {
cout << "输入无效选项" << endl;
}
```
这段代码会先让用户输入选项和要查找的学号或姓名,然后遍历学生信息的vector,如果找到了符合条件的学生信息,就输出学生信息的表头和数据。如果未找到,就输出提示信息。注意,这里我假设学生信息的结构体中有num、name、sex、english、math和assembly六个成员变量,你需要根据实际情况修改代码。