我正在尝试在程序的主要部分中使用 switch 语句,这就是我所拥有的...
main()
int userOption;
while (userOption=!0)
{
cout<<"BUSINESS MANAGEMENT system <16102868>"<<endl;
cout<<"-------------------------------------"<<endl;
cout<<"EMPLOYEE OPTIONS"<<endl;
cout<<"1. Add Employee"<<endl;
cout<<"2. Edit Employee"<<endl;
cout<<"3. Layoff Employee"<<endl;
cout<<"4. View Employee List"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"SCHEDULING OPTIONS"<<endl;
cout<<"5. Update Schedule"<<endl;
cout<<"6. Cancel Schedule"<<endl;
cout<<"7. View Schedule"<<endl;
cout<<"8. Export Schedule to CSV"<<endl;
cout<<"9. Export Schedule to HTML"<<endl;
cout<<"---------------------------------"<<endl;
cout<<"0. Quit"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"Please enter an option:"
cin>>userOption
switch (userOption)
{
case 1:
AddEmployee()
break;
case 2:
EditEmployee()
break;
case 3:
LayoffEmployee()
break;
case 4:
DisplayEmployeeList()
break;
case 5:
AddSchedule()
break;
case 6:
CancelSchedule()
break;
case 7:
DisplaySchedule()
break;
case 8:
ExportScheduleCSV()
break;
case 9:
ExportScheduleHTML()
break;
default:
cout<<"Enter a number between 1 and 9:"<<endl;
}
我无法完全弄清楚我要去哪里错了。这是我在其中调用的具有上述大部分功能的代码...
class EmployeeHandler
{
public:
void AddEmployee()
{
std::string firstName;
std::string lastName;
float payRate;
std::cout<<"NEW EMPLOYEE"<<std::endl;
std::cout<<"First Name:"<<std::endl;
std::cin>>firstName;
std::cout<<"Last Name:"<<std::endl;
std::cin>>lastName;
std::cout<<"Pay Rate:"<<std::endl;
std::cin>>payRate;
employees_.push_back( Employee( firstName,lastName,payRate ) );
std::cout<<"**Employee m_employeeCount added"<<std::endl;
}
void EditEmployee()
{
std::string newFirst;
std::string newLast;
float newPay;
std::cout<<"Which employee would you like to edit"<<std::endl;
int indexEdit = GetSelection();
Employee& employee = employees_[indexEdit];
std::cout << employee << std::endl;
std::cout<<"Employee new first name:"<<std::endl;
std::cin>>newFirst;
std::cout<<"Employee new last name:"<<std::endl;
std::cin>>newLast;
std::cout<<"Employee new pay rate:"<<std::endl;
std::cin>>newPay;
employee = Employee( newFirst, newLast, newPay );
std::cout<<"** Employee index updated"<<std::endl;
}
void LayoffEmployee()
{
int index = GetSelection();
if( employees_[index].GetIsActive() )
{
std::cout << "Laying off employee:\n" << employees_[index] << std::endl;
employees_[index].LayOff();
}
else
{
std::cerr << "Already layed off employee:" << employees_[index] << std::endl;
}
}
void DisplayEmployeeList()
{
std::copy( employees_.begin(), employees_.end(), std::ostream_iterator<Employee>( std::cout, "\n" ) );
}
int GetSelection()
{
std::size_t indexNumber;
std::cout << "Select an employee from the list below by specifying its number:" << std::endl;
DisplayEmployeeList();
do{
while( !std::cin >> indexNumber )
{
std::cerr << "Select a number..." << std::endl;
}
if( indexNumber >= employees_.size() )
{
std::cerr << "Select a number within range of list below:" << std::endl;
DisplayEmployeeList();
}
}
while( indexNumber >= employees_.size() );
return indexNumber;
}
Employee& operator[]( std::size_t index )
{
return employees_[index];
}
const Employee& operator[]( std::size_t index ) const
{
return employees_[index];
}
std::size_t EmployeeCount() const
{
return employees_.size();
}
private:
std::vector<Employee> employees_;
};