#include<iostream>
#include<list>
#include<algorithm>
#include<cstdio>
using namespace std;
struct stu
{
string name;
int score;
};
list<struct stu>vk;
void makemenu()
{
cout<<"---------学生成绩管理----------"<<endl;
cout<<"1.录入功能"<<endl;
cout<<"2.插入功能"<<endl;
cout<<"3.浏览功能"<<endl;
cout<<"4.删除功能"<<endl;
cout<<"5.修改功能"<<endl;
cout<<"6.查询功能"<<endl;
cout<<"7.退出系统"<<endl;
cout<<"-----------------------------------"<<endl;
}
long get_long()
{
long input;
char ch;
while(scanf("%d", &input) != 1)
{
while((ch = getchar())!= '\n')
putchar(ch);
cout<<"输入错误,请重新输入"<<endl;
}
return input;}
void keydown()
{long m;
struct stu b;
struct stu a;
list<stu>::iterator it=vk.begin();
list<stu>::iterator it1=vk.begin();
string nname;
string n1name;
int score;
m=get_long();
switch(m)
{
case 1:cout<<"----【录入模块】----"<<endl;
cout<<"请输入想录入的学生姓名和成绩。"<<endl;
cin>>b.name>>b.score;
vk.push_back(b);
break;
case 2:cout<<"----【插入模块】----"<<endl;
cout<<"请输入想在谁的前面插入"<<endl;
cin>>nname;
for(it1=vk.begin();(*it1).name!=nname&&it1!=vk.end();it1++);
if((*it1).name==nname)
{cout<<"请输入想要插入的学生和成绩!"<<endl;
cin>>a.name>>a.score;
vk.insert(it1,a);
}
break;
case 3:cout<<"----【浏览模块】----"<<endl;
for(;it!=vk.end();it++)
{
cout<<(*it).name<<' '<<(*it).score<<endl;
}
break;
case 4:cout<<"----【删除模块】----"<<endl;
cout<<"请输入想删除的学生姓名。"<<endl;
cin>>nname;
for(it1=vk.begin();(*it1).name!=nname&&it1!=vk.end();it1++);
if((*it1).name==nname)
{
vk.erase(it1);
}
if(it1==vk.end())
{
cout<<"想要删除的对象不存在"<<endl;
}
break;
case 5:cout<<"----【修改模块】----"<<endl;
cout<<"请输入想修改的学生姓名。"<<endl;
cin>>nname;
for(it1=vk.begin();(*it1).name!=nname&&it1!=vk.end();it1++);
if((*it1).name==nname)
{cout<<"请输入新同学的学生姓名和成绩。"<<endl;
cin>>n1name>>score;
(*it1).name=n1name;
(*it1).score=score;
}
if(it1==vk.end())
{
cout<<"想要改变的对象不存在"<<endl;
}
break;
case 6:cout<<"----【查询模块】----"<<endl;
cout<<"请输入想查询的学生姓名。"<<endl;
cin>>nname;
for(it1=vk.begin();(*it1).name!=nname&&it1!=vk.end();it1++);
if((*it1).name==nname)
{cout<<(*it1).name<<' '<<(*it1).score<<endl;
}
if(it1==vk.end())
{
cout<<"想要查询的对象不存在"<<endl;
}
break;
case 7:cout<<"----【退出系统】----"<<endl;
exit(0);
break;
}
}
int main()
{
while(1)
{
makemenu();
keydown();
system("pause");
system("cls");
}
return 0;
}
为啥我输入对的名字可以正常实现功能,但输入一个错误的名字不会输出下面 if(it1==vk.end())中的话。