完善一下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 16:39:39 浏览: 109
这段代码可以再进行一些改进。其中一个改进是,当用户输入的学号或姓名不存在时,程序应该输出更加友好的提示信息。例如,可以输出“未找到学号为XXX的学生信息”或“未找到姓名为XXX的学生信息”,其中XXX是用户输入的学号或姓名。另一个改进是,程序可以允许用户进行多次查询,直到用户选择退出程序为止。可以在程序结尾处添加一个循环,让用户可以多次进行查询,直到用户输入数字3为止。具体的代码实现如下所示:
```
while (true) {
int a;
cout << "学号查找按1,姓名查找请按2,退出程序请按3。";
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 << "未找到学号为" << num << "的学生信息" << 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 << "未找到姓名为" << name << "的学生信息" << endl;
}
} else if (a == 3) {
cout << "退出程序。" << endl;
break;
} else {
cout << "输入无效选项" << endl;
}
system("pause");
}
return;
```
这样改进之后,用户可以根据需要进行多次查询,程序会一直运行,直到用户选择退出程序为止。
阅读全文