完善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 08:39:45 浏览: 47
这段代码是一个简单的学生信息查询程序。程序首先输出一个选项,要求用户输入数字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(
12)<<p->name<<setw(8)<<p->score<<endl;}
这段代码存在一些问题,不够完善。首先,代码中缺少了一些必要的头文件,例如<iostream>、<iomanip>、<vector>等等。其次,代码中使用了一个名为"_0843杨晓慧"的类型,这个类型并没有被定义,需要先定义这个类型或者更改为已定义的类型。另外,代码中没有给出变量N的定义,也需要进行修正。
以下是一种可能的完善方案:
```
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
struct Student {
int num;
string name;
double score;
};
int main() {
vector<Student>::iterator p;
vector<Student> stuList;
int a, b;
// 假设已经从文件或键盘读入了一些学生信息,存储在stuList中
cout << "学号按1,姓名请按2。";
cin >> a;
if (a == 1) {
cout << "输入学号:";
cin >> b;
for (p = stuList.begin(); p != stuList.end(); p++) {
if (p->num == b) {
cout << setiosflags(ios::left) << setw(12) << p->num << setw(12) << p->name << setw(8) << p->score << endl;
}
}
}
else if (a == 2) {
cout << "输入要姓名:";
cin >> b;
for (p = stuList.begin(); p != stuList.end(); p++) {
if (p->name == b) {
cout << setiosflags(ios::left) << setw(12) << p->num << setw(12) << p->name << setw(8) << p->score << endl;
}
}
}
return 0;
}
```
在这个完善的代码中,我们定义了一个名为Student的结构体,用于存储学生的信息。同时,我们使用了vector容器来存储多个学生的信息,并使用迭代器p来遍历容器中的元素。对于用户输入的a和b,我们分别在容器中查找满足条件的学生信息并输出。同时,我们使用了iomanip库中的setw和setiosflags函数来控制输出格式。
完善一下 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");
}
阅读全文