You are on page 1of 58

Introduction

Problem statements:

Currently all activity at find caliber recruitment system are done manually. The
management of the system has the following problems:

1.) Human errors while maintaining the candidate profiles and matching them with the
company requirements.
2.) Missing on sending the right opening when one is available

Goals to be achieved:
1.) To provide a more personal and comprehensive service, which values people as
much as profit.

2.) The system allows the front office personal to accept the candidate details, to
register
for the placement.

3.) The system should allow the front office personals to store the details of the
employers

4.) The system allows matching of the candidates requirements with those of the
openings.

C++ Project 1
Features of OOP:

1. Encapsulation

2. Abstraction

3. Inheritance

4. Polymorphism

C++ Project 2
1. Encapsulation
Encapsulation is the process of hiding all of the details of an object that do not
contribute to its essential characteristics.
Encapsulation implies that the non-essential details of an object are hidden from the
user and an access is provided to its essential details. The complexity is hidden from
the user as a result of encapsulation.
In object oriented methodology, need of encapsulation arises because the emphasis is
on designing classes in such a manner that the classes share data and methods among
themselves .Encapsulation is the feature that provides security to the data and the
methods of a class.

2. Abstraction
An abstraction denotes the essential characteristics of an object that uniquely
distinguishes it from all other kinds of objects and thus crisply defined conceptual
boundaries ,relative to the perspective of the viewer .
Abstraction refers to the attributes of an object that clearly demarcates it from other
objects .To implement abstraction, we also use the encapsulation feature .
encapsulation hides the irrelevant details of an object and abstraction makes only the
relevant details of an object visible .
We use access specifier to implement abstraction and encapsulation.

3. Inheritance
In object-oriented methodology, inheritance enables you to extend the functionality of
an existing class. We create a class that inherits the attributes and the behavior of
another class .In addition, the new class can consist of a new attributes and the
behaviors that are specific to the class .In terms of classes and object, attributes refer to
the methods.
A program can have following types of inheritance:
(a.) Single inheritance
(b.)Multiple inheritance

4. Polymorphism
Polymorphism is derived from two Latin words – poly ,which means many , and
morph, which means forms .Any thing that exist in more than one form is known as
polymorph .
In object-oriented methodology, polymorphism is the feature that enables us to assign a
different meaning or usage to an entity in different contexts. The entity can be a
variable , method ,or an object .Polymorphism enables an entity to have more than one

C++ Project 3
form depending upon the context in which it is used . Polymorphism enables one entity
to be used as a general category for different types of actions.

CASE STUDY: FIND CALIBER RECRUITMENT


SYSTEMS

Background

Find Caliber Recruitment is a popular small business service centre. The


company was started in 1997 by two hardworking and energetic
individuals with a mission, ‘To provide a more personal and
comprehensive service, which values people as much as profit’. It operates
within the commercial sector, finding jobs for people and people for jobs.

Existing System

The services provided by the Find Caliber Recruitment agency can be


broadly categorized into the following two levels:

• Front office services.


• Back office services.

Front Office
The work accomplished by the front office staff of the recruitment agency
can be broadly defined into two levels:

• Finding a new job opening.


• Registering candidates

Finding a New Job Opening


Cathe and Mark are responsible for looking for new job openings through
newspaper advertisements and by contracting companies directly. They
call upon the Human Resources personnel in the companies and ask them
for their requirements and record each company’s profile in a register that
includes the name, address, telephone number, contact person name and e-
mail ID of the company. They also record each company’s requirements,
which include the position vacant, the number of vacancies for a post, the
basic qualification required, the experience required, and the additional
qualification required.

Registering Candidates

C++ Project 4
Niki with the term of four people is responsible for registering the
candidates and sending them for interviews. With his experience and good
conversation skills, he also counsels and candidates, giving a personal
touch in understanding their requirements. The information about the
registered candidates is stored in a file with each candidate’s name, age,
address, telephone number, contact person’s name, e-mail ID,
qualifications, number of year of experience, and a history of the previous
jobs, which includes the company name, address, telephone number,
designation and number of years in the company.

To achieve the objective – to provide a more personal and comprehensive


service, which values people as much as profit, they also note down the
basic requirements of the candidates like mobility, distance, timing etc.

Back Office

The back office operations are handled by the founder members of the
companies, Fedrick Richard and Robert Willfort. After collecting the
required data, Fedrick Richard with the team of four people matches the
details and sends the candidates for interviews in the selected companies.
The process of matching of profiles is a tedious task because it requires a
very logistic approach to follow. First, the assistant to Fedrick Richard
prepares category-wise list of applicants based on the job category.
Further, the list is sorted based on the date of registration and experience
of the candidate. After this, the profile of the candidates and the company
requirement are matched and the interview date, time and venue is decided
and communicated to the candidate through phone or e-mail.

After the candidate is selected, Robert Willford collates the monthly


transaction from the companies and prepares different reports to access the
performance of agency and find new resources.

New markets had to be identified. The agency staff to take more


responsibility for day-to-day operations so that the partners may have
more time to manage – a classic tale of small business development and
growth.

After the brainstorming on the categories of problems faced by the current


employees, the two partners decided to introduce an automated
environment in terms of information technology to reduce the time taken
to prepare sorted lists and to avoid problems such as:

• Human errors while maintaining the candidate profile and matching


them with the company requirements.

C++ Project 5
• Missing on sending the right candidate for the right opening when one
is available.

It will also help them to earn a good will, as the candidates would be able
to query on the job availability and select a suitable job.

Envisioned System
In order to enhance the efficiency of the placement process, the
recruitment agency wants a system that should be simple and easy to
operate so that the candidates can also search for appropriate jobs, while
registering at the front office. The system should provide the facility to
perform the following functions:

• The new system should allow the front office personals to accept the
candidate details, to register for placement. The candidate should be
asked to provide the following information:

 Candidate’s personal particulars such as name, code, age, gender,


address, telephone number, category, email ID and
qualifications.

 Candidate’s experience in years, particulars of the jobs undertaken


such as company’s name, address, telephone number and
designation. It should store the field of work required, the salary
expected, the preferred place of work, and any other relevant
information.

• The new system should also allow the front office personals to store
the details of the employers/ companies. The following details about
the employers/ companies needs to be stored:

 Company’s profile particulars such as name, address, telephone


number, HR’s email ID.

 Company’s requirements such as position vacant, number of


vacancies, basic qualification, experience required, and additional
qualification.

• The system should allow the matching of candidate’s requirements


with those of openings. The placement executive then should inform
the candidates through telephone or e-mail. Candidates should also be
informed about the date, time and venue of the interview.

C++ Project 6
• The new system should update the status of the candidates after he/ she
has been placed.

• The companies should be able to remove the job vacancy after the
vacancy is filled.

• The new system should provide a report of the registrations done by


the company during a particular period.

• The new system should also generate a report giving the details about
the job appointments.

• The new system should generate reports about the pending


requirements and job applicants.

• A revenue collection report should also be displayed.

Proposed Project Structure :

The system should have a monolithic architecture. The option to access


the different parts of the system depends on the username and the
password.

DATE ENTRY MATCHING REPORTS EXIT


PROFILE
SEARCH CANDIDATE
CATEGORY–WISE
CANDIDATE DETAILS (Qualification/ Category wise)
APPLICATIONS LIST
COMPANY
SEARCH JOBS REGISTRATION
EMPLOYER’S
(Position/ Qualification wise) REPORT
DETAILS
PLACEMENT
REPORT

JOB APPOINTMENT
REPORT

REVENUE
COLLECTION
REPORT

PENDING REPORTS

JOB
REQUIREMENTS

C++ Project 7
Proposed Validations:
MODULE VALIDATION REQUIRED

Logon • Checking for valid username and password.


• Enabling menu setting according to user name.
Candidate • Generating Candidate Code

• Accepting additional details like company’s name,


address, telephone number and designation, in
case of an experience candidate.

• Updating the revenue collection file and the


vacancy information, as and when candidate are
placed.
• Checking for complete data while saving.

Company • Generating Company Code.

• Checking for complete date while saving.

C++ Project 8
Hardware requirement for executing the program

A 32-bit processor is required with TurboC++ compiler. TurboC++ provides a


powerful environment called Integrated Development Environment (IDE) for creating
and executing a program. An IDE is an program that allows to write a program using a
built-in editor ,check it for errors by using the built-in debugger , translate it into
machine language by using built-in compiler ,link it ,and execute it.

C++ Project 9
CODING OF THE PROGRAM

#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>

class recruitment
{
private:
char name[25]; /*CANDIDATE DETAILS*/
char code[10];
char age[10];
char gender[10];
char address[51];
char telno[15];
char email[25];
char quali[15];
char exp[10];
char status[15];
char company_name[25];
char desig[15];

char comp_name[25]; /* COMPANY DETAILS*/


char comp_add[50];
char comp_tele[12];
char comp_email[25];
char no_vac[5];
char quali_req[6];
char exp_req[5];

public:
void privacy();
void mainmenu();

void getcandidate();

C++ Project 10
void candidate_submenu();
void candidatefile();
void candidate_disp();
void candidate_search_quali();
void search_submenu();
void candidate_searchmenu();
void candidate_search_fresher();
void candidate_search_exp();
void candidate_del();
void candidate_modi();
void candidate_search_code();

void getcompany();
void company_submenu();
void companyfile();
void company_searchmenu();
void company_disp();
void company_search_quali();
void company_search_vac();
void company_del();
void company_modi();

void report_menu();
void report_placed();
void candidate_placed_disp();
void candidate_pending_disp();
void report_pending();
void company_req_report();
void company_pos_disp();

};

void recruitment::privacy()

{ char ch;
char username[10];
char *password;
clrscr();
cout<<"\t\t......................................................";
cout<<"\n\n\n\t\t\t\WELCOME TO NEW WAY RECRUITMENT
AGECNCY\n\n ";
cout<<"\t\t......................................................\n\n\n\n\t\tENTER USERNAME::";
cin>>username;
cout<<endl;

C++ Project 11
password=getpass("\t\t......................................................\n\n\n\n\t\tENTER THE
PASSWORD::");
if(strcmp(password,"niit")==0&&strcmp(username,"admin")==0)
{
clrscr();
mainmenu();
}
else
{
clrscr();
cout<<"\t\t......................................................";
cout<<"\n\n\n\t\tInvalid Password or Username !!";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\tDo you want to continue? Press(y/n)";
cin>>ch;
getch();
if(ch=='y')
{
clrscr();
privacy();

}
else
exit(0);
}

}
void recruitment::getcandidate()

{ clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter the candidate details:";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\tCandidate Name :";
gets(name);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tCode :";
gets(code);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the age :";
gets(age);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the gender :";
gets(gender);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the address :";

C++ Project 12
gets(address);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the telephone no. :";
gets(telno);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the e-mail id :";
gets(email);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tenter the qualififcation :";
gets(quali);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tStatus(Placed/Not Placed) :";
gets(status);
cout<<"\n\t\t......................................................";
if(strcmp(status,"placed")==0)
{
cout<<"\n\n\n\t\tCompany :" ;
gets(company_name);
cout<<"\n\t\t......................................................";
}
//cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tWork Experience :";
gets(exp);
cout<<"\n\t\t......................................................";
}

void recruitment::getcompany()

{ clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCOMPANY DETAIL";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\tCompany Name :";
gets(comp_name);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tCompany Address :";
gets(comp_add);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tCompany Telephone No :";
gets(comp_tele);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tHR's Email Id :";
gets(comp_email);
cout<<"\n\t\t......................................................";

C++ Project 13
cout<<"\n\n\n\t\tNo of Positions :";
gets(no_vac);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tRequired Qualification :";
gets(quali_req);
cout<<"\n\t\t......................................................";
cout<<"\n\n\n\t\tExperience Required :";
gets(exp_req);
cout<<"\n\t\t......................................................";
}

/*FUNCTION FOR GETTING ADMINISTRATOR MENU*/


void recruitment::mainmenu()

{ clrscr();
int a;
int b=1;
while(b==1)
{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t\t\t\tMENU\n";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t1.Candidate Details";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t2.Company Details";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t3.View Reports";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t4.Search";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\t5.Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\n\t\tEnter Your Choice (1-5):";
cin>>a;
switch(a)
{
case 1: candidate_submenu();
b=2;
break;
case 2: company_submenu();
b=2;
break;
case 3: report_menu();
b=2;
break;

C++ Project 14
case 4: search_submenu();
b=2;
break;

case 5:
exit(0);
b=2;
break;

default:cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tYou Hav Entered A Worng Choice!";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tPress Any Key To Return To Menu";
cout<<"\n\n\t\t......................................................";
getch();
}
}
}

/*FUNCTION FOR CANDIDATE SUBMENU*/


void recruitment::candidate_submenu()

{ clrscr();
char a;
int b=1;
while (b==1)
{

clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCandidate Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t1.Enter Candidate Details";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t2.Delete candidate";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t3.Update Candidate";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t4.Return to Main menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t5.Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Your Choice (1-5):";
cin>>a;
switch(a)

C++ Project 15
{
case '1':candidatefile();
b=2;
break;

case '2':candidate_del();
b=2;
break;

case '3':candidate_modi();
b=2;
break;

case '4':mainmenu();
b=2;
break;
case '5':exit(0);

default:cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tYou Have Entered A wrong Choice";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tPress Any Key To Return To Menu";
cout<<"\n\n\t\t......................................................";
b=2;
getch();

}
}
candidate_submenu();
}

/*FUNCTION FOR COMPANY SUBMENU*/


void recruitment::company_submenu()

{ clrscr();
char a;
int b=1;
while (b==1)
{

clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t1.Enter Company Details";

C++ Project 16
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t2.Delete company detail";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t3.Update Company";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t4.Return to main menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t5.Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Your Choice (1-5):";
cin>>a;
switch(a)
{
case '1':companyfile();
b=2;
break;

case '2':company_del();
b=2;
break;

case '3':company_modi();
b=2;
break;

case '4':mainmenu();
b=2;
break;

case '5':exit(0);

default: cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tYou Have Entered A wrong Choice";
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tPress Any Key To Return To Menu";
b=2;
getch();
}
}
company_submenu();
}

void recruitment::candidatefile()

{ ofstream ofile("new.txt",ios::out|ios::app|ios::binary);

C++ Project 17
char reply='y';
recruitment obj;
while(reply=='y')
{
clrscr();
obj.getcandidate();
ofile.write((char *)&obj,sizeof(obj));

cout<<"\n\n\t\tDo u want to continue (y/n)";


cin>>reply;
}
ofile.close();
candidate_submenu();
}

void recruitment::companyfile()

{ ofstream ofile("company.txt",ios::out|ios::app|ios::binary);
char reply='y';
recruitment obj;
while(reply=='y')
{
clrscr();
obj.getcompany();
ofile.write((char *)&obj,sizeof(obj));
//cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tDo u want to continue (y/n)";
cin>>reply;
}
ofile.close();
company_submenu();
}

/*FUNCTION FOR SEARCH MENU*/


void recruitment::search_submenu()

{ clrscr();
int b=1;
char a;
while(b==1)
{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t\t\tSEARCH MENU";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t1.Search Candidate";

C++ Project 18
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t2.Search Company";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t3.Return to main menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t4.Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Your Choice (1-4):";
cin>>a;
switch(a)
{
case '1':candidate_searchmenu();
b=2;
break;

case '2':company_searchmenu();
b=2;
break;

case '3':mainmenu();
b=2;
break;

case '4':exit(0);
b=2;

default: cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tYou Have Entered A wrong Choice";
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tPress Any Key To Return To Menu";
b=2;
getch();
}
}
search_submenu();
}

/*FUNCTION FOR DISPLAYING CANDIDATE SEARCH MENU*/


void recruitment::candidate_searchmenu()

{ char ch;
int b=1;
clrscr();
while (b==1)
{
clrscr();

C++ Project 19
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCandidate Search Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t1. Search by Qualification";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t2. Search for fresher Candidates";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t3. Search for Experienced Candidates";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t4. Return to Search Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t5. Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Your Choice (1-5):";
cin>>ch;

switch(ch)
{
case '1':candidate_search_quali();
b=2;
break;
case '2':candidate_search_fresher();
b=2;
break;
case '3':candidate_search_exp();
b=2;
break;
case '4':search_submenu();
b=2;
break;

case '5':exit(0);

default:cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tYou have entered a wrong choice";
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tPress any key to return to menu";
cout<<"\n\n\t\t......................................................";
getch();
}

}
candidate_searchmenu();
}

/*FUNCTION FOR COMPANY SEARCH MENU*/

C++ Project 20
void recruitment::company_searchmenu()

{ char ch;
int b=1;
clrscr();
while (b==1)
{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany Search Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t1. Search by Position vacant";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t2. Search by Required qualification";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t3. Return to Search Menu";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\t4. Exit";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Your Choice (1-4):";
cin>>ch;

switch(ch)
{
case '1':company_search_vac();
b=2;
break;
case '2':company_search_quali();
b=2;
break;

case '3': search_submenu();


b=2;
break;
case '4': exit(0);

default:cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tYou have entered a wrong choice";
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tPress any key to return to menu";
cout<<"\n\n\t\t......................................................";
getch();
}
}
}

C++ Project 21
/*FUNCTION FOR DISPLAYING CANDIDATE DETAILS*/
void recruitment::candidate_disp()

{ clrscr();cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCANDIDATE DETAIL";
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCandidate Name : "<<name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCode : "<<code;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tAge : "<<age;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tGender : "<<gender;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tAddress : "<<address;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tTelephone No : "<<telno;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEmail ID : "<<email;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tQualification : "<<quali;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tStatus : "<<status;
if(strcmp(status,"placed")==0)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany : "<<company_name;
cout<<"\n\n\t\t......................................................";
}
else
{
}
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tWork Experience : "<<exp;
cout<<"\n\n\t\t......................................................";
}

/*FUNCTION FOR COMPANY DISPLAY*/


void recruitment::company_disp()

{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCOMPANY DETAIL";
cout<<"\n\n\t\t......................................................";

C++ Project 22
cout<<"\n\n\t\tCompany Name :"<<comp_name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany Address :"<<comp_add;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany Telephone No :"<<comp_tele;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tHR's Email Id :"<<comp_email;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo of Positions :"<<no_vac;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tRequired Qualification :"<<quali_req;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tExperience Required :"<<exp_req;
cout<<"\n\n\t\t......................................................";
}

void recruitment::company_search_quali()

{
clrscr();
char n[20];
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tEnter the qualification : ";
cin>>n;
ifstream ifile("company.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int record=1;
int ino;
int status=0;
while(ifile)
{
clrscr();
ino=strcmp(n,obj.quali_req);
if(ino==0)
{
status=1;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tRecord No. : "<<record++;
cout<<endl;

obj.company_disp();
ifile.read((char *)&obj,sizeof(obj));

C++ Project 23
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(status!=1)
{ cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
company_searchmenu();

void recruitment::company_search_vac()

{
clrscr();
ifstream ifile("company.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int record=1;
int ino;
int status=0;
while(ifile)
{
clrscr();
ino=strcmp(obj.no_vac,"0");
if(ino!=0)
{
status=1;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tRecord No. : "<<record++;
cout<<endl;

obj.company_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else

C++ Project 24
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(status!=1)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
company_searchmenu();
}

void recruitment::candidate_search_quali()

{
clrscr();
char n[20];
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter the qualification : ";
cin>>n;
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int ino;
int status=0;
while(ifile)
{
clrscr();
ino=strcmp(n,obj.quali);
if(ino==0)
{
status=1;
obj.candidate_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}

C++ Project 25
}
if(status!=1)
{ cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();

void recruitment::candidate_search_fresher()
{
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int ino;
int status=0;
while(ifile)
{
clrscr();
ino=strcmp(obj.exp,"0");
if(ino==0)
{
status=1;
obj.candidate_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(status!=1)
{ cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
candidate_searchmenu();
}
void recruitment::candidate_search_exp()
{

C++ Project 26
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int ino;
int status=0;
while(ifile)
{
clrscr();
ino=strcmp(obj.exp,"0");
if(ino!=0)
{
status=1;
obj.candidate_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(status!=1)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
candidate_searchmenu();
}
void recruitment::candidate_del()
{ clrscr();
char ch[30];
int count=0;
recruitment obj;
int pos;

ifstream irec("new.txt",ios::in|ios::binary);
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter candidate Name To Delete: ";
cin>>ch;
irec.seekg(0,ios::beg);

C++ Project 27
while(irec.read((char*)&obj,sizeof(obj)))
{

if(strcmp(obj.name,ch)!=0)
{
ofstream rec("temp.txt",ios::out|ios::cur);
pos=count*sizeof(obj);
rec.seekp(pos,ios::beg);
rec.write((char*)&obj,sizeof(obj));
rec.close();
count=1;
}

irec.close();
remove("new.txt");
rename("temp.txt","new.txt");
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tDeletion Completed Successfully";
cout<<"\n\n\t\t......................................................";
getch();

if(count!=1)
{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo match found";
cout<<"\n\n\t\t......................................................";
getch();
}
candidate_searchmenu();
getch();
}

void recruitment::candidate_modi()
{
char n[30];
int count=0;
long int pos;
recruitment obj;
clrscr();
cin.ignore();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Candidate name : ";
gets(n);

C++ Project 28
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);

while(ifile.read((char *)&obj,sizeof(obj)))
{
if(strcmp(obj.name,n)==0)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter new record : ";
obj.getcandidate();
ofstream ofile("new.txt",ios::cur);
pos=count*sizeof(obj);
ofile.seekp(pos,ios::beg);
ofile.write((char *)&obj,sizeof(obj));
ofile.close();
candidate_submenu();
return;
}
count++;
}
ifile.close();
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tRecord Not Found!!!";
cout<<"\n\n\t\t......................................................";
getch();
candidate_submenu();
}
void recruitment::company_del()
{
clrscr();
char ch[30];
int count=0;
recruitment obj;
int pos;

ifstream irec("company.txt",ios::in|ios::binary);
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Company Name To Delete: ";
cin>>ch;
irec.seekg(0,ios::beg);
while(irec.read((char*)&obj,sizeof(obj)))
{

C++ Project 29
if(strcmp(obj.name,ch)!=0)
{
ofstream rec("temp.txt",ios::out|ios::cur);
pos=count*sizeof(obj);
rec.seekp(pos,ios::beg);
rec.write((char*)&obj,sizeof(obj));
rec.close();
count=1;
}

irec.close();
remove("company.txt");
rename("temp.txt","company.txt");
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tDeletion Completed Successfully";
cout<<"\n\n\t\t......................................................";
getch();

if(count!=1)
{
clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo match found";
cout<<"\n\n\t\t......................................................";
getch();
}
}

void recruitment::company_modi()
{
char n[30];
int count=0;
long int pos;
recruitment obj;
clrscr();
cin.ignore();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter Company name to be updated : ";
gets(n);

ifstream ifile("company.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);

C++ Project 30
while(ifile.read((char *)&obj,sizeof(obj)))
{
if(strcmp(obj.comp_name,n)==0)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEnter new record : ";
obj.getcompany();
ofstream ofile("company.txt",ios::cur);
pos=count*sizeof(obj);
ofile.seekp(pos,ios::beg);
ofile.write((char *)&obj,sizeof(obj));
ofile.close();
company_submenu();
return;
}
count++;
}
ifile.close();
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tRecord Not Found!!!";
getch();
company_submenu();
}

void recruitment::report_menu()
{
clrscr();
char a;
int b=1;
while (b==1)
{

clrscr();
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tReports Menu";
cout<<"\n\n\t\t......................................................";

cout<<"\n\n\t\t1.Candidates Placed";
cout<<"\n\n\t\t......................................................";

cout<<"\n\n\t\t2.Candidates pending";
cout<<"\n\n\t\t......................................................";

cout<<"\n\n\t\t3.Return to main menu";

C++ Project 31
cout<<"\n\n\t\t......................................................";

cout<<"\n\n\t\t4.Exit";
cout<<"\n\n\t\t......................................................";

cout<<"\n\n\t\tEnter Your Choice (1-4):";


cin>>a;
switch(a)
{
case '1':report_placed();
b=2;
break;

case '2':report_pending();
b=2;
break;

case '3':mainmenu();
b=2;
break;

case '4':exit(0);

default:
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tYou Have Entered A wrong Choice";
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tPress Any Key To Return To Menu";
cout<<"\n\n\t\t......................................................";
getch();
}
}
}

void recruitment::candidate_placed_disp()
{

cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCandidate Name : "<<name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCode : "<<code;
cout<<"\n\n\t\t......................................................";

C++ Project 32
cout<<"\n\n\t\tAddress : "<<address;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tTelephone No : "<<telno;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEmail ID : "<<email;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tQualification : "<<quali;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tcompany : "<<company_name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tWork Experience : "<<exp;
cout<<"\n\n\t\t......................................................";
cout<<endl;
}

void recruitment::candidate_pending_disp()
{

cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCandidate Name : "<<name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCode : "<<code;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tAddress : "<<address;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tTelephone No : "<<telno;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tEmail ID : "<<email;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tQualification : "<<quali;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tWork Experience : "<<exp;
cout<<"\n\n\t\t......................................................";
cout<<endl;
}

void recruitment::company_pos_disp()
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tCompany Name : "<<comp_name;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNumber Of Vacancies : "<<no_vac;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tQualification Required : "<<quali_req;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tExperienced Required : "<<exp_req;

C++ Project 33
cout<<"\n\n\t\t......................................................";
cout<<endl;
}

void recruitment::report_placed()
{

clrscr();
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int record=1;
int ino;
int status=0;
while(ifile)
{
ino=strcmp(obj.status,"placed");
if(ino==0)
{
status=1;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tRecord No. : "<<record++;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tPlaced Candidates";
cout<<"\n\n\t\t......................................................";
obj.candidate_placed_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(status!=1)
{
cout<<"\n\n\t\t......................................................";
cout<<endl<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
report_menu();
}

C++ Project 34
void recruitment::report_pending()
{

clrscr();
ifstream ifile("new.txt",ios::in|ios::binary);
ifile.seekg(0,ios::beg);
recruitment obj;
ifile.read((char *)&obj,sizeof(obj));
int record=1;
int ino;
int count=0;
while(ifile)
{
ino=strcmp(obj.status,"placed");
if(ino!=0)
{
count=1;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tRecord No. : "<<record++;
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tPending Candidates";
cout<<"\n\n\t\t......................................................";
obj.candidate_pending_disp();
ifile.read((char *)&obj,sizeof(obj));
getch();
}
else
{
ifile.read((char *)&obj,sizeof(obj));
}
}
if(count!=1)
{
cout<<"\n\n\t\t......................................................";
cout<<"\n\n\t\tNo matching record found...";
cout<<"\n\n\t\t......................................................";
getch();
}
ifile.close();
report_menu();
}

void main()
{
recruitment a;

C++ Project 35
a.privacy();

C++ Project 36
OUTPUT

Checking for authenticity by entering username and password:

C++ Project 37
C++ Project 38
Candidate’s menu:

C++ Project 39
Entering Candidate’s Detail:

C++ Project 40
Deleting a candidate:

C++ Project 41
For updating candidate’s detail:

C++ Project 42
Updated detail:

C++ Project 43
Company’s menu:

C++ Project 44
Entering company’s detail:

Deleting a company’s detail:

C++ Project 45
Updating a company’s detail:

C++ Project 46
Updated company details:

C++ Project 47
Reports Menu:

C++ Project 48
Candidates pending:

C++ Project 49
C++ Project 50
Candidate’s search menu:

C++ Project 51
Search by qualification:

C++ Project 52
Output window for fresher candidate

C++ Project 53
Output Window for experienced candidate:

C++ Project 54
Company search menu:

C++ Project 55
Search by Position vacant:

C++ Project 56
Search by qualification required:

C++ Project 57
Conclusion

Working on the project was a good experience .I understands the importance of


planning and designing as a part of the software development.

Developing the project has helped us to gain some experience on real time
development procedures.

C++ Project 58