完善int a; cout<<"学号查找按1,姓名查找请按2."; cin>>a; if(a==1){ cout<<"请输入学生的学号:"; cin>>num; bool found = false; for (auto p = i.v.begin(); p != i.v.end(); ++p) { if (p->num == num) {found = true; cout<<setiosflags(ios::left)<<setw(12)<<"学号"<<setw(20)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"英语"<<setw(6)<<"高数"<<setw(6)<<"汇编"<<endl; cout<< setiosflags(ios::left)<<setw(12)<<p->num<<setw(21)<<p->name<<setw(6)<<p->sex<<setw(6)<<p->score1<<setw(6)<<p->score2<<setw(6)<<p->score3<<endl;break;}} if (!found) {cout << "未找到该学生的信息" << endl;}} else if(a==2){cout<<"请输入学生的姓名:"; cin>>name; bool found = false; for (auto p = i.v.begin(); p != i.v.end(); ++p) { if (p->name== name) {found = true; cout<< setiosflags(ios::left)<<setw(12)<<"学号"<<setw(20)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"英语"<<setw(6)<<"高数"<<setw(6)<<"汇编"<<endl; cout<< setiosflags(ios::left)<<setw(12)<<p->num<<setw(21)<<p->name<<setw(6)<<p->sex<<setw(6)<<p->score1<<setw(6)<<p->score2<<setw(6)<<p->score3<<endl;break;} }if (!found) { cout << "未找到该学生的信息" << endl;}} else {cout << "输入无效选项" << endl; } system("pause"); return;
时间: 2023-07-08 17:39:45 浏览: 38
这段代码是一个简单的学生信息查询程序。程序首先输出一个选项,要求用户输入数字1或2来选择学号查询或姓名查询。然后根据用户的选择分别进行查询。如果用户选择学号查询,则要求用户输入学生的学号,程序在学生信息列表中查找该学号对应的学生信息,并输出该学生的学号、姓名、性别以及英语、高数、汇编三门科目的成绩。如果用户选择姓名查询,则要求用户输入学生的姓名,程序在学生信息列表中查找该姓名对应的学生信息,并输出该学生的学号、姓名、性别以及英语、高数、汇编三门科目的成绩。如果用户输入的数字既不是1也不是2,则输出“输入无效选项”。最后程序使用system("pause")语句等待用户按下任意键后结束程序运行。
相关问题
完善 int a,b; vector<_0843杨晓慧>::iterator p=i.v.begin(); cout<<"学号按1,姓名请按2."; cin>>a; if(a==1){cout<<"输入学号:"; } if(a==2){cout<<"输入要姓名:";} cin >> b; if(b==p->num[N]||b==p->name){cout<< setiosflags(ios::left)<<setw(12)<<p->num[N]<<setw(
11)<<p->name<<" "<<p->score<<endl;
这段代码存在一些问题,可能无法正常编译或运行。我猜测你想输出学生信息,根据输入的选项选择按学号还是姓名查找,然后输出学生的学号、姓名和成绩。但是,代码中存在以下问题:
1. 变量N没有定义,无法使用。
2. 没有对输入的选项做出正确的判断,只是判断了选项1和选项2,如果用户输入其他的选项,程序会出错。
3. 如果用户输入的学号或姓名不存在,程序会崩溃。
4. 需要在输出前对输出格式进行设置,比如设置输出的宽度和左对齐等。
以下是我对代码进行修改后的建议:
```c++
int a, b;
cout << "按学号请按1,按姓名请按2:" << endl;
cin >> a;
cout << "请输入要查找的学号或姓名:" << endl;
cin >> b;
bool found = false;
for (auto it = i.v.begin(); it != i.v.end(); ++it) {
if ((a == 1 && it->num == b) || (a == 2 && it->name == b)) {
found = true;
cout << setiosflags(ios::left) << setw(12) << it->num << setw(11) << it->name << it->score << endl;
}
}
if (!found) {
cout << "未找到该学生的信息" << endl;
}
```
这段代码会首先让用户输入选项和要查找的学号或姓名,然后遍历学生信息的vector,如果找到了符合条件的学生信息,就输出学号、姓名和成绩。如果未找到,就输出提示信息。注意,这里我假设学生信息的结构体中有num、name和score三个成员变量,你需要根据实际情况修改代码。
完善一下 void _0843杨晓慧_1::_0843杨晓慧3(){//查找记录, 按提示输入要查找的学生学号(可用姓名,学号等查找)存在则输出相应记录,不存在,则按任意键返回主菜单。 int a; string b; cout<<"学号查找请按1,姓名查找请按2."; cin>>a; if(a==1){cout<<"请输入要查找的学生学号:"; cin >> b; cout<< setiosflags(ios::left)<<setw(12)<<"学号"<<setw(20)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"英语"<<setw(6)<<"高数"<<setw(6)<<"汇编"<<endl; _0843杨晓慧1()[i]._0843杨晓慧2(); } else{cout << "未找到该学生记录!" << endl;} system("pause"); }
void _0843杨晓慧_1::_0843杨晓慧3() {
int choice;
string keyword;
cout << "请输入要查找的方式:\n1. 学号查找\n2. 姓名查找\n";
cin >> choice;
bool found = false;
if (choice == 1) {
cout << "请输入要查找的学生学号:";
cin >> keyword;
for (int i = 0; i < _0843杨晓慧1().size(); i++) {
if (_0843杨晓慧1()[i].get学号() == keyword) {
found = true;
cout << setw(12) << "学号" << setw(20) << "姓名" << setw(6) << "性别" << setw(6) << "英语" << setw(6) << "高数" << setw(6) << "汇编" << endl;
_0843杨晓慧1()[i]._0843杨晓慧2();
break;
}
}
} else if (choice == 2) {
cout << "请输入要查找的学生姓名:";
cin >> keyword;
for (int i = 0; i < _0843杨晓慧1().size(); i++) {
if (_0843杨晓慧1()[i].get姓名() == keyword) {
found = true;
cout << setw(12) << "学号" << setw(20) << "姓名" << setw(6) << "性别" << setw(6) << "英语" << setw(6) << "高数" << setw(6) << "汇编" << endl;
_0843杨晓慧1()[i]._0843杨晓慧2();
break;
}
}
}
if (!found) {
cout << "未找到该学生记录!" << endl;
}
system("pause");
}
阅读全文