Pranav Kumar. Rajasthan Institute of Engineering & Technology Jaipur, Rajasthan
Pranav Kumar. Rajasthan Institute of Engineering & Technology Jaipur, Rajasthan
Pranav Kumar. Rajasthan Institute of Engineering & Technology Jaipur, Rajasthan
Pranav Kumar.
Submitted
In partial fulfilment of the requirements of Degree of,
Jaipur-302026, Rajasthan.
2|Page
Acknowledgement
In the partial fulfilment of the successful completion of my, Degree course of Bachelor of
Technology in Computer Science & Engineering I needed to undergo Industrial Training for
a period of 30 working days.
I underwent my Industrial Training for the aforementioned period of time at one the apex
producers of Urea in Our Country, in fact the third largest in Asia; IFFCO, At IFFCO’S Aonla
Unit.
I would like to take this opportunity to extend my heartfelt sense of gratitude to the
following persons listed below, for providing me the opportunity to have my training done
in a cordial and healthy competitive environment.
And, last but not the least I would also like to extend my deepest gratitude, to my Uncle Sri
Giridhar Mishra (DGM, Mechanical) and his mentorship which led to the successful
completion of my training and my project as well.
Pranav Kumar.
3|Page
Table of Contents
4|Page
Organisation’s Overview
IFFCO-An Epitome of Organisation
Remarks made by the former President and one of the most brilliant technical brains of India;
Mr A.P.J Abdul Kalam in his Independence Day address the nation:
“Our private sector has made a significant contribution and progress in food processing
industries, whereas there is a need for rural farmers cooperative in partnership with banking
institutions, on the pattern of the Indian Farmers Fertilizer Cooperative Limited”. Aptly sums up
the sage of its success.
During mid- sixties the Co-operative sector in India was responsible for distribution of 70 per
cent of fertilisers consumed in the country. This Sector had adequate infrastructure to
distribute fertilisers but had no production facilities of its own and hence dependent on
public/private Sectors for supplies. To overcome this lacuna and to bridge the demand
supply gap in the country, a new cooperative society was conceived to specifically cater to
the requirements of farmers. It was an unique venture in which the farmers of the country
through their own Co-operative Societies created this new institution to safeguard their
interests. The number of co-operative societies associated with IFFCO have risen from 57 in
1967 to 39,824 at present.
Indian Farmers Fertiliser Co-operative Limited (IFFCO) was registered on November 3, 1967
as a Multi-unit Co-operative Society. On the enactment of the Multistate Cooperative
Societies act 1984 & 2002, the Society is deemed to be registered as a Multistate
Cooperative Society. The Society is primarily engaged in production and distribution of
fertilisers. The byelaws of the Society provide a broad frame work for the activities of IFFCO
as a Cooperative Society.
IFFCO commissioned an ammonia - urea complex at Kalol and the NPK/DAP plant at Kandla
both in the state of Gujarat in 1975. Another ammonia - urea complex was set up at Phulpur
in the state of Uttar Pradesh in 1981. The ammonia - urea unit at Aonla was commissioned
in 1988.
In 1993, IFFCO had drawn up a major expansion programme of all the four plants under
overall aegis of IFFCO VISION 2000. The expansion projects at Aonla, Kalol, Phulpur and
Kandla have been completed on schedule. Thus all the projects conceived as part of Vision
2000 have been realised without time or cost overruns. All the production units of IFFCO
have established a reputation for excellence and quality. A new growth path has been
chalked out to realise newer dreams and greater heights through Vision 2010 which is
presently under implementation. As part of the new vision, IFFCO has acquired fertiliser unit
5|Page
at Paradeep in Orissa in September 2005. As a result of these expansion projects and
acuisition, IFFCO's annual capacity has been increased to 3.69 million tonnes of Urea and
NPK/DAP equivalent to 1.71 million tonnes of P2O5.
IFFCO has made strategic investments in several joint ventures. Godavari Fertilisers and
Chemicals Ltd (GFCL) & Indian Potash Ltd (IPL) in India, Industries Chimiques du Senegal
(ICS) in Senegal and Oman India Fertiliser Company (OMIFCO) in Oman are important
fertiliser joint ventures. As part of strategic diversification, IFFCO has entered into several
key sectors. IFFCO-Tokio General Insurance Ltd (ITGI) is a foray into general insurance
sector. Through ITGI, IFFCO has formulated new services of benefit to farmers. 'Sankat
Haran Bima Yojana' provides free insurance cover to farmers along with each bag of IFFCO
fertiliser purchased. To take the benefits of emerging concepts like agricultural commodity
trading, IFFCO has taken equity in National Commodity and Derivative Exchange (NCDEX)
and National Collateral Management Services Ltd (NCMSL). IFFCO Chattisgarh Power Ltd
(ICPL) which is under implementation is yet another foray to move into core area of power.
IFFCO is also behind several other companies with the sole intention of benefitting farmers.
At IFFCO, the thirst for ever improving the services to farmers and member co-operatives is
insatiable, commitment to quality is insurmountable and harnessing of mother earths'
bounty to drive hunger away from India in an ecologically sustainable manner is the prime
mission. All that IFFCO cherishes in exchange is an everlasting smile on the face of Indian
Farmer who form the moving spirit behind this mision.
IFFCO, to day, is a leading player in India's fertiliser industry and is making substantial
contribution to the efforts of Indian Government to increase foodgrain production in the
country.
6|Page
Abstract.
A well planned, systematically executed industrial training helps a great deal in inculcating a
good work culture. It provides a linkage between students and the industry in order to
develop awareness of the industrial approach to problem solving based on broad
understanding of operations of the industrial organizations.
This project on “Employee Management System” allows a user to add, list, update, delete
various basic attributes of employees like name, employee code, salary, designation etc.
It’s a menu driven programme, which takes input from the user and processes the various
needs as and when required by him/her.
The tools and technologies used for developing the software are C++ compiler for analysis and
design phases for developing the code for the application on Microsoft windows platform, C++ IDE.
7|Page
Software Development Process.
The international standard for describing the method of selecting, implementing and
monitoring the life cycle for software is ISO 12207.
A decades-long goal has been to find repeatable, predictable processes that improve
productivity and quality. Some try to systematize or formalize the seemingly unruly task of
writing software. Others apply project management techniques to writing software. Without
project management, software projects can easily be delivered late or over budget. With
large numbers of software projects not meeting their expectations in terms of functionality,
cost, or delivery schedule, effective project management appears to be lacking.
Organizations may create a Software Engineering Process Group (SEPG), which is the focal
point for process improvement. Composed of line practitioners who have varied skills, the
group is at the center of the collaborative effort of everyone in the organization who is
involved with software engineering process improvement.
8|Page
Planning
Once the general requirements are gathered from the client, an analysis of the scope of the
development should be determined and clearly stated. This is often called a scope
document.
Certain functionality may be out of scope of the project as a function of cost or as a result of
unclear requirements at the start of development. If the development is done externally,
this document can be considered a legal document so that if there are ever disputes, any
ambiguity of what was promised to the client can be clarified.
All possible requirements of the software to be developed are gathered in this phase.
Requirements are set of functionalities and constraints that the end-user expects from it.
The requirements are gathered from the end-user by consultations, these requirements are
analyzed for their validity and the possibility of incorporating the requirements in the
software to be developed is also studied. Finally a Requirement Specification Document is
created which serves the purpose of guideline to the next phase the development process.
In our case all the requirements have been gathered and figured out, like C++ Compiler and
other user requirements. After the choice of programming language is made then the
developer must have all the pre-requirements of that particular language. Like in this
project of Employee Management System in C++, must be done through the C++ feature of
file handling.
Before starting for actual coding, it is highly important to understand what we are going to
create and what it should like that? The requirement specifications from the first place are
studied in this phase and the software design is prepared. Software Design helps in
specifying hardware and system requirements and also helps in defining the overall
software architecture.
9|Page
In our case the program (s/w) is to be developed in C++ programming language and the
software design is thought of that how it can be implemented in IDE environment. This
project works just like a twice folded piece of paper. On the first face there is a login screen,
after a successful login; main menu is available, through which one exercises his/her choice
and can get access to the files to which one can write data, and can retrieve and manipulate
through a series of functions, as and when required.
On receiving the s/w design documents, the work is divided into modules/units and actual
coding is started. The s/w is first developed in small programs called units, which are
integrated in the next phase. Each unit is developed and tested for its functionality; this is
referred to as unit testing. Unit testing mainly verifies if the modules/units meet their
specifications or not.
As specified above, the system is first divided in units which are developed and tested for
their functionalities. These units are integrated into a complete system during integration
phase and tested to check if all modules/units coordinate between one another and the s/w
as a whole behaves as per the specifications. After successfully testing the software, it’s
delivered to the customer.
This is virtually never ending phase. Generally, problems with the developed software come
up after its practical use starts, so the issues related to the system, are solved after
deployment of the software. Not all the problems come in picture directly but they arise
time to time and needs to be solved; hence this process is referred as “maintenance”.
10 | P a g e
Screen Shot#1: Ctrl+f9= Shows us the main menu or the program, like above.
Screen Shot#2: On choosing the build table option the above screen is shown in
which we add the no. of records that we want to add and provide with the details.
11 | P a g e
Screen Shot#3: The records of an employee is added to the table and the table is
ready to take next set of inputs.
Screen Shot#4: It lists the various records that are available, when the list table
option is selected from the main menu.
12 | P a g e
Screen Shot#5: When Insert Record option is selected from the main menu, details
are added to the database.
Screen Shot#6: When Delete entry option is chosen from the main menu, it takes
input from user and deletes the details from the database of that employee.
13 | P a g e
Screen Shot#7: When edit a record option is chosen from the main menu.
Screen Shot#8: When edit option is chosen, the above edit menu is displayed.
14 | P a g e
Screen Shot#9: When Search option is chosen from the main menu, and the search is
carried on through employee/code.
Screen Shot#10: When the sort record option is chosen from the main menu, takes
the input(choice) from user and then sorts the available records as per the choice.
15 | P a g e
Source Code C++
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<dos.h>
#include<conio.h>
#define max 20
struct employee
{
char name[20];
long int code;
char designation[20];
int age;
char deptt[10];
float sal;
};
int num;
employee
emp[max],tempemp[max],sortemp[max],sortemp1[max];
void main()
{ char option;
clrscr();
void build();
void list();
void insert();
void deletes();
void edit();
void search();
void sort();
void menu();
menu();
while((option=cin.get())!='0')
{
16 | P a g e
switch(option)
{
case'1':
build();
break;
case'2':
list();
break;
case'3':
insert();
break;
case'4':
deletes();
break;
case'5':
edit();
break;
case'6':
search();
break;
case'7':
sort();
break;
}
menu();
}
}
void menu()
{
clrscr();
cout<<"\n\n\t--Welcome to Employee
Management System--\n";
cout<<"\t\t******************************************
************\n\n";
17 | P a g e
cout<<" Choose from the
Options:-\n";
cout<<"\t\t------------------------------------------
---------------\n";
cout<<"\t 1.Build Table.\n";
cout<<"\t 2.List Table.\n";
cout<<"\t 3.Insert A New Entry\n";
cout<<"\t 4.Delete An Entry.\n";
cout<<"\t 5.Edit An Entry.\n";
cout<<"\t 6.Search a record.\n";
cout<<"\t 7.Sort the Table.\n";
cout<<"\t 0.QUIT\n\n";
void build()
{
clrscr();
18 | P a g e
cout<<endl<<endl;
}
cout<<"\t Going back to main menu";
}
void list()
{
clrscr();
cout<<setw(10)<<emp[i].designation;
cout<<setw(10)<<emp[i].age;
cout<<setw(10)<<emp[i].deptt;
cout<<setw(10)<<emp[i].sal;
cout<<endl;
}
cout<<"\n\t Going back to Main menu";
getch();
}
void insert()
{
clrscr();
int i=num;
num+=1;
19 | P a g e
cout<<"\t Name:";
cin>>emp[i].name;
cout<<"\t Code:";
cin>>emp[i].code;
cout<<"\t Designation:";
cin>>emp[i].designation;
cout<<"\t Age:";
cin>>emp[i].age;
cout<<"\t Department:";
cin>>emp[i].deptt;
cout<<"\t Salary:";
cin>>emp[i].sal;
cout<<endl<<endl;
cout<<"\n\t Going back to Main menu";
getch();
}
void deletes()
{
clrscr();
int code;
int check;
cout<<"\n\n\t Delete an Entry \n";
cout<<endl;
cout<<"\n\t Enter a jobcode to delete
that entry";
cin>>code;
int i;
for(i=0;i<=num-1;i++)
{
if(emp[i].code==code)
{
check=i;
}
}
for(i=0;i<=num-1;i++)
{
if(i==check)
{
continue;
20 | P a g e
}
else
{
if(i>check)
{
tempemp[i-
1]=emp[i];
}
else
{
tempemp[i]=emp[i];
}
}
}
num--;
for(i=0;i<=num-1;i++)
{
emp[i]=tempemp[i];
}
}
void edit()
{
clrscr();
int jobcode;
cout<<"\n\t Edit An Entry ";
cout<<endl;
cout<<endl;
int i;
void editmenu();
void editname(int);
void editcode(int);
void editdes(int);
void editage(int);
void editdept(int);
void editsal(int);
char choice;
21 | P a g e
editmenu();
for(i=0;i<=num-1;i++)
{
if(emp[i].code==jobcode)
{
while((choice=cin.get())!='0')
{
switch(choice)
{
case'1':
editname(i);
break;
case'2':
editcode(i);
break;
case'3':
editdes(i);
break;
case'4':
editage(i);
break;
case'5':
editdept(i);
break;
case'6':
editsal(i);
break;
22 | P a g e
}
editmenu();
}
}
}
}
void editmenu()
{
clrscr();
cout<<"\n\t\t What do you want to
edit? \n";
cout<<"\t 1.Name.\n";
cout<<"\t 2.Code.\n";
cout<<"\t 3.Designation.\n";
cout<<"\t 4.Age.\n";
cout<<"\t 5.Department.\n";
cout<<"\t 6.Salary.\n";
cout<<"\t 0.QUIT\n\n";
cout<<"\n\n";
cout<<"\t Enter your choice: ";
}
void editname(int i)
{
cout<<"Enter New Name:";
cin>>emp[i].name;
}
void editcode(int i)
{
cout<<"Enter New Code:";
cin>>emp[i].code;
}
void editdes(int i)
{
cout<<"Enter New Designation:";
cin>>emp[i].designation;
}
void editage(int i)
{
cout<<"Enter New Age:";
cin>>emp[i].age;
}
23 | P a g e
void editdept(int i)
{
cout<<"Enter New Department:";
cin>>emp[i].deptt;
}
void editsal(int i)
{
cout<<"Enter New Salary:";
cin>>emp[i].sal;
}
void search()
{
clrscr();
cout<<"\n\t----Welcome to Search of
employee database---\n";
cout<<endl;
cout<<endl;
int jobcode;
cout<<"\t You can Search Only By Jobcode
of an Employee.";
cout<<"\n\t Enter code of an
Employee:\n";
cin>>jobcode;
for(int i;i<=num-1;i++)
{
cout<<"Name Code
Designation Age Department Salary";
cout<<"----------------------------------------------
-------------------\n";
cout<<setw(10)<<emp[i].name;
cout<<setw(6)<<emp[i].code;
cout<<setw(10)<<emp[i].designation;
cout<<setw(10)<<emp[i].age;
cout<<setw(10)<<emp[i].deptt;
cout<<setw(10)<<emp[i].sal;
cout<<endl;
cout<<endl;
}
24 | P a g e
cout<<"\t Going back to Main menu.";
getch();
}
void sort()
{
clrscr();
cout<<"n\n\t Sort the Database by
Jobcode\n";
cout<<"--------------------------------------\n";
void sortmenu();
void sortname();
void sortcode();
char choice;
cout<<endl<<endl;
sortmenu();
while((choice=cin.get())!='0')
{
switch(choice)
{
case'1':
sortname();
break;
case'2':
sortcode();
break;
}
sortmenu();
}
}
void sortmenu()
{
clrscr();
cout<<"\n\n\t----You Can Sort
By:------\n:";
cout<<"-----------------------------------\n";
25 | P a g e
cout<<"\t 1.Name.\n";
cout<<"\t 2.Code.\n";
cout<<"\t 0.QUIT.\n";
cout<<"\n\n";
cout<<"\t Enter your choice:";
}
void sortname()
{
clrscr();
int i,j;
struct employee temp[max];
for(i=0;i<=num-1;i++)
{
sortemp1[i]=emp[i];
}
for(i=0;i<=num-1;i++)
{
for(j=0;j<=num-1;j++)
{
if(strcmp(sortemp1[i].name,sortemp1[j].name)<=0)
{
temp[i]=sortemp1[i];
sortemp1[i]=sortemp1[j];
sortemp1[j]=temp[i];
}
}
}
for(i=0;i<=num-1;i++)
{
cout<<"Name Code
Designation Age Department Salary";
cout<<"----------------------------------------------
------------------\n";
for(i=0;i<=num-1;i++)
{
cout<<setw(10)<<sortemp1[i].name;
26 | P a g e
cout<<setw(6)<<sortemp[i].code;
cout<<setw(10)<<sortemp1[i].designation;
cout<<setw(10)<<sortemp1[i].age;
cout<<setw(10)<<sortemp1[i].deptt;
cout<<setw(10)<<sortemp1[i].sal;
cout<<endl;
}
cout<<"\t Press any key go
back";
getch();
}
}
void sortcode()
{
clrscr();
int i,j;
struct employee temp[max];
for(i=0;i<=num-1;i++)
{
sortemp1[i]=emp[i];
}
for(i=0;i<=num-1;i++)
{
for(j=0;j<=num-1;j++)
{
if(sortemp1[i].code<sortemp1[j].code)
{
temp[i]=sortemp1[i];
sortemp1[i]=sortemp1[j];
sortemp1[j]=temp[1];
}
}
}
for(i=0;i<=num-1;i++)
27 | P a g e
{
cout<<"Name Code Designation
Age Department Salary";
cout<<"----------------------------------------------
-------------------\n";
for(i=0;i<=num-1;i++)
{
cout<<setw(13)<<sortemp1[i].name;
cout<<setw(6)<<sortemp1[i].code;
cout<<setw(15)<<sortemp1[i].designation;
cout<<setw(10)<<sortemp1[i].age;
cout<<setw(15)<<sortemp1[i].deptt;
cout<<setw(10)<<sortemp1[i].sal;
cout<<endl;
cout<<endl;
}
cout<<"\t Press Any Key to Go Back";
getch();
}
}
28 | P a g e
Conclusion
This project on “Employee Management System” allows a user to add, list, update, delete
various basic attributes of employees like name, employee code, salary, designation etc.
It’s a menu driven programme, which takes input from the user and processes the various
needs as and when required by him/her.
29 | P a g e
Bibliography
1.OOP with C++ by E. Balagurusamy ,Tata-McGraw Hill publications.
30 | P a g e