Project Report On Libarary management System | Inheritance (Object Oriented Programming) | Class (Computer Programming)

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 email 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:

C++ Project

Human errors while maintaining the candidate profile and matching
them with the company requirements.

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.

C++ Project

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.

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
CANDIDATE DETAILS
COMPANY
EMPLOYER’S
DETAILS

MATCHING
PROFILE
SEARCH CANDIDATE
(Qualification/ Category wise)
SEARCH JOBS
(Position/ Qualification wise)

REPORTS

EXIT

CATEGORY–WISE
APPLICATIONS LIST
REGISTRATION
REPORT
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.

Candidate


Enabling menu setting according to user name.
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.

Generating Company Code.

Checking for complete date while saving.

Company

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];
char comp_add[50];
char comp_tele[12];
char comp_email[25];
char no_vac[5];
char quali_req[6];
char exp_req[5];

/* COMPANY DETAILS*/

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.