Я думаю, что есть какая-то проблема типа. Может быть, я что-то упустил. Когда я ввожу выбор как 1, мне предоставляется «Введите имя: введите роль:», не имея возможности принять «имя» в качестве ввода. Я создал класс «Professor» с членами данных в виде 3 векторов типа string и «int count» вместе с тремя функциями-членами, такими как «Recruit», «DisplayInfo» и «Remove». Я в основном пытаюсь собрать данные профессоров колледжей.
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
class Professor
{
private:
vector<string> Name;
vector<string> Role;
vector<string>Subject;
static int count1;
public:
void Recruit()
{
string name,role,subject;
cout<<"Enter the Name: ";
getline(cin, name);
Name.push_back(name);
cout<<"Enter the Role: ";
getline(cin, role);
Role.push_back(role);
cout<<"Enter the Subject to be assigned: ";
getline(cin, subject);
Subject.push_back(subject);
count1++;
}
void DisplayInfo()
{
//cout<<"\nName Role Subject\n";
for(int i=0; i<count1; i++)
{
cout<<"Name: "<<Name[i]<<"\n";
cout<<"Role: "<<Role[i]<<"\n";
cout<<"Subject: "<<Subject[i]<<"\n";
}
cout<<"\n\n";
}
void Remove()
{
string name, role, subject;
cout<<"Enter the name of the Professor, his/her Role and the subject assigned to him/her: ";
cin>>name>>role>>subject;
for(int i=0; i<count1; i++)
{
if(Name[i]==name && Role[i]==role && Subject[i]==subject)
{
vector<string>::iterator iter1 = find(Name.begin(), Name.end(), name);
if(iter1 == Name.end())
{
cout<<"";
}
else{
Name.erase(iter1);
}
vector<string>::iterator iter2 = find(Role.begin(), Role.end(), role);
if(iter2 == Role.end())
{
cout<<"";
}
else{
Role.erase(iter2);
}
vector<string>::iterator iter3 = find(Subject.begin(), Subject.end(), subject);
if(iter2 == Role.end())
{
cout<<"";
}
else{
Role.erase(iter2);
}
}
}
}
};
int Professor :: count1;
int main()
{
Professor p;
int choice;
do{
cout<<"You have the following Choices:\n";
cout<<"1) Recruit a Professor\n";
cout<<"2) Display the Information about Professors\n";
cout<<"3) Remove a Professor\n";
cout<<"4) Quit\n";
cout<<"\n\nEnter the choice:";
cin>>choice;/*This is where it occurs. Code for "Recruit" member function is defined in
"Professor" class above.*/
switch(choice)
{
case 1:
{
p.Recruit();
break;
}
case 2:
{
p.DisplayInfo();
break;
}
case 3:
{
p.Remove();
break;
}
case 4:
{
break;
}
default:
{
cout<<"Sorry Wrong Choice!!\n";
}
}
}while(choice!=4);
return 0;
}