完善int a; cout<<"学号查找按1,姓名查找请按2."; cin>>a; if(a==1){cout<<"请输入学生的学号:"; cin>>num[N]; 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[N]<<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->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[N]<<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 10:39:45 浏览: 70
这段代码实现了一个学生信息的查询功能。用户可以选择按照学号或者姓名进行查询,然后输入对应的学号或者姓名进行查询,如果查询成功则输出该学生的信息,否则输出未找到该学生的信息。
具体来说,代码首先通过 `cin` 获取用户输入的选项,保存在变量 `a` 中,然后根据 `a` 的值选择不同的查询方式。如果用户选择按照学号查询,则继续通过 `cin` 获取用户输入的学号,保存在数组 `num` 的第 `N` 个元素中。接着设置一个布尔型变量 `found`,用于记录是否找到了对应的学生信息,初始值为 `false`。然后通过 `for` 循环遍历学生信息的 `vector` 对象,从第一个元素开始依次比较每个学生的学号和输入的学号是否相等。如果找到了相等的学号,则将 `found` 设为 `true`,输出该学生的信息,然后跳出循环。如果遍历完所有学生信息后仍未找到相等的学号,则 `found` 仍为 `false`,输出未找到该学生的信息。
如果用户选择按照姓名查询,则类似地获取用户输入的姓名,并设置一个布尔型变量 `found`。然后通过 `for` 循环遍历学生信息的 `vector` 对象,从第一个元素开始依次比较每个学生的姓名和输入的姓名是否相等。如果找到了相等的姓名,则将 `found` 设为 `true`,输出该学生的信息,然后跳出循环。如果遍历完所有学生信息后仍未找到相等的姓名,则 `found` 仍为 `false`,输出未找到该学生的信息。
最后,如果用户输入的选项既不是 1,也不是 2,则输出输入无效选项。最后通过 `system("pause")` 暂停程序运行,等待用户按下任意键后关闭程序。
阅读全文