Error fixes and added main method function and objects

<SRS> SRS01 : Authentication </SRS>

 <Changes>
  - Fixed polymorphism errors in Employee base class by adding virtual destructor.
  - Corrected constructor mismatch in GeneralEmployee to properly call Employee constructor with EmployeeType.
  - Created UserInterface object in main() and invoked run() to start role-based menus.
 </Changes>

 <Review>
   Smitha Mohan
 </Review>
This commit is contained in:
Tinu Johnson
2026-04-06 17:39:09 +05:30
parent 719bf5e7b3
commit 18afdc4189
13 changed files with 126 additions and 123 deletions
@@ -1,4 +1,7 @@
#include "UserInterface.h"
int main() int main()
{ {
UserInterface userInterFace;
userInterFace.run();
return 0;
} }
@@ -102,7 +102,7 @@
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@@ -62,5 +62,5 @@ public:
void addAttendance(std::shared_ptr<Attendance> attendance); void addAttendance(std::shared_ptr<Attendance> attendance);
void addLeave(std::shared_ptr<Leave> leave); void addLeave(std::shared_ptr<Leave> leave);
Enums::EmployeeType getEmployeeType() const; Enums::EmployeeType getEmployeeType() const;
~Employee() = default; virtual ~Employee() = default;
}; };
@@ -15,8 +15,7 @@ public:
const std::string& email, const std::string& email,
const std::string& teamId, const std::string& teamId,
std::shared_ptr<Payroll> payroll, std::shared_ptr<Payroll> payroll,
Enums::EmployeeDesignation designation) Enums::EmployeeDesignation designation) : Employee(id, password, name, phone, email, teamId,Enums::EmployeeType::GENERAL, payroll), m_designation(designation) {}
: Employee(id, password, name, phone, email, teamId, payroll), m_designation(designation) {}
Enums::EmployeeDesignation getDesignation() const; Enums::EmployeeDesignation getDesignation() const;
void setDesignation(Enums::EmployeeDesignation designation); void setDesignation(Enums::EmployeeDesignation designation);
~GeneralEmployee() = default; ~GeneralEmployee() = default;
@@ -31,7 +31,7 @@ bool AdminMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: /*case 1:
m_zenvyController.createHRManager(); m_zenvyController.createHRManager();
break; break;
case 2: case 2:
@@ -42,7 +42,7 @@ bool AdminMenu::handleOperation(int choice)
break; break;
case 4: case 4:
m_zenvyController.deactivateEmployee(); m_zenvyController.deactivateEmployee();
break; break;*/
case 5: case 5:
return false; return false;
default: default:
@@ -31,7 +31,7 @@ bool EmployeeMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: /*case 1:
m_zenvyController.applyLeave(); m_zenvyController.applyLeave();
break; break;
case 2: case 2:
@@ -69,7 +69,7 @@ bool EmployeeMenu::handleOperation(int choice)
break; break;
case 13: case 13:
m_zenvyController.viewAnnouncements(); m_zenvyController.viewAnnouncements();
break; break;*/
case 14: case 14:
return false; return false;
default: default:
@@ -31,7 +31,7 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: /*case 1:
m_zenvyController.applyLeave(); m_zenvyController.applyLeave();
break; break;
case 2: case 2:
@@ -60,7 +60,7 @@ bool FinanceExecutiveMenu::handleOperation(int choice)
break; break;
case 10: case 10:
m_zenvyController.updatePayroll(); m_zenvyController.updatePayroll();
break; break;*/
case 11: case 11:
return false; return false;
default: default:
@@ -31,39 +31,39 @@ bool HRManagerMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: //case 1:
m_zenvyController.applyLeave(); // m_zenvyController.applyLeave();
break; // break;
case 2: //case 2:
m_zenvyController.viewPayslip(); // m_zenvyController.viewPayslip();
break; // break;
case 3: //case 3:
m_zenvyController.viewPayslipHistory(); // m_zenvyController.viewPayslipHistory();
break; // break;
case 4: //case 4:
m_zenvyController.viewEmployees(); // m_zenvyController.viewEmployees();
break; // break;
case 5: //case 5:
m_zenvyController.searchEmployee(); // m_zenvyController.searchEmployee();
break; // break;
case 6: //case 6:
m_zenvyController.viewNotifications(); // m_zenvyController.viewNotifications();
break; // break;
case 7: //case 7:
m_zenvyController.viewAnnouncements(); // m_zenvyController.viewAnnouncements();
break; // break;
case 8: //case 8:
m_zenvyController.createEmployee(); // m_zenvyController.createEmployee();
break; // break;
case 9: //case 9:
m_zenvyController.regularizeAttenance(); // m_zenvyController.regularizeAttenance();
break; // break;
case 10: //case 10:
m_zenvyController.updateLeaveRequest(); // m_zenvyController.updateLeaveRequest();
break; // break;
case 11: //case 11:
m_zenvyController.registercandidateAsEmployee(); // m_zenvyController.registercandidateAsEmployee();
break; // break;
case 12: case 12:
return false; return false;
default: default:
@@ -31,7 +31,7 @@ bool ITExecutiveMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: /*case 1:
m_zenvyController.applyLeave(); m_zenvyController.applyLeave();
break; break;
case 2: case 2:
@@ -54,7 +54,7 @@ bool ITExecutiveMenu::handleOperation(int choice)
break; break;
case 8: case 8:
m_zenvyController.resolveTicket(); m_zenvyController.resolveTicket();
break; break;*/
case 9: case 9:
return false; return false;
default: default:
@@ -31,42 +31,42 @@ bool TalentExecutiveMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: //case 1:
m_zenvyController.applyLeave(); // m_zenvyController.applyLeave();
break; // break;
case 2: //case 2:
m_zenvyController.viewPayslip(); // m_zenvyController.viewPayslip();
break; // break;
case 3: //case 3:
m_zenvyController.viewPayslipHistory(); // m_zenvyController.viewPayslipHistory();
break; // break;
case 4: //case 4:
m_zenvyController.viewEmployees(); // m_zenvyController.viewEmployees();
break; // break;
case 5: //case 5:
m_zenvyController.searchEmployee(); // m_zenvyController.searchEmployee();
break; // break;
case 6: //case 6:
m_zenvyController.viewNotifications(); // m_zenvyController.viewNotifications();
break; // break;
case 7: //case 7:
m_zenvyController.viewAnnouncements(); // m_zenvyController.viewAnnouncements();
break; // break;
case 8: //case 8:
m_zenvyController.createNewJob(); // m_zenvyController.createNewJob();
break; // break;
case 9: //case 9:
m_zenvyController.viewJobOpenings(); // m_zenvyController.viewJobOpenings();
break; // break;
case 10: //case 10:
m_zenvyController.addCandidate(); // m_zenvyController.addCandidate();
break; // break;
case 11: //case 11:
m_zenvyController.updateCandidateStatus(); // m_zenvyController.updateCandidateStatus();
break; // break;
case 12: //case 12:
m_zenvyController.viewShortlistedCandidates(); // m_zenvyController.viewShortlistedCandidates();
break; // break;
case 13: case 13:
return false; return false;
default: default:
@@ -31,45 +31,45 @@ bool TeamExecutiveMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: //case 1:
m_zenvyController.applyLeave(); // m_zenvyController.applyLeave();
break; // break;
case 2: //case 2:
m_zenvyController.viewPayslip(); // m_zenvyController.viewPayslip();
break; // break;
case 3: //case 3:
m_zenvyController.viewPayslipHistory(); // m_zenvyController.viewPayslipHistory();
break; // break;
case 4: //case 4:
m_zenvyController.viewEmployees(); // m_zenvyController.viewEmployees();
break; // break;
case 5: //case 5:
m_zenvyController.searchEmployee(); // m_zenvyController.searchEmployee();
break; // break;
case 6: //case 6:
m_zenvyController.viewNotifications(); // m_zenvyController.viewNotifications();
break; // break;
case 7: //case 7:
m_zenvyController.viewAnnouncements(); // m_zenvyController.viewAnnouncements();
break; // break;
case 8: //case 8:
m_zenvyController.createTeam(); // m_zenvyController.createTeam();
break; // break;
case 9: //case 9:
m_zenvyController.updateTeam(); // m_zenvyController.updateTeam();
break; // break;
case 10: //case 10:
m_zenvyController.removeTeam(); // m_zenvyController.removeTeam();
break; // break;
case 11: //case 11:
m_zenvyController.assignEmployee(); // m_zenvyController.assignEmployee();
break; // break;
case 12: //case 12:
m_zenvyController.unassignEmployee(); // m_zenvyController.unassignEmployee();
break; // break;
case 13: //case 13:
m_zenvyController.viewTeams(); // m_zenvyController.viewTeams();
break; // break;
case 14: case 14:
return false; return false;
default: default:
@@ -31,7 +31,7 @@ bool TeamLeadMenu::handleOperation(int choice)
{ {
switch (choice) switch (choice)
{ {
case 1: /*case 1:
m_zenvyController.applyLeave(); m_zenvyController.applyLeave();
break; break;
case 2: case 2:
@@ -75,7 +75,7 @@ bool TeamLeadMenu::handleOperation(int choice)
break; break;
case 15: case 15:
m_zenvyController.updateLeaveRequest(); m_zenvyController.updateLeaveRequest();
break; break;*/
case 16: case 16:
return false; return false;
default: default:
@@ -52,6 +52,7 @@ bool UserInterface::handleOperation(int choice)
return false; return false;
default: default:
std::cout << "Enter a valid choice!" << std::endl; std::cout << "Enter a valid choice!" << std::endl;
util::pressEnter();
} }
return true; return true;
} }