LIC MANAGEMENT SYSTEM

Similar documents
Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

MONEY BACK PLANS. For the year the two rates of investment return declared by the Life Insurance Council are 6% and 10% per annum.

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 3: Input/Output

An Incomplete C++ Primer. University of Wyoming MA 5310

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

El Dorado Union High School District Educational Services

Chapter One Introduction to Programming

Illustration 1: Diagram of program function and data flow

ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters

Basics of I/O Streams and File I/O

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

COMPUTER SCIENCE 1999 (Delhi Board)

13 Classes & Objects with Constructors/Destructors

I PUC - Computer Science. Practical s Syllabus. Contents

The C Programming Language course syllabus associate level

The Payroll Program. Payroll

Lecture 3. Arrays. Name of array. c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] Position number of the element within array c

JEEVAN VISHWAS. Table No. 136 V.K.Sastry Marketing Manager LIC, D.O., Secunderabad

LIFE INSURANCE CORPORATION OF INDIA CENTRAL OFFICE. Yogakshema Jeevan Bima Marg, MUMBAI Ref: Mktg./ZD/ 17 /

- LIFE INSURANCE CORPORATION OF INDIA CENTRAL OFFICE. Dept.: Product Development Jeevan Bima Marg, Mumbai

Sources: On the Web: Slides will be available on:

C++ Input/Output: Streams

LIC S KOMAL JEEVAN VS. ICICI S SMART KID & TATA AIG S MAHALIFE JR.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

The programming language C. sws1 1

Introduction to SQL for Data Scientists

Introduction to Python

Sequential Program Execution

Course Title: Software Development

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

Formatting Numbers with C++ Output Streams

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

Moving from CS 61A Scheme to CS 61B Java

Stacks. Linear data structures

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

Passing 1D arrays to functions.

Object Oriented Software Design II

Informatica e Sistemi in Tempo Reale

Hypercosm. Studio.

How To Write Portable Programs In C

Module 816. File Management in C. M. Campbell 1993 Deakin University

INFORMATION TO BE PROVIDED IN SALES BROCHURE. LIC s NEW JEEVAN ANAND (UIN: 512N279V01)

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

C++ INTERVIEW QUESTIONS

Welcome to Business Internet Banking

C++ Language Tutorial

The actual term and the premium paying term for these plans are as under.

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT COURSE CURRICULUM. Course Title: Advanced Computer Programming (Code: )

Java Interview Questions and Answers

Integrated Accounting System for Mac OS X and Windows

Introduction to Java

PREMIUM AND BONUS. MODULE - 3 Practice of Life Insurance. Notes

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering

Number Representation

MS Visual C++ Introduction. Quick Introduction. A1 Visual C++

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python

J a v a Quiz (Unit 3, Test 0 Practice)

Computer Science 2nd Year Solved Exercise. Programs 3/4/2013. Aumir Shabbir Pakistan School & College Muscat. Important. Chapter # 3.

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Creating Database Tables in Microsoft SQL Server

CS 241 Data Organization Coding Standards

Introduction to Programming II Winter, 2014 Assignment 2

Programming Languages CIS 443

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...

Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)

PL / SQL Basics. Chapter 3

So far we have considered only numeric processing, i.e. processing of numeric data represented

Part 1 Foundations of object orientation

V850E2/ML4 APPLICATION NOTE. Performance Evaluation Software. Abstract. Products. R01AN1228EJ0100 Rev Aug. 24, 2012

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall

ENDOWMENT PLANS. The Future Solution

LIFE INSURANCE CORPORATION OF INDIA CENTRAL OFFICE. Ref.: Actuarial/2090/4 1 st November 2006

20 Using Scripts. (Programming without Parts) 20-1

14 December 2005, Report I. I. Conceptual overview of a Whole Life Plan. An individual is exposed to 2 types of risks:

Compiler Construction

Embedded SQL programming

LIC s Jeevan Tarang Table No. 178

Answers to Review Questions Chapter 7

Unit-Linked Insurance Policies in the Indian Market- A Consumer Perspective

Jorix kernel: real-time scheduling

The While Loop. Objectives. Textbook. WHILE Loops

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

USE OF HYPERVIDEO FOR TEACHING C/C++ Luiz-Alberto Vieira-Dias Andre Catoto-Dias

L IC s Jeevan A nkur. P lan N o. 807

How To Pay Out Of Pocket On A Unit Linked Life Insurance Plan

/* File: blkcopy.c. size_t n

Creating Tables ACCESS. Normalisation Techniques

System Calls Related to File Manipulation

Object Oriented Software Design

Vision Endowment Plan

Appendix K Introduction to Microsoft Visual C++ 6.0

Pemrograman Dasar. Basic Elements Of Java

DESIGN: A Program to Create Data Entry Programs

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Transcription:

LIC MANAGEMENT SYSTEM C++ PROJECT REPORT M.S.Ramaiah Institute of Technology Dept. of Electronics and Instrumentation Engineering Submitted to: S.Elavaar Kuzhali Assistant Professor Submitted By: Pushkarini.R.K - 1MS12IT036 Rachitha Shetty 1MS12IT037 Rajat Mishra 1MS12IT038 Rajat Rokade 1MS12IT039 Rakesh Mishra 1MS12IT041 Raunak Pandey 1MS12IT042 Reshma R 1MS12IT043 Sakshi 1MS11IT046 1 P a g e

CONTENTS 1. Certificate Page no 3 2. Acknowledgement Page no 4 3. Project Abstract Page no 5 4. Header Files Page no 6 5. Structures Page no 7 6. Functions Page no 8 14 7. Flow Chart Page no 15 8. Source Code Page no 16 43 9. Screen Shots Page no 44 46 10. Conclusion Page no 47 2 P a g e

CERTIFICATE We hereby certify that the work which is being presented in the c++ Project report entitled LIC MANAGEMENT SYSTEM has been submitted to the Department of Electronics and Instrumentation Engineering, M.S.Ramaiah Institute of Technology, Bangalore, India is an authentic record of our own work carried out during a period of October-2014 under the supervision of S.ELAVAAR KUZHALI, Assistant Professor, Electronics and Instrumentation Engineering Department. Signature of Students Pushkarini.R.K (1MS12IT036), Rachitha Shetty (1MS12IT037), Rajat Mishra (1MS12IT038), Rajat Rokade (1MS12IT039), Rakesh Mishra (1MS12IT041), Raunak Pandey (1MS12IT042), Reshma R (1MS12IT043) Sakshi (1MS11IT046) This is to certify that the above statements made by us is correct to the best of our knowledge. Signature of Supervisor: S. Elavaar Kuzhali Associate Professor Dept. of Electronics and Instrumentation Engineering M.S.Ramaiah Institute of Technology 3 P a g e

ACKNOWLEDGEMENT We would like to express our special thanks of gratitude to our Professor S.Elavaar Kuzhali, Dept. of Electronics and Instrumentation Engineering, M.S.Ramaiah Institute of Technology who gave us an opportunity to do this project on the topic LIC MANAGEMENT SYSTEM, which helped us in understanding the subject very well and also gave us an exposure to many new concepts. It also helped us to understand how a group work is being carried and to work efficiently as a team member. Secondly we would also like to thank our parents and friends who helped us a lot in finalizing this project within the limited time frame. Signature by: Pushkarini.R.K - 1MS12IT036 Rachitha Shetty 1MS12IT037 Rajat Mishra 1MS12IT038 Rajat Rokade 1MS12IT039 Rakesh Mishra 1MS12IT041 Raunak Pandey 1MS12IT042 Reshma R 1MS12IT043 Sakshi 1MS11IT046 4 P a g e

PROJECT ABSTRACT LIC Database system will help both customers and their agents to know about the current policies and enabling customers to select policies as per their choice. To start this projects, users have to just run the project and its user friendly menu items will help both its customers and agents to handle this LIC database management system easily. Whenever you run the program, it will start with loading screen as below: Whenever loading completes, the next screen will be the LIC welcome screen where they are given choice to select the correct options as per their need. If you want to go the customer section then you have to select its option and if you want to be logged in as agent of LIC Database system then you have been provided with other option. These options are entered at the current cursor position and after which its screen will be appear, where they will required to enter their id to use their particular account. Existing customers will able to check their policy details under which they have made investment. Proposed System The current system stored all data in particular file in the binary format which is not able to read by others. Its command prompt will not able its users to know about the background details thus providing the feature of extra security and reliability. Customers will have the option to review any policy as per their choice and select particular policy if they like it. Each customers and agent will have unique id by which they will able to check their account at any time. 5 P a g e

Header Files Used: iostream.h: The manipulators in this library affect the format of stream operations. Eg: endl, cin, cout etc. Iomanio.h: The manipulation in this library affect the format of steam operations. Eg: setw(), setprecision() etc. String.h: This library enables you to manipulate C strings that end in the char '\0', the null char. unless noted otherwise, these functions return a pointer to the resulting string in addition to modifying an appropriate argument. The argument ch is a character, n is an integer, and the other arguments are strings, which usually means they are names of a char array, but can be string constants in some cases. Eg: strcmp, strcpy, strlen, strcat etc. Math.h: The C++ functions in this library compute certain standard mathematical functions. These functions are overloaded to accommodate float, double, and long double. Unless otherwise indicated, each function has one argument, with the return type being the same as the argument type (either float, double, or long double). Ctype.h: Most functions in this library classify a given ASCII character as a letter, a digit, and so on. Two other functions convert letters between uppercase and lowercase. Eg: toupper(), isalpha(), isdigit() etc. Dos.h: dos.h in c: dos.h header file of c language contains functions for handling interrupts, producing sound, date and time functions etc. It is borland specific and works in turbo c compiler. Eg: delay function, sound function etc. Process.h: Is a C++ header file which contains function declarations and macros used in working with threads and processes. Most C compilers that target DOS, Windows 3.1x, Win32, OS/2, Novell NetWare or DOS extenders supply this header and the library functions in their C library. Neither the header file nor most of the functions are defined by either the ANSI/ISO C standard or by POSIX. 6 P a g e

1. Struct address(structure address) Structures used in this code A user defined datatype to hold the address of the user. Includes the variables like house number, area, city and state. All the attributes are of character type. 2. Struct agn(structure agent) User defined data type to hold the details of the agent It includes the variables like name,agent code, agent address, age, policies sold, salary and category to which the agent belong (for ex The built-in data types used in this structure are float, integer character and one user defined data type i.e., address. 3. Struct cust(structure customer) User defined data type to hold the details of the customer. It includes variables like name, age, address, policy brought,salary, policy amount policy term, mode of payment, premium, and SA per thousand per annum. The data types used are float, character, integer and one user defined data type i.e., address. 4. Struct fback(structure feedback) User defined data type to hold the contents of the feedback form. Includes variables like age, gender, occupation, income and ratings. 5. Struct poldet(structure policy details) Used defined data type to hold the details and terms and conditions of different policies offered by LIC Includes variables like name, minimum age, maximum age, maximum maturity age, minimum policy amount, maximum policy amount, minimum sum assured, maximum sum assured, age proofs, etc. All the details of the policies are initialized just after the functions and are displayed to the user when he/she is interested to know about a specific policy. 7 P a g e

Functions Main Menu This function gives us the first screen in our project i.e. main menu screen to the user. This function consists of various options for an user. This function consists of Customer, Agent, Exit options for an user. This function incorporates a switch condition statements which transfers the execution of the program from one function to the other function based on the input given by the user. Getch() function is used to take the input from an user i.e. C customer, A- agent, E- exit. Toupper() function is used to convert the lower case characters to upper case characters and hence input from the user is case sensitive. Customer menu Prototype of this function ->void cusmen(); Function definition->void cusmen() The function definition includes user friendly statements i.e., CUSTOMER MENU which helps the user to select a specific function, which he desires to proceed on. The customer menu includes calling of four functions based on the requirement of the user. The functions are OLD CUSTOMER FUNCTION, POLICIES FUNCTION, BACK FUNCTION, and EXIT FUNCTION. Switch case statements are used to help the user switch to the desired function he requires. The user has to provide an appropriate choice to select his/her desired page of interest. Gotoxy statements are used to display the statements at the required co-ordinates on the output screen. 8 P a g e

New Customer This function is used for the new customer. It has several questions for a new user like Name, age, salary Address, Policy term, Policy amount. The user has to fill the form depending on the criteria of the policy chosen by him. Once the new customer fills all the details of the form, the functions gets the values of premium amount and unique customer code. Finally all the details of the user will be displayed in the fresh screen which gives the details of his premium amount and gives him a unique customer code for future use. Later the user will be directed to the feedback form. Old Customer User has to enter his unique customer code. This function matches the code with the existing code in the system and gives the details of the user. If the code doesn t match then it gives a statement as customer not found. It uses strcmp() function to serve this purpose. New policy Prototype of this function->void newpol(); Definition of this function->void newpol() The function does not return any value and hence void is used. This function displays the different policies that are provided by the LIC and allows the user to choose any policy that he/she would like to purchase. The different policies included in the function are ENDOWMENT POLICY, MONEY BACK POLICY, JEEVAN KISHORE, and JEEVAN ANAND AND JEEVAN SURABHI POLICY. Again the function asks the user to enter an appropriate choice to select a specific policy. 9 P a g e

Switch statements are used in the function to switch to an appropriate page specified by the user. Functions corresponding to the policies containing the terms and conditions are called for. Policy details Prototype for this function ->void tnccus(); Function definition->void tnccus(); It consists of the terms and conditions of all the policies. This function is used to display the terms and conditions of the policy selected by the user. Once the user provides his choice, the page consisting of the terms and conditions of the selected policy will be displayed. If the user is satisfied with the terms and conditions of the policy, the form to purchase that policy will be provided. The user should enter the details like name, age, salary, etc, appropriate to the terms of the policy. Later a unique customer code will be provided to the user for his future use. 10 P a g e

AGENT FUNCTIONS: 11 P a g e void agnmen() The function agnmen() displays the agent menu It asks the user to enter a choice The character input O stands for old agent The character input N stands for new agent, T stands for terms and conditions getch function is used for the user to make their choice The getch() reads a single character directly from the keyboard This function uses a header file conio.h. Switch-case is used where the switch statement allows a character variable that is been chosen by a user for equality against a list of values. If the character entered by a user is O, old agent function is called If user enters N, the new agent function is called If the character entered is T,terms and conditions for agent function is called If the user inputs B,the control goes back to main menu function and if input is E,control comes out of the switch case statement If the user enter any of these character the control gets back to getch() function until user gives a appropriate character input. goto statement is used to transfer the control back to the getch() function. void newagn() The function newagn() displays the new agent form The new agent form ask the user to enter the new agent details like name, age, house number, area, city, state, salary and the policies sold If the name, house number, area, city and state entered is compared with the null character using library function strcmp() which uses string.h as its header file,and if the comparison is equal to zero i.e if there is no input from the user the control goes back to gets() function where the user has to input the appropriate information

The age of the agent should be more than 18 The salary and policy sold is entered by user If policy sold is greater than zero and less than 1000,the agent is categorised under "BRANCH MANAGER CLUB MEMBER" If policy sold is greater than 999 and less than 2000,the agent is categorised under "DIVISIONAL MANAGER CLUB MEMBER" If policy sold is greater than 1999 and less than 3000,the agent is categorised under "ZONAL MANAGER CLUB MEMBER" If policy sold is greater than 2999,the agent is categorised under "CHAIRMAN CLUB MEMBER" Then the agents unique code is created using fabs() which is a mathematical Function that returns the absolute value of the given argument. Then the agent details is displayed on to the screen At the end of the function agent menu function is called. Void oldagn() The function oldagn() is used to display old agents details It asks the user to input the agent code The information of the agent corresponding to the agent code entered by the user is displayed on to the screen The agent information like name,age, address, policies sold,agent category and salary is displayed on to the screen Here the flag,which is a predefined bit or bit sequence that holds a binary value and it is initialised to zero If the flag is 0,the agent is not found The information of the agent is found only when flag is 1 At the end of the execution agent menu function is called void tncagn() The function tncagn() displays the terms and conditions for the agent The minimum eligibility for the life insurance agency are: a) Qualification :12 th class passed b) Age: 18 years completed 12 P a g e

c) Applicant should have passed the online exam conducted by NSE-IT d) Agents license is issued for the 3years in the beginning and renewed thereafter for another 3years e) After the completion of 25 hours of agents training f) Business condition for the agency enforced-12 lives with 1lakh sum assured g) First premium income should be one lakh New agent form This function displays the form for a new agent. We again use the gotoxy function to get to a specific spot on the screen. Using the Cout statement, we display the necessary details, like name, age, address and policies sold. We use Cin statements, we get the data corresponding to all the above details required. There are certain minimum requirements that the company expects a prospective agent to fulfill, such as minimum age limit, and so, we have an if statement that compares the input age with 18, and tells immediately if the user can proceed or not. Also, the company isn t willing to accept a blank space at any of the spaces. Hence, we compare each of the inputs such as addagn.hno, addagn.city provided by user to a null character \0 using an if condition. To assign the designation of the new agent, we use the number of policies sold as a basic credential. If an agent has sold less than a 1000 policies, then he/she is categorized as a Branch Manager. Else if, number of policies are between 1000 and 2000,then as a Divisional manager, as a Zonal manager if policies sold are above 2000 and below 3000 and a Chairman if more than 3000. After getting all details, we need to generate a unique agent code for each agent for further accessing. To achieve this uniqueness, we perform this equation fabs(100+(20*agnt[i].age)-(80*i)) 13 P a g e

We use the agent s age and the applicant number to reduce the ambiguity. Fabs is function that displays the absolute value of the expression, i.e., ignores the decimal part. Next step is to display all the entered details. We use a simple Cout statement for displaying the details. Old agent details This function enables an existing agent to view his/her details, on providing the unique code. We create a variable flag, which indicates whether the system has found the agent or not. Using gotoxy statement we get to the specific spot on the screen, and ask the user to enter the code. This code is stored in an integer variable pn. Pn is compared with existing codes using an if statement, and on finding the code in the database, flag value becomes 1, and the agent details corresponding to the code are displayed. If the code is not found,flag value becomes 0,which in turn calls the Cout statement that displays to the user that agent of that particular code wasn t found. After execution, the control is shifted to the agnmen() function again. Feedback Form: Whenever a customer or an user wants to exit from the system, the user will be transferred to feedback form. This functions firstly takes details of an user like name, age, salary etc. Once the user fills all his details he will be given with five questions. Answers to the questions are to be given in 1-7 ratings, i.e. 1(Poor) and 7(Excellent). Once the answer to all questions are submitted user can exit the system. 14 P a g e

FLOW CHART: Welcome screen Main Menu Customer Menu Agent Menu Exit(Feedback) New customer Old Customer Feedback New Agent Old Agent Feedback Feedback Policies Old customer policy details New agent form Terms and conditions Old Agent details New Agent form Feedback Unique Agent code Feedback Unique Customer code Feedback Feedback 15 P a g e

SOURCE CODE: /* HEADER FILES */ #include<iostream.h> #include<conio.h> #include<string.h> #include<dos.h> #include<ctype.h> #include<stdio.h> #include<process.h> #include<iomanip.h> #include<math.h> /* STRUCTURE DEFINITIONS */ struct address /* STRUCTURE FOR ADDRESS */ char hno[30]; char area[30]; char city[30]; char stat[30]; ; struct agn /* STRUCTURE FOR AGENT DETAILS */ int code; char nam[80]; int age; address addagn; int polsld; //no. of policies sold float sal; //salary char categ[50]; //category agnt[15]; 16 P a g e struct cust /* STRUCTURE FOR CUSTOMER DETAILS */ char nam[80]; int age;

address addcust; char polbt[20]; //name of policy bought float sal; //salary int code; float polamt; int polterm; char mod_pay; float sa_pt_pa; //SA per thousand per annum float prem; //premium custm[15]; struct fback /* STRUCTURE FOR FEEDBACK FORM */ int age; char gndr; //gender char occp[20]; //occupation float inc; //income char a[12]; //ratings fbk; struct poldet /* STRUCTURE FOR POLICY T&C */ char nam[20]; int minagemat; int maxagemat; int maxmatage; int minpolt; int maxpolt; float minsumass; char maxsumass[10]; char modeall[25]; float acci_ben; float CI; int femliv; char agepro[40]; char nonmed_gen[5]; char nonmed_spe[5]; char termrideroptn[4]; char crtcalilnesridr[4]; float sa_pt_patrm1_ag1;//sa per thousand per annum float sa_pt_patrm1_ag2; float sa_pt_patrm2_ag1; float sa_pt_patrm2_ag2; 17 P a g e

; /* STORING POLICY DETAILS */ poldet endow="endowment POLICY",12,65,75,5,55,50000.00,"No Limit","All",1.00, 7.26,2,"Birth Certificate / Board Certificate","Yes","Yes", "Yes","Yes",72.00,73.35,35.80,40.00; poldet monbak="money BACK POLICY",13,50,70,20,55,50000.00,"No Limit","All", 2.00,6.57,2,"Birth Certificate / Board Certificate","Yes","Yes", "Yes","Yes",65.35,53.45,71.85,61.55; poldet jeevkish="jeevan KISHORE",0,12,45,15,35,50000.00,"40 Lacs","All",1.50, 6.52,2,"Birth Certificate / Board Certificate","N.A.","N.A.", "No","No",49.15,29.25,49.15,29.25; poldet jeevannd="jeevan ANAND",18,65,75,5,57,100000.00,"No Limit", "All Except Single",1.5,6.45,2,"Birth Certificate / Board Certificate", "Yes","Yes","No","Yes",50.95,39.05,155.75,86.25; poldet jeevsurbh="jeevan SURABHI",14,50,70,15,25,50000.00,"No Limit","All", 1.00,6.11,2,"Birth Certificate / Board Certificate","Yes", "Yes","No","No",108.80,91.30,123.00,112.80; /* FUNCTION PROTOTYPING */ /* FUNCTION FOR DISPLAYING MAIN MENU */ void welcome();//display welcome page void mainmen();//display main menu /* CUSTOMER FUNCTIONS */ void cusmen();//display customer menu void newpol();//display new policies void tnccus(poldet pol);//display details of policies void newcus(poldet pol);//new customer data input float premcalc(cust custm,poldet pol);//premium calculation 18 P a g e

void oldcus();//display old customer's previous policy details void feed();//display feedback form char feedval();//input & test the ratings of feedback form /* AGENT FUNCTIONS */ void agnmen();//display agent menu void newagn();//new agent data input void oldagn();//old agent details void tncagn();//display terms & conditions for agents /* MAIN FUNCTION */ void main() textcolor(white); textbackground(cyan); welcome(); /* WELCOME SCREEN */ void welcome() textcolor(blue); textbackground(white); clrscr(); for(int x=0;x<80;x++) gotoxy(x,0); cout<<" "; for(int y=0;y<48;y++) gotoxy(0,y); cout<<" \n"; for(x=79;x>0;x--) 19 P a g e

gotoxy(x,49); cout<<" "; gotoxy(80,49); cout<<" "; for(y;y>0;y--) gotoxy(80,y); cout<<" \n"; gotoxy(10,10); puts("*********************** W E L C O M E *********************** "); gotoxy(18,16); puts("i N S U R A N C E S O F T W A R E"); gotoxy(38,40); puts(" *** PRESS ANY KEY TO CONTINUE ***"); getch(); mainmen(); /* MAIN MENU */ void mainmen() char a; clrscr(); cout<<"\n"; for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<16;y++) 20 P a g e

gotoxy(0,y); cout<<" \n"; gotoxy(25,5); cout<<"welcome TO LIFE INSURANCE COMPANY"; gotoxy(25,6); cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"; gotoxy(36,9); cout<<" MENU"; gotoxy(36,12); cout<<"c=customer"; gotoxy(36,14); cout<<"a=agent"; gotoxy(36,16); cout<<"x=exit"; cout<<"\n\n"; for(x=1;x<80;x++) cout<<" "; for(y=2;y<19;y++) gotoxy(80,y); cout<<" "; gotoxy(30,20); cout<<"please enter your choice : "; x:a=getch(); switch(a) case 'c': case 'C':cusmen(); break; case 'a': case 'A':agnmen(); break; case 'x': case 'X':feed(); 21 P a g e

break; default:goto x; /* CUSTOMER MENU */ void cusmen() textcolor(cyan); textbackground(white); char b; x:clrscr(); cout<<"\n"; for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<16;y++) gotoxy(0,y); cout<<" \n"; gotoxy(36,5); cout<<"customer MENU"; gotoxy(36,6); cout<<"$$$$$$$$$$$$$"; gotoxy(36,9); cout<<"o=old CUSTOMER"; gotoxy(36,11); cout<<"p=policies"; gotoxy(36,13); cout<<"b=back"; gotoxy(36,15); cout<<"x=exit"; cout<<"\n\n"; for(x=0;x<80;x++) 22 P a g e

cout<<" "; for(y=2;y<18;y++) gotoxy(80,y); cout<<" "; gotoxy(30,19); cout<<"please enter your choice : "; y:b=getch(); switch(b) case 'o': case 'O':oldcus(); break; case 'p': case 'P':newpol(); break; case 'b': case 'B':mainmen(); break; case 'x': case 'X':feed(); break; default:goto y; /* NEW POLICY */ void newpol() textcolor(red); textbackground(cyan); char inp; clrscr(); textcolor(red); textbackground(cyan); cout<<"\n"; 23 P a g e

for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<17;y++) gotoxy(0,y); cout<<" \n"; gotoxy(30,5); cout<<"life INSURANCE POLICIES"; gotoxy(30,6); cout<<"$$$$$$$$$$$$$$$$$$$$$$$"; gotoxy(31,9); cout<<"1. Endowment Policy"; gotoxy(31,11); cout<<"2. Money Back Policy"; gotoxy(31,13); cout<<"3. Jeevan Kishore"; gotoxy(31,15); cout<<"4. Jeevan Anand"; gotoxy(31,17); cout<<"5. Jeevan Surabhi"; cout<<"\n\n"; for(x=0;x<80;x++) cout<<" "; for(y=2;y<19;y++) gotoxy(80,y); cout<<" "; gotoxy(31,21); cout<<"b=back"; gotoxy(31,23); 24 P a g e

cout<<"x=exit"; gotoxy(31,25); cout<<"please enter your choice : "; x:inp=getch(); switch(inp) case '1':tnccus(endow); case '2':tnccus(monbak); case '3':tnccus(jeevkish); case '4':tnccus(jeevannd); case '5':tnccus(jeevsurbh); case 'b': case 'B':cusmen(); case 'x': case 'X':exit(0); default:goto x; /* POLICY DETAILS */ void tnccus(poldet pol) textcolor(red); textbackground(white); char in; clrscr(); cout<<"\n"; for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<32;y++) 25 P a g e

gotoxy(0,y); cout<<" \n"; gotoxy(25,5); cout<<"terms & CONDITIONS FOR "; puts(pol.nam); gotoxy(12,8); cout<<" Min./Max. age at entry : "; cout<<pol.minagemat<<" / "<<pol.maxagemat; gotoxy(12,10); cout<<" Max. maturity age : "<<pol.maxmatage; gotoxy(12,12); cout<<" Min./Max. policy term : "<<pol.minpolt<<" / "<<pol.maxpolt; gotoxy(12,14); cout<<" Min./Max. sum assured : "<<pol.minsumass<<" / "; puts(pol.maxsumass); gotoxy(12,16); cout<<" Mode allowed : "; puts(pol.modeall); gotoxy(12,18); cout<<" Accident Benefit : "<<pol.acci_ben; cout<<" per thousand S.A. per annum"; gotoxy(12,20); cout<<" Compound Interest : "<<pol.ci; gotoxy(12,22); cout<<" Female Lives : "<<pol.femliv; gotoxy(12,24); cout<<" Age Proof : "; puts(pol.agepro); gotoxy(12,26); cout<<" Non Medical (General) : "; puts(pol.nonmed_gen); gotoxy(12,28); cout<<" Non Medical (Special) : "; puts(pol.nonmed_spe); gotoxy(12,30); cout<<" Term rider option : "; puts(pol.termrideroptn); gotoxy(12,32); cout<<" Critical illness rider : "; puts(pol.crtcalilnesridr); cout<<"\n"; 26 P a g e

for(x=0;x<80;x++) cout<<" "; for(y=2;y<34;y++) gotoxy(80,y); cout<<" "; gotoxy(12,36); cout<<"does this policy satisfy your needs?(y/n) : "; a:in=getch(); switch(in) case 'Y': case 'y':newcus(pol); case 'n': case 'N':newpol(); default:goto a; /* NEW POLICY FORM */ void newcus(poldet pol) int j; clrscr(); for(int i=0;i<15;i++) if(strcmp(custm[i].nam,"\0")==0) break; gotoxy(28,3); cout<<"policy FORM FOR "; puts(pol.nam); 27 P a g e

gotoxy(25,6); cout<<"please enter the following details : "; gotoxy(25,8); cout<<" NAME : "; a:gets(custm[i].nam); if(strcmp(custm[i].nam,"\0")==0) goto a; gotoxy(25,10); cout<<" AGE : "; b:cin>>custm[i].age; if(custm[i].age<pol.minagemat custm[i].age>pol.maxagemat) cout<<"age must be between "<<pol.minagemat<<" to "<<pol.maxagemat<<" years"; goto b; else gotoxy(20,40); for(j=0;j<34;j++) cout<<" "; gotoxy(25,12); cout<<" ADDRESS : "; gotoxy(29,14); cout<<"* HOUSE NO. : "; c:gets(custm[i].addcust.hno); if(strcmp(custm[i].addcust.hno,"\0")==0) goto c; gotoxy(29,16); cout<<"* AREA : "; d:gets(custm[i].addcust.area); if(strcmp(custm[i].addcust.area,"\0")==0) goto d; gotoxy(29,18); cout<<"* CITY : "; e:gets(custm[i].addcust.city); if(strcmp(custm[i].addcust.city,"\0")==0) goto e; gotoxy(29,20); cout<<"* STATE : "; f:gets(custm[i].addcust.stat); if(strcmp(custm[i].nam,"\0")==0) goto f; 28 P a g e

gotoxy(25,22); if(strcmp(pol.nam,"jeevan KISHORE")) cout<<" SALARY : "; if(strcmp(pol.nam,"jeevan KISHORE")) cin>>custm[i].sal; gotoxy(25,24); cout<<" POLICY AMOUNT : "; g:cin>>custm[i].polamt; if(custm[i].polamt<pol.minsumass) gotoxy(20,40); cout<<"policy amount must be more than Rs. "<<pol.minsumass; goto g; else gotoxy(20,40); for(j=0;j<50;j++) cout<<" "; cout<<endl; gotoxy(25,26); cout<<" MODE OF PAYMENT : "<<endl; cout<<"( Q=QUARTERLY, H=HALF YEARLY, Y=YEARLY)"; h:custm[i].mod_pay=getch(); cout<<endl; switch(custm[i].mod_pay) case 'q': case 'Q': case 'h': case 'H': case 'y': case 'Y':custm[i].mod_pay=toupper(custm[i].mod_pay); cout<<custm[i].mod_pay; getch(); break; default:goto h; gotoxy(25,30); cout<<" POLICY TERM : "<<endl; for(j=0;j<20;j++) cout<<" "; 29 P a g e

k:custm[i].polterm=0; gotoxy(41,30); for(j=0;j<15;j++) cout<<" "; cin>>custm[i].polterm; cout<<endl; if((custm[i].polterm<pol.minpolt) (custm[i].polterm>pol.maxpolt)) gotoxy(20,40); cout<<"policy term must be between "<<pol.minpolt; cout<<" to "<<pol.maxpolt<<" years"; goto k; else gotoxy(20,40); for(j=0;j<34;j++) cout<<" "; strcpy(custm[i].polbt,pol.nam);//copy the policy name to customer's details custm[i].code=fabs((100*i)+89-(custm[i].age));//create unique code custm[i].prem=premcalc(custm[i],pol);//calculate premium clrscr(); gotoxy(30,3); \ cout<<"your details are : "; gotoxy(25,6); cout<<" NAME : "; puts(custm[i].nam); gotoxy(25,8); cout<<" AGE : "<<custm[i].age; gotoxy(25,10); cout<<" ADDRESS : "; gotoxy(29,12); cout<<"* HOUSE NO. : "; puts(custm[i].addcust.hno); gotoxy(29,14); cout<<"* AREA : "; puts(custm[i].addcust.area); 30 P a g e

gotoxy(29,16); cout<<"* CITY : "; puts(custm[i].addcust.city); gotoxy(29,18); cout<<"* STATE : "; puts(custm[i].addcust.stat); gotoxy(25,20); cout<<" POLICY NAME : "; puts(custm[i].polbt); gotoxy(25,22); if(strcmp(pol.nam,"jeevan KISHORE")) cout<<" SALARY : Rs. "<<custm[i].sal; gotoxy(25,24); cout<<" POLICY AMOUNT : Rs. "<<custm[i].polamt; gotoxy(25,26); cout<<" POLICY TERM : "<<custm[i].polterm<<" years"; gotoxy(25,28); cout<<" MODE OF PAYMENT : "; switch(custm[i].mod_pay) case 'Y':cout<<"YEARLY"; break; case 'H':cout<<"HALF YEARLY"; break; case 'Q':cout<<"QUARTERLY"; gotoxy(25,30); cout<<endl<<" PREMIUM : Rs. "<<custm[i].prem<<" per annum"<<endl; gotoxy(25,32); cout<<endl<<" CUSTOMER CODE : "<<custm[i].code<<endl; getch(); cusmen(); /* PREMIUM CALCULATION */ float premcalc(cust custm,poldet pol) float a; if(custm.age<(pol.minagemat+pol.maxagemat)/2) if(custm.polterm<=(pol.minpolt+pol.maxpolt)/2) 31 P a g e

custm.sa_pt_pa=pol.sa_pt_patrm1_ag1; if(custm.polterm>(pol.minagemat+pol.maxagemat)/2) custm.sa_pt_pa=pol.sa_pt_patrm2_ag1; if(custm.age>=(pol.minagemat+pol.maxagemat)/2) if(custm.polterm<=(pol.minpolt+pol.maxpolt)/2) custm.sa_pt_pa=pol.sa_pt_patrm1_ag2; if(custm.polterm>(pol.minpolt+pol.maxpolt)/2) custm.sa_pt_pa=pol.sa_pt_patrm2_ag2; if(custm.mod_pay=='h' custm.mod_pay=='h') custm.sa_pt_pa*=0.985; else if(custm.mod_pay=='y' custm.mod_pay=='y') custm.sa_pt_pa*=0.97; if(custm.polamt>pol.minsumass&&custm.polamt<=(2*pol.minsumass)) custm.sa_pt_pa-=1; if(custm.polamt>(2*pol.minsumass)) custm.sa_pt_pa-=2; a=(custm.sa_pt_pa)*(custm.polamt)/1000; return a; /* OLD CUSTOMER'S DETAILS */ void oldcus() int flag=0; clrscr(); gotoxy(25,6); cout<<"please ENTER CUSTOMER CODE : "; int pn; cin>>pn; for(int i=0;i<15;i++) if(pn==custm[i].code)//check the customer code 32 P a g e

annum"; flag=1; gotoxy(25,10); cout<<" NAME : "; puts(custm[i].nam); gotoxy(25,12); cout<<" AGE : "<<custm[i].age; gotoxy(25,14); cout<<" ADDRESS : "; gotoxy(29,16); cout<<"* HOUSE NO. : "; puts(custm[i].addcust.hno); gotoxy(29,18); cout<<"* AREA : "; puts(custm[i].addcust.area); gotoxy(29,20); cout<<"* CITY : "; puts(custm[i].addcust.city); gotoxy(29,22); cout<<"* STATE : "; puts(custm[i].addcust.stat); gotoxy(25,24); cout<<" POLICY NAME : "; puts(custm[i].polbt); gotoxy(25,26); cout<<" SALARY : Rs. "<<custm[i].sal; gotoxy(25,28); cout<<" POLICY AMOUNT : Rs. "<<custm[i].polamt; gotoxy(25,30); cout<<" POLICY TERM : "<<custm[i].polterm<<" years"; gotoxy(25,32); cout<<" MODE OF PAYMENT : "; switch(custm[i].mod_pay) case 'Y':cout<<"YEARLY"; break; case 'H':cout<<"HALF YEARLY"; break; case 'Q':cout<<"QUARTERLY"; gotoxy(25,34); cout<<" PREMIUM : Rs. "<<custm[i].prem<<" per 33 P a g e

getch(); cusmen(); if(flag==0) //if customer is not found gotoxy(25,8); cout<<"sorry, CUSTOMER NOT FOUND"; getch(); cusmen(); /* AGENT MENU */ void agnmen() char b; x:clrscr(); cout<<"\n"; for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<17;y++) gotoxy(0,y); cout<<" \n"; gotoxy(36,5); cout<<"agent MENU"; gotoxy(36,6); cout<<"$$$$$$$$$$"; gotoxy(36,9); cout<<"o=old AGENT"; gotoxy(36,11); cout<<"n=new AGENT"; gotoxy(36,13); 34 P a g e

cout<<"t=terms & CONDITIONS"; gotoxy(36,15); cout<<"b=back"; gotoxy(36,17); cout<<"x=exit"; cout<<"\n\n"; for(x=0;x<80;x++) cout<<" "; for(y=2;y<19;y++) gotoxy(80,y); cout<<" "; gotoxy(30,21); cout<<"please enter your choice : "; y:b=getch(); switch(b) case 'o': case 'O':oldagn(); break; case 'n': case 'N':newagn(); break; case 'T': case 't':tncagn(); goto x; case 'b': case 'B':mainmen(); break; case 'X': case 'x':exit(0); break; default:goto y; 35 P a g e

/* NEW AGENT FORM */ void newagn() int o; clrscr(); for(int i=0;i<15;i++) if(strcmp(agnt[i].nam,"\0")==0) break; gotoxy(34,3); cout<<"new AGENT FORM"; gotoxy(25,6); cout<<"please enter the following details : "; gotoxy(25,8); cout<<" NAME : "; gotoxy(25,10); cout<<" AGE : "; gotoxy(25,12); cout<<" ADDRESS : "; gotoxy(29,14); cout<<"* HOUSE NO. : "; gotoxy(29,16); cout<<"* AREA : "; gotoxy(29,18); cout<<"* CITY : "; gotoxy(29,20); cout<<"* STATE : "; gotoxy(25,22); cout<<" SALARY : "; gotoxy(25,24); cout<<" POLICIES SOLD : "; x:gotoxy(34,8); gets(agnt[i].nam); if(strcmp(agnt[i].nam,"\0")==0) goto x; y:gotoxy(33,10); cin>>agnt[i].age; if(agnt[i].age<18) 36 P a g e

else gotoxy(20,40); cout<<"age must be more than 18"; gotoxy(33,10); for(o=0;o<4;o++) cout<<" "; goto y; gotoxy(20,40); for(o=0;o<35;o++) cout<<" "; a:gotoxy(43,14); gets(agnt[i].addagn.hno); if(strcmp(agnt[i].addagn.hno,"\0")==0) goto a; b:gotoxy(38,16); gets(agnt[i].addagn.area); if(strcmp(agnt[i].addagn.area,"\0")==0) goto b; c:gotoxy(38,18); gets(agnt[i].addagn.city); if(strcmp(agnt[i].addagn.city,"\0")==0) goto c; d:gotoxy(39,20); gets(agnt[i].addagn.stat); if(strcmp(agnt[i].addagn.stat,"\0")==0) goto d; gotoxy(36,22); cin>>agnt[i].sal; gotoxy(43,24); cin>>agnt[i].polsld; if((agnt[i].polsld)>0&&(agnt[i].polsld)<1000) //categorise the agent strcpy(agnt[i].categ,"branch MANAGER CLUB MEMBER"); else if((agnt[i].polsld)>999&&(agnt[i].polsld)<2000) strcpy(agnt[i].categ,"divisional MANAGER CLUB MEMBER"); 37 P a g e

else if((agnt[i].polsld)>1999&&(agnt[i].polsld)<3000) strcpy(agnt[i].categ,"zonal MANAGER CLUB MEMBER"); else if((agnt[i].polsld)>2999) strcpy(agnt[i].categ,"chairman CLUB MEMBER"); agnt[i].code=fabs(100+(20*agnt[i].age)-(80*i)); //create unique code clrscr(); gotoxy(34,3); cout<<"your details are : "; gotoxy(25,6); cout<<" NAME : "; puts(agnt[i].nam); gotoxy(25,8); cout<<" AGE : "<<agnt[i].age; gotoxy(25,10); cout<<" SALARY : Rs. "<<agnt[i].sal; gotoxy(25,12); cout<<" ADDRESS : "; gotoxy(29,14); cout<<"* HOUSE NO. : "; puts(agnt[i].addagn.hno); gotoxy(29,16); cout<<"* AREA : "; puts(agnt[i].addagn.area); gotoxy(29,18); cout<<"* CITY : "; puts(agnt[i].addagn.city); gotoxy(29,20); cout<<"* STATE : "; puts(agnt[i].addagn.stat); gotoxy(25,22); cout<<" POLICIES SOLD : "<<agnt[i].polsld; gotoxy(25,24); cout<<" AGENT CATEGORY : "; puts(agnt[i].categ); gotoxy(25,26); cout<<" AGENT CODE : "<<agnt[i].code; getch(); agnmen(); 38 P a g e

/* OLD AGENT'S DETAILS */ void oldagn() int flag=0; clrscr(); gotoxy(25,6); cout<<"please ENTER THE AGENT CODE : "; int pn; cin>>pn; for(int i=0;i<15;i++) if(pn==agnt[i].code)//check agent code flag=1; gotoxy(25,9); cout<<" NAME : "; cout<<agnt[i].nam; gotoxy(25,11); cout<<" ADDRESS : "; gotoxy(29,13); cout<<"* HOUSE NO. : "; puts(agnt[i].addagn.hno); gotoxy(29,15); cout<<"* AREA : "; puts(agnt[i].addagn.area); gotoxy(29,17); cout<<"* CITY : "; puts(agnt[i].addagn.city); gotoxy(29,19); cout<<"* STATE : "; puts(agnt[i].addagn.stat); gotoxy(25,21); cout<<" POLICIES SOLD : "; cout<<agnt[i].polsld; gotoxy(25,23); cout<<" AGENT CATEGORY : "; puts(agnt[i].categ); gotoxy(25,25); cout<<" SALARY : Rs. "; cout<<agnt[i].sal; getch(); agnmen(); 39 P a g e

if(flag==0)//if agent is not found gotoxy(25,8); cout<<"sorry, AGENT NOT FOUND"; getch(); agnmen(); /* T&C FOR AGENTS */ void tncagn() clrscr(); cout<<"\n"; for(int x=0;x<80;x++) cout<<" "; for(int y=1;y<34;y++) gotoxy(0,y); cout<<" \n"; gotoxy(25,5); cout<<"terms & CONDITIONS FOR AGENT"; gotoxy(25,6); cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$"; gotoxy(15,10); cout<<" MINIMUM ELIGIBILITY FOR LIFE INSURANCE AGENCY"; gotoxy(19,12); cout<<"* QUALIFICATION : 12th class passed"; gotoxy(19,14); cout<<"* AGE : 18 years completed"; gotoxy(19,16); 40 P a g e

cout<<"* Applicant should have passed the online exam"; gotoxy(21,18); cout<<"conducted by NSE-IT"; gotoxy(15,22); cout<<" AGENT'S LICENSE is issued for 3 years in the"; gotoxy(17,24); cout<<"beginning and renewed thereafter for another 3 years"; gotoxy(17,26); cout<<"after the completion of 25 hours of Agent's training."; gotoxy(15,30); cout<<" BUSINESS CONDITION FOR THE AGENCY ENFORCED"; gotoxy(19,32); cout<<"* 12 lives with 1 lac sum assured"; gotoxy(19,34); cout<<"* First Premium Income(FPI) : Rs. 1 lac"; cout<<"\n\n"; for(x=0;x<80;x++) cout<<" "; for(y=2;y<36;y++) gotoxy(80,y); cout<<" "; getch(); /* DISPLAY FEEDBACK FORM */ void feed() char str[9]="thank YOU"; clrscr(); gotoxy(34,3); cout<<"feedback FORM"; gotoxy(34,4); cout<<"*************"; gotoxy(6,6); 41 P a g e

cout<<"please enter the following details : "; gotoxy(6,8); cout<<"age : "; cin>>fbk.age; gotoxy(6,10); cout<<"gender (m/f) : "; b:fbk.gndr=getch(); switch(fbk.gndr) case 'm': case 'M': case 'f': case 'F':cout<<fbk.gndr; break; default:goto b; getch(); gotoxy(6,12); cout<<"occupation : "; c:gets(fbk.occp); if(strcmp(fbk.occp,"\0")==0) goto c; gotoxy(6,14); cout<<"monthly INCOME : "; cin>>fbk.inc; gotoxy(32,16); cout<<"questionaire FORM"; gotoxy(32,17); cout<<"*****************"; gotoxy(6,19); cout<<"how would you rate the company's performance on the following service features"; gotoxy(6,21); cout<<"using (1-7) where \"1\" indicates LOW rating & \"7\" indicates HIGH rating"; gotoxy(6,23); cout<<"1. Performing the service right the first time : "; fbk.a[0]=feedval(); gotoxy(6,25); cout<<"2. Agents give you prompt service : "; fbk.a[1]=feedval(); cout<<endl; 42 P a g e

cout<<"3. Agents are always willing to help you : "; fbk.a[2]=feedval(); cout<<endl; gotoxy(6,29); cout<<"4. You feel safe in your transactions : "; fbk.a[3]=feedval(); gotoxy(6,31); cout<<endl; cout<<"5. Agents understand your specific needs : "; fbk.a[4]=feedval(); gotoxy(36,47); for(int x=0;x<9;x++) cout<<str[x]; delay(100); getch(); exit(0); /* INPUT THE RATINGS & CHECK THEM */ char feedval() char x; d:x=getch(); if(x>'0'&&x< '8') cout<<x; else goto d; getch(); return x; 43 P a g e

Main Menu: SCREEN SHOTS Customer Menu: 44 P a g e

Agent Menu: Policy Details: 45 P a g e

Form Fill up Process: Old Customer: 46 P a g e

CONCLUSION Existing LIC Database system do not provide facility to select the particular policy by going through each policy details. Customers has to be dependent on agent to get details on particular policy. While taking any particular policy, customers do not able to get information what will be the minimum instalment to be made and in what mode. Agent are also not able to check their account any time as per their requirement and the details of customers who have taken policy from them along with their policy maturity date. The present system do not provide the correct medium for the agents to know their commissions which has been made while selling any particular policy. 47 P a g e