0% found this document useful (0 votes)
22 views14 pages

Empoyee Management

This document describes an employee management system project written in Java. The project allows users to add, delete, modify, and view employee details, as well as view employee salary details. It uses object-oriented programming concepts like classes and arrays to store and manage employee data. The main classes are EmployeeAdmin, which controls the menu options, and EmployeeDetail, which implements the CRUD functions for employee data.

Uploaded by

gayathri.m28001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views14 pages

Empoyee Management

This document describes an employee management system project written in Java. The project allows users to add, delete, modify, and view employee details, as well as view employee salary details. It uses object-oriented programming concepts like classes and arrays to store and manage employee data. The main classes are EmployeeAdmin, which controls the menu options, and EmployeeDetail, which implements the CRUD functions for employee data.

Uploaded by

gayathri.m28001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 14

/*

*Project Title : Employee Management System


*Author Name : Gayathri.M
*Start Date and Time :
*Last Modified Date and Time:
*/

/*Employee management system console project is used to insert,delete,modify and


display
the employee detail also used for calculate net pay and gross pay respect to
basic pay of the employee
*/

import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.ArrayList;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*class EmployeeAdmin is a main class used to choose and invoke the


add,delete,modify,
display and salaryDetail functions*/
public class EmployeeAdmin
{

static ArrayList<String> arraylistId=new ArrayList<String>();


static ArrayList<String> arraylistName=new ArrayList<String>();
static ArrayList<String> arraylistEmailId=new ArrayList<String>();
static ArrayList<String> arraylistDesignation=new ArrayList<String>();
static ArrayList<String> arraylistDateofJoining=new ArrayList<String>();
static ArrayList<Long> arraylistSalary=new ArrayList<Long>();
static ArrayList<String> arraylistGender=new ArrayList<String>();
static ArrayList<Long> arraylistContact=new ArrayList<Long>();
static ArrayList<String> arraylistDateofBirth=new ArrayList<String>();
static int choice;
/*method for choose editDetail and viewSalary method to invoke
EmployeeDetail class or EmployeeSalary class*/
static void signIn()
{
try
{
Scanner scanner=new Scanner(System.in);
System.out.println(" ");
System.out.println("*****Enter your choice****");
System.out.println("1)Goto Employee Detail menu");
//System.out.println("2)Goto Employee Salary menu");
System.out.println("2)Close The Application");
choice=scanner.nextInt();
}
catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input Miss matched");
EmployeeAdmin.main(null);
}
while(true)
{
switch(choice)
{
case 1:EmployeeAdmin.editDetail();
break;
//case 2:EmployeeAdmin.viewSalary();
// break;
case 2:System.exit(0);
break;
default:System.out.println("*****Invalid Input*****");
EmployeeAdmin.main(null);//calling main method
}

}
}
/*method for choose add,delete,modify and display method to manipulate
employee detail*/
static void editDetail()
{
Scanner scanner=new Scanner(System.in);
while(true)
{
try
{
System.out.println(" ");
System.out.println("****Enter your choice*****");
System.out.println("1)Add Employee details");
System.out.println("2)Delete Employee details");
System.out.println("3)Modify Employee detail");
System.out.println("4)View Employee datail");
System.out.println("5)View Employee salary detail");
System.out.println("6)Goto Main menu");
choice=scanner.nextInt();
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input Miss matched");
EmployeeAdmin.editDetail();
}
EmployeeDetail employeedetail=new EmployeeDetail();
switch(choice)
{
case 1:employeedetail.addDetail();
break;
case 2:employeedetail.deleteDetail();
break;
case 3:employeedetail.modifyDetail();
break;
case 4:employeedetail.displayDetail();
break;
case 5:EmployeeAdmin.viewSalary();
break;
case 6: EmployeeAdmin.main(null) ;
break;
default:System.out.println("***Invalid input please enter
valid input***");
break;
}
}
}

/*method for invoke displaySalary method to print employee salary


details*/
static void viewSalary()
{
try
{
Scanner scanner=new Scanner(System.in);
System.out.println(" ");
System.out.println("Enter your choice");
System.out.println("1)Print Salary detail");
System.out.println("2)Goto Detail Menu");
choice=scanner.nextInt();
if(choice==1)
{
Salary.displaySalary();

}
else if(choice==2)
{
EmployeeAdmin.editDetail();
}
else
{
System.out.println("*****Invalid Input******");
EmployeeAdmin.viewSalary();
}
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input miss matched Please Enter numeric 1
and 2");
EmployeeAdmin.viewSalary();
}

public static void main(String args[])


{
signIn();
}
}

/*class EmployeeDetail to perform add,delete,modify and display employee details*/


class EmployeeDetail extends EmployeeAdmin
{
Scanner scanner=new Scanner(System.in);
/*Method for add the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void addDetail()
{
EmployeeDetail employeedetail=new EmployeeDetail();
try
{
System.out.println("Enter number of employee detail to be added in
numeic: ");
int number=scanner.nextInt();
for(int counter=1;counter<=number;counter++)
{
System.out.println("Enter Employee "+counter+" Id[EX:ace2222]: ");
String employeeId=scanner.next();
Validator.addId(employeeId);
System.out.println("Enter Employee "+counter+" Name:[EX:Aravinth P] ");
String employeeName=scanner.next();
Validator.addName(employeeName);
System.out.println("Enter Employee "+counter+" Email Id
[Ex:[email protected]]");
String employeeMailId=scanner.next();
Validator.addEmail(employeeMailId);
System.out.println("Enter Employee "+counter+"
Desigination[Ex:Hr/Trainee]");
String employeeDesignation=scanner.next();
Validator.addDesignation(employeeDesignation);
System.out.println("Enter Employee "+counter+" Date of joining:dd-
Mon-yyyy[Ex:01-Jan-2020]");
String dateofJoining=scanner.next();
Validator.addDateofJoining(dateofJoining);
System.out.println("Enter Employee "+counter+" Salary:only numeric
value ");
long employeeSalary=scanner.nextLong();
String salary=Long.toString(employeeSalary);
Validator.addSalary(salary);
System.out.println("Enter Employee "+counter+" Gender:(Male/Female)");
String employeeGender=scanner.next();
Validator.addGender(employeeGender);
System.out.println("Enter Employee "+counter+" Contact: It must
contains ten digit ");
long employeeContact=scanner.nextLong();
String contact=Long.toString(employeeContact);
Validator.addContact(contact);
System.out.println("Enter Employee "+counter+" Date of
Birth:MM/dd/yyyy[Ex:01/01/2020] ");
String employeeDateofBirth=scanner.next();
Validator.addDateofBirth(employeeDateofBirth);

}
}
catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input miss matched please enter valid input");
employeedetail.addDetail();
}
}
/*Method for delete the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void deleteDetail()
{
System.out.println("Enter employee Id to delete its details: ");
String id=scanner.next();
boolean result=arraylistId.contains(id);
if(result)
{
int idIndex=arraylistId.indexOf(id);
arraylistName.remove(idIndex);
arraylistId.remove(idIndex);
arraylistContact.remove(idIndex);
arraylistSalary.remove(idIndex);
arraylistDateofJoining.remove(idIndex);
arraylistDesignation.remove(idIndex);
arraylistDateofBirth.remove(idIndex);
arraylistEmailId.remove(idIndex);
arraylistGender.remove(idIndex);
System.out.println("Employee Detail Deleted sucessfully: ");
}
else
{
System.out.println(" Invalid Id / Id Not Found ");
}
}
/*Method for display the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void displayDetail()
{
System.out.println("Enter employee id to view detail");
String id=scanner.next();
boolean result=arraylistId.contains(id);
if(result)
{
int idIndex=arraylistId.indexOf(id);
System.out.println("*****Employee Detail*****");
System.out.println("EmployeeId : "+arraylistId.get(idIndex));
System.out.println("EmployeeName :
"+arraylistName.get(idIndex));
System.out.println("EmployeeGender :
"+arraylistGender.get(idIndex));
System.out.println("EmailId :
"+arraylistEmailId.get(idIndex));
System.out.println("Desigination :
"+arraylistDesignation.get(idIndex));
System.out.println("Date of Joining :
"+arraylistDateofJoining.get(idIndex));
System.out.println("Salary :
"+arraylistSalary.get(idIndex));
System.out.println("Phone Number :
"+arraylistContact.get(idIndex));
System.out.println("Date of Birth :
"+arraylistDateofBirth.get(idIndex));
}
else
{
System.out.println("ID Not Found / Invalid ID");
}
}
/*Method for change the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void modifyDetail()
{
EmployeeDetail employeedetail=new EmployeeDetail();
try
{

System.out.println("Enter employee Id to modify detail: ");


String id=scanner.next();
boolean result=arraylistId.contains(id);
if(result)
{
while(true)
{

int idIndex=arraylistId.indexOf(id);
System.out.println(" ");
System.out.println("*****Enter your choice to modify***** ");
System.out.println("1)To Modify EmployeeName:");
System.out.println("2)To Modify EmployeeGender");
System.out.println("3)To Modify EmployeeEmailId:");
System.out.println("4)To Modify EmployeeDesignation:");
System.out.println("5)To Modify EmployeeDateofJoining:");
System.out.println("6)To Modify EmployeeBasicSalary:");
System.out.println("7)To Modify EmployeeConatact:");
System.out.println("8)To Modify EmployeeDOB:");
System.out.println("9)Goto Detail menu:");

int value=scanner.nextInt();
if(value==1)
{
System.out.println("Enter Name:[EX:Aravinth P]");
String name=scanner.next();
Validator.modifyName(name,idIndex);
}
else if(value==2)
{
System.out.println("Enter Gender (Male/Female)");
String gender=scanner.next();
Validator.modifyGender(gender, idIndex);
}
else if(value==3)
{
System.out.println("Enter EmailId[Ex:[email protected]]");
String email=scanner.next();
Validator.modifyEmail(email, idIndex);
}
else if(value==4)
{
System.out.println("Enter Designation [Ex:Hr/Trainee]");
String designation=scanner.next();
Validator.modifyDesignation(designation, idIndex);
}

else if(value==5)
{
System.out.println("Enter Date of Joining dd-Mon-yyyy[Ex:01-Jan-
2020]");
String dateofJoining=scanner.next();
Validator.modifyDateofJoining(dateofJoining, idIndex);
}
else if(value==6)
{
System.out.println("Enter Salary in numeric value");
long newSalary=scanner.nextLong();
String salary=Long.toString(newSalary);
Validator.modifySalary(salary, idIndex);
}
else if(value==7)
{
System.out.println("Enter Contact It must contains ten digit");
long newContact=scanner.nextLong();
String contact=Long.toString(newContact);
Validator.modifyContact(contact, idIndex);
}
else if(value==8)
{
System.out.println("Enter Date of Birth
MM/dd/yyyy[Ex:01/01/2020]");
String dateofBirth=scanner.next();
Validator.modifydateofBirth(dateofBirth, idIndex);
}
else if(value==9)
{
EmployeeAdmin.editDetail();
}
else
{
System.out.println("Invalid Input");
}
System.out.println("Detail Updated Successfully..!");
}
}
else
{
System.out.println("ID Not Found/Invalid ID");
EmployeeAdmin.editDetail();
}
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input Miss matched");
employeedetail.modifyDetail();
}
}
}

/* abstratc class for find employee basic salary using employee id and contains
*abstract methods to calculate gross pay,net pay and print salary detail*/
abstract class Salary extends EmployeeAdmin
{
long dearnessAllowance;
long houseRentAllowance;
long incomeTax;
long grossPay;
long netPay;
long providentFund;
abstract void calculateGrosspay(long basicSalary);
abstract void calculateNetpay();
abstract void printSalary(long basicSalary, String name);
//method for getting employee id and find index of id to get basic salary of
employee
static void displaySalary()
{
Salary salary=new EmployeeSalary();
Scanner scanner=new Scanner(System.in);
System.out.println("Enter Employee Id To Print Salary Detail ");
String id=scanner.next();
boolean idFlag=arraylistId.contains(id);
if(idFlag)
{
int idIndex=arraylistId.indexOf(id);
long basicSalary=arraylistSalary.get(idIndex);
String name=arraylistName.get(idIndex);
salary.calculateGrosspay(basicSalary);
salary.calculateNetpay();
salary.printSalary(basicSalary,name);
}
else
{
System.out.println("Invalid id/Id not found");
EmployeeAdmin.viewSalary();
}
}

/*class for calculate net pay,gross pay according to employee basic salary
and print employee salary detail*/
class EmployeeSalary extends Salary
{
/*method for calculate dearnessAllowance,houseRentAllowance,incomeTax,
providentFund and gross pay of the employee*/
@Override
void calculateGrosspay(long basicSalary)
{
dearnessAllowance=basicSalary*10/100;
houseRentAllowance=basicSalary*12/100;
incomeTax=basicSalary*15/100;
providentFund=2500;
grossPay=basicSalary+dearnessAllowance+houseRentAllowance+incomeTax;

}
//method for calculate net pay of employee
@Override
void calculateNetpay()
{
netPay=grossPay-(incomeTax+providentFund);
}
//method for print the salary detail of employee
@Override
void printSalary(long basicSalary,String name)
{
System.out.println("*****Employee Salary Detail*****");
System.out.println("Employee Name : "+name);
System.out.println("Basic Salary : "+basicSalary);
System.out.println("Dearness Allowance : "+dearnessAllowance);
System.out.println("Home rent Allowance : "+houseRentAllowance);
System.out.println("Income Tax : "+incomeTax);
System.out.println("Provident Fund : "+providentFund);
System.out.println("grossPay : "+grossPay);
System.out.println("netpay : "+netPay);
}
}

/*Validator class consist methods for validate employee detail by predefined


patterns while adding
and modifying employee detail*/
class Validator extends EmployeeDetail
{

/*validating method for adding employee id*/


static void addId(String id)
{
Scanner scanner=new Scanner(System.in);
boolean match=id.matches("[ace]{3}[0-9]{4}+$");
if(match)
{
boolean result=arraylistId.contains(id);
if(result)
{
System.out.println("Id Already exit");
System.out.println("Enter new id [Ex:ace2233]");
String validId=scanner.next();
Validator.addId(validId);
}
else
{
arraylistId.add(id);
}

}
else
{
System.out.println("Invalid ID format");
System.out.println("Enter Format [Ex:ace2233]");
String validId=scanner.next();
Validator.addId(validId);
}
}
/*validating method for adding employee name*/
static void addName(String name)
{
Scanner scanner=new Scanner(System.in);
boolean match=name.matches("[A_Z]{1}[a-z A-Z]+$");
if(match)
{
arraylistName.add(name);
}
else
{
System.out.println("Invalid name format");
System.out.println("Enter valid name starting with uppercase letter");
String validName=scanner.next();
Validator.addName(validName);
}
}
/*validating method for adding employee email*/
static void addEmail(String email)
{
Scanner scanner=new Scanner(System.in);
String emailRegex="^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]
$";//"[a-z]+[0-9][email protected]{1}+$";
boolean match=email.matches(emailRegex);
if(match)
{
arraylistEmailId.add(email);
}
else
{
System.out.println("Invalid email format");
System.out.println("Enter valid mail(****@gmail.com)");
String validEmail=scanner.next();
Validator.addEmail(validEmail);
}
}
/*validating method for adding employee designation*/
static void addDesignation(String designation)
{
Scanner scanner=new Scanner(System.in);
String designationRegex="[A-Z]{1}[a-zA-Z]+$";
boolean match=designation.matches(designationRegex);
if(match)
{
arraylistDesignation.add(designation);
}
else
{
System.out.println("Invalid input format");
System.out.println("Enter input first letter start with uppercase");
String validDesignation=scanner.next();
Validator.addDesignation(validDesignation);
}
}
/*validating method to add employee date of joining*/
static void addDateofJoining(String dateofJoining)
{
Scanner scanner=new Scanner(System.in);
String regex="[0-9]{2}[-]{1}[A-Z]{1}[a-z]{2}[-]{1}[0-9]{4}";
boolean match=dateofJoining.matches(regex);
if(match)
{
arraylistDateofJoining.add(dateofJoining);
}
else
{
System.out.println("inval date format");
System.out.println("Enter dd-Mon-yyyy[EX:01-Jan-2019] Format");
String validDateofJoining=scanner.next();
Validator.addDateofJoining(validDateofJoining);
}
}
/*validating method to add employee salary*/
static void addSalary(String salary)//validating employee salary
{
Scanner scanner=new Scanner(System.in);
boolean match=salary.matches("[0-9]+$");
if(match)
{
long longSalary=Long.parseLong(salary);
arraylistSalary.add(longSalary);
}
else
{
System.out.println("invalid input");
System.out.println("Enter input in numeric");
String validSalary=scanner.next();
Validator.addSalary(validSalary);
}
}
/*validating method to add employee gender*/
static void addGender(String gender)
{
Scanner scanner=new Scanner(System.in);
boolean match=gender.matches("[Male]{4}||[Female]{6}+$");
if(match)
{
arraylistGender.add(gender);
}
else
{
System.out.println("invalid input");
System.out.println("Enter Male/Female");
String validGender=scanner.next();
Validator.addGender(validGender);
}
}
/*validating method to add employee contact*/
static void addContact(String contact)
{
Scanner scanner=new Scanner(System.in);
boolean match=contact.matches("[5-9]{1}[0-9]{9}+$");
if(match)
{
long longContact=Long.parseLong(contact);
arraylistContact.add(longContact);
}
else
{
System.out.println("invalid Contact");
System.out.println("Enter Contact with 10 digits");
String validContact=scanner.next();
Validator.addContact(validContact);
}
}
/*validating method to add employee date of birth*/
public static boolean addDateofBirth(String dateofBirth)
{
Scanner scanner=new Scanner(System.in);
if(dateofBirth.trim().equals(""))
{
return true;
}
else
{
SimpleDateFormat simpledateformat= new
SimpleDateFormat("MM/dd/yyyy");
simpledateformat.setLenient(false);

try
{
Date javaDate=simpledateformat.parse(dateofBirth);
arraylistDateofBirth.add(dateofBirth);
}catch(ParseException parseexception)
{

System.out.println("Invalid format");
System.out.println("Enter MM/dd/yyyy[Ex:01/01/2020]");
String validDateofBirth=scanner.next();
addDateofBirth(validDateofBirth);
}
return true;
}

}
//**************Validating methods for modify employee details*************//
/*validating method to modify employee name*/
static void modifyName(String name,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=name.matches("[A-Z]{1}[a-z A-Z]+$");
if(match)
{
arraylistName.set(index, name);
}
else
{
System.out.println("invalid name");
System.out.println("Enter name start with uppercase");
String validName=scanner.next();
Validator.modifyName(validName,index);
}
}
/*validating method to add employee gender*/
static void modifyGender(String gender,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=gender.matches("[Male]{4}||[Female]{6}+$");
if(match)
{
arraylistGender.set(index, gender);
}
else
{
System.out.println("invalid input");
System.out.println("Enter Male/Female");
String validGender=scanner.next();
Validator.modifyGender(validGender,index);
}
}
/*validating method to modify employee email*/
static void modifyEmail(String emailId,int index)
{
Scanner scanner=new Scanner(System.in);
String emailRegex="[a-z]+[0-9][email protected]{1}+$";
boolean match=emailId.matches(emailRegex);
if(match)
{
arraylistEmailId.set(index,emailId );
}
else
{
System.out.println("Invalid input");
System.out.println("Enter mail[[email protected]]");
String validEmailid=scanner.next();
Validator.modifyEmail(validEmailid, index);
}
}
/*validating method to modify employee employee designation*/
static void modifyDesignation(String designation,int index)
{
Scanner scanner=new Scanner(System.in);
String designationRegex="[A-Z]{1}[a-zA-Z]+$";
boolean match=designation.matches(designationRegex);
if(match)
{
arraylistDesignation.set(index, designation);
}
else
{
System.out.println("Invalid input");
System.out.println("Enter input start with uppercase");
String validDesignation=scanner.next();
Validator.modifyDesignation(validDesignation, index);
}
}
/*validating method to modify employee date of joining*/
static void modifyDateofJoining(String dateofJoining,int index)
{
Scanner scanner=new Scanner(System.in);
String dateofJoiningRegex="[0-9]{2}[-]{1}[A-Z]{1}[a-z]{2}[-]{1}
[0-9]{4}";
boolean matchFlag=dateofJoining.matches(dateofJoiningRegex);
if(matchFlag)
{
arraylistDateofJoining.set(index, dateofJoining);
}
else
{
System.out.println("invalid format");
System.out.println("Enter dd-Mon-yyyy[EX:01-Jan-2020]
Format");
String validDateofjoining=scanner.next();
Validator.modifyDateofJoining(validDateofjoining, index);
}
}
/*validating method to modify employee salary*/
static void modifySalary(String salary,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=salary.matches("[0-9]+$");
if(match)
{
long longsalary=Long.parseLong(salary);
arraylistSalary.set(index, longsalary);
}
else
{
System.out.println("invalid input");
System.out.println("Enter input in numeric");
String validSalary=scanner.next();
Validator.modifySalary(validSalary, index);
}
}
/*validating method to modify employee contact*/
static void modifyContact(String contact,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=contact.matches("[5-9]{1}[0-9]{9}+$");
if(match)
{
long con=Long.parseLong(contact);
arraylistContact.set(index, con);
}
else
{
System.out.println("invalid Contact");
System.out.println("Enter Contact with 10 digits");
String validContact=scanner.next();
Validator.modifyContact(validContact, index);
}
}
/*validating method to modify employee date of birth*/
public static boolean modifydateofBirth(String dateofBirth,int index)
{
Scanner scanner=new Scanner(System.in);
if(dateofBirth.trim().equals(""))
{
return true;
}
else
{
SimpleDateFormat simpledateformat= new
SimpleDateFormat("MM/dd/yyyy");
simpledateformat.setLenient(false);

try
{
Date javaDate=simpledateformat.parse(dateofBirth);
arraylistDateofBirth.set(index, dateofBirth);
}catch(ParseException parseexception)
{

System.out.println("Invalid format");
System.out.println("Enter in MM/dd/yyyy[EX:01/01/2020]
format");
String validDateofBirth=scanner.next();
modifydateofBirth(validDateofBirth, index);
}
return true;
}

}
}

You might also like