C++高手请进!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:03:17
#include <iostream>
#include <string>
using namespace std;
class Student
{public:
Student (int n,string na,char s,string sp)
{num=n; name=na; sex=s; specializ=sp;}
void set_information();
void show_information();
void delete_information();
private :
int num;
string name;
char sex;
string specializ;};
void Student::set_information ()
{cout<<"请输入您要添加的学生信息:"<<"num:"<<"\n"<<"name:"<<"\n"<<"sex:"<<"\n"<<"specializ:"<<endl;
cin>>num>>name>>sex>>specializ;}
void Student::show_information ()
{cout<<"请输入您要查询的学生的学号:"<<"num:"<<endl;
cin>>num;cout<<"num:"<<this->num <<"name:"<<this->name <<"sex:"<&l

if (cin>>a) student.set_information();
else if (cin>>b) student.show_information();
else if (cin>>c) student.delete_information();
else (cin>>d) ;return 0;}

上面这段明显有问题。cin>>...返回的不是输入的数据,而是cin对象(这里可以将其理解为 是否输入正确),这样cin>>..>>...>>...这些>>才可以连起来写,你可以看看操作符重载来好好理解这些机制。

所以你只要输入的是整数,永远执行的都是if (cin>>a) student.set_information(); 这一句,除非不是整数,那样输入出错,等待你的下一次输入。这样你再输入一个整数就执行else if (cin>>b) student.show_information(); 这一句,如果你第二次输入的还不是整数那就执行第三个条件。所以根本不是你的本意。

因此必须老老实实地按下面的方法做:
int main()
{
Student student(1,"lifuke",'M',"jisuanji");
int a;
cout<<"欢迎进入学生信息管理系统!"<<endl;
cout<<"1.添加学生信息请输入a。"<<endl;
cout<<"2.查询学生信息请输入b。"<<endl;
cout<<"3.删除学生信息请输入c。"<<endl;
cout<<"4.退出请输入d。"<<endl;

cin &