21
I NTRODUCTION As it is clear from the name of the title, I have tried to make a program which will provide the user the facility to calculate emi for a loan given the rate of loan per annum and number of years for which the loan has been taken. The user will be able to do so with the help of various menus and sub- menus provided in the program.The program also provides menu to accept the customer data and store it to the hard disk. It will also keep a record of submitted documents and the user will also be able to calculate the amount of loan left for payment by entering the date of taking loan and present date. 1

Home Loan Emi Calculation

  • Upload
    diwaker

  • View
    246

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Home Loan Emi Calculation

I NTRODUCTION

As it is clear from the name of the title, I have tried to make a program which will provide the user the facility to calculate emi for a loan given the rate of loan per annum and number of years for which the loan has been taken. The user will be able to do so with the help of various menus and sub-menus provided in the program.The program also provides menu to accept the customer data and store it to the hard disk. It will also keep a record of submitted documents and the user will also be able to calculate the amount of loan left for payment by entering the date of taking loan and present date.

1

Page 2: Home Loan Emi Calculation

CONTROL DIAGRAM

This diagram tells the interconnection between various menus and sub-menus.

This shows the transfer of control between various menus and sub menus.

2

Frontscreen Main Menu

Customer Data

Documents Detail

EMI Calculation

Exit

Page 3: Home Loan Emi Calculation

PROJECT SCREENS

1. This is the front screen of program.

2. This is the main menu.

3

Page 4: Home Loan Emi Calculation

3. This screen shows interface to store customer’s data.

4. This screen shows document details.

4

Page 5: Home Loan Emi Calculation

5. This is the screen for emi calculation and calculation of loan left.

5

Page 6: Home Loan Emi Calculation

PROGRAM CODING

1. This is coding for front screen.....................................................

#include<math.h>#include<fstream.h>#include<iostream.h>#include<conio.h>#include<stdio.h>#include<process.h>#include<dos.h>#include"c:\tc\framewor.cpp"#include"c:\tc\custu.cpp"#include"c:\tc\emicalu.cpp"#include"c:\tc\docu.cpp"#include"c:\tc\mainmenu.cpp"

void main(){int i, j;

clrscr();

for (j=0; j<80; j++){cprintf("*");delay(50);textcolor(j);}

for (j=80; j>0; j--){gotoxy(j,24);cprintf("*");delay(50);textcolor(j);

}

gotoxy(0,2);

for (j=0; j<80; j++){gotoxy(j,2);

6

Page 7: Home Loan Emi Calculation

textcolor(1);cprintf("=");delay(50);}

for (j=80; j>0; j--){gotoxy(j,23);textcolor(1);cprintf("=");delay(50);}

int x=40;for(j=7;j<15;j++){textcolor(j);gotoxy(x,j);cprintf(".*.");x-=3;delay(50);}

x=40;for(j=7;j<15;j++){textcolor(j);gotoxy(x,j);cprintf(".*.");x+=3;delay(50);}

for(j=15;j<22;j++){gotoxy(x-5,j);cprintf("I");delay(50);}

for(x=61;x>20;x--){textcolor(4);gotoxy(x,j);cprintf("*");delay(50);}

7

Page 8: Home Loan Emi Calculation

x+=3;

for(j=22;j>15;j--){textcolor(14);gotoxy(x,j-1);cprintf("I");delay(50);}

textcolor(12);gotoxy(x+8,j);cprintf("HOME LOAN CALCULATION");textcolor(13);delay(50);gotoxy(x+13,++j);cprintf("PREPARED BY");textcolor(14);delay(50);gotoxy(x+12,++j);cprintf("DIWAKER SINGH");textcolor(17);delay(50);gotoxy(x+14,++j);cprintf("RB1803B54");mainmenu();

getch();

}

2. This is coding for main menu....................................................

void mainmenu(void){l1:clrscr();{framework();int ans;int x=24,y=5;gotoxy(x+12,y);textcolor(5);cprintf("MAIN MENU");gotoxy(x,y+2);

8

Page 9: Home Loan Emi Calculation

cprintf("1.ENTER CUSTOMER DATA");gotoxy(x,y+4);cprintf("2.DOCUMENTS DETAIL");gotoxy(x,y+6);cprintf("3.EMI CALCULATION");gotoxy(x,y+8);cprintf("4.EXIT");gotoxy(x,y+10);cprintf("ENTER YOUR CHOICE:");cin>>ans;

do{switch(ans){case 1:customerdata();goto l1;case 2:document();goto l1;case 3:emical();goto l1;case 4:exit(0);default:cout<<"invalid choice";exit(0);}}while(ans!=1||ans!=2||ans!=3);

}

}

3. This is coding for customer data..........................................................

void customerdata(void){class date{int month,day,year;

9

Page 10: Home Loan Emi Calculation

public:void getdate(void){cin>>day>>month>>year;}};

class custdata

{

char cust_name[25];char address[50];char mobno[10];double amt;

public:date dat;void getdata(void){textcolor(5);gotoxy(18,6);

cprintf("ENTER CUSTOMER NAME:");

gotoxy(18,8);cprintf("ENTER CUSTOMER ADDRESS:");

gotoxy(18,10);cprintf("ENTER CUSTOMER MOB NO:");

gotoxy(18,12);cprintf("ENTER LOAN AMOUNT:");

gotoxy(18,14);cprintf("ENTER DATE OF LOAN(dd/mm/yyyy):");

gotoxy(40,6);gets(cust_name);gotoxy(42,8);gets(address);gotoxy(40,10);gets(mobno);gotoxy(40,12);

10

Page 11: Home Loan Emi Calculation

cin>>(amt);gotoxy(50,14);dat.getdate();}};

ofstream n;char ans;clrscr();n.open("c:/mypro/custdetail.txt",ios::app);do{clrscr();

framework();

custdata obj;

obj.getdata();

n.write((char*)&obj,sizeof(obj));

gotoxy(15,22);printf("WANT TO ADD SOME MORE");ans=getche();}while(ans=='y'||ans=='Y');n.close();getch();}

4. This is coding for document details..............................................................

void document(void){

class documents{char residence_proof;char pan_card;char salary_slip;char ele_bill;

11

Page 12: Home Loan Emi Calculation

char bnk_stat;

public:void getdata(void){gotoxy(18,6);

cprintf("RESIDENCE PROOF(Y/N)");

gotoxy(18,8);cprintf("PANCARD(Y/N)");

gotoxy(18,10);cprintf("SALARY SLIP(Y/N)");

gotoxy(18,12);cprintf("ELECTRICITY BILL(Y/N)");

gotoxy(18,14);cprintf("BANK STATEMENT(Y/N)");

gotoxy(40,6);cin>>residence_proof;gotoxy(42,8);cin>>pan_card;gotoxy(40,10);cin>>salary_slip;gotoxy(40,12);cin>>ele_bill;gotoxy(40,14);cin>>bnk_stat;}

void approval(void){if (residence_proof=='y'||'Y'&&pan_card=='y'||'Y'&&salary_slip=='y'||'Y'&&ele_bill=='y'||'Y'&&bnk_stat=='y'||'Y'){gotoxy(18,16);cprintf("LOAN APPROVED");}else{gotoxy(18,18);cprintf("LOAN NOT APPROVED");}}};

12

Page 13: Home Loan Emi Calculation

clrscr();framework();documents obj;obj.getdata();obj.approval();getch();

}

5. This is coding for EMI calculation............................................................

void emical(void){class date{int month,day,year;public:

void getdate(void){cin>>day>>month>>year;}

int caldiff(date &d1,date&d2){int temp1;temp1=(((d2.year-d1.year)-1)*12)+((12-d1.month)+d2.month);return(temp1);}};

class emical{double principal;float rate;int time;float n;float r;double emi;date d1,d2;int nom;

public:void getdata(void)

13

Page 14: Home Loan Emi Calculation

{

gotoxy(18,6);cprintf("ENTER PRINCIPAL(RS.)");

gotoxy(18,8);cprintf("ENTER RATE(P.A.)");

gotoxy(18,10);cprintf("ENTER TIME (YRS)");

gotoxy(18,12);cprintf("CALCULATED EMI:");

gotoxy(18,16);cprintf("ENTER DATE OF LOAN:");

gotoxy(18,18);cprintf("ENTER PRESENT DATE:");

gotoxy(18,20);cprintf("LOAN LEFT TO PAY:");

gotoxy(40,6);cin>>principal;gotoxy(42,8);cin>>rate;gotoxy(40,10);cin>>time;gotoxy(40,16);d1.getdate();gotoxy(40,18);d2.getdate();

nom=d1.caldiff(d1,d2);

}

void cal(void){n=(time*12);r=(rate/12)/100;emi=(principal*r*(pow((1+r),n)))/(pow((1+r),n)-1);gotoxy(40,12);cout<<emi;}

void loanleft(void)

14

Page 15: Home Loan Emi Calculation

{gotoxy(50,20);cout<<(principal-(nom*emi));}

};

char ans;do{clrscr();framework();emical obj;obj.getdata();obj.cal();obj.loanleft();gotoxy(15,22);cprintf("WANT TO CALCULATE MORE");ans=getche();}while(ans=='y'||ans=='Y');

getch();}

6. This is coding for framework....................................................

void framework(void){int i,j;i=15,j=4;for(i;i<=65;i++){textcolor(i);gotoxy(i,j);cprintf("*");delay(25);}

for(j;j<=20;j++){textcolor(j);gotoxy(i,j);cprintf("*");delay(25);}

15

Page 16: Home Loan Emi Calculation

for(i;i>=15;i--){textcolor(i);gotoxy(i,j);cprintf("*");delay(25);}

for(j;j>=4;j--){textcolor(j);gotoxy(i,j);cprintf("*");delay(25);}

}

16

Page 17: Home Loan Emi Calculation

ABSTRACT

My project includes classes, functions, control structure, file handling etc which are the basic building blocks of any object oriented programming language. when we run the program the first screen we encounter is the front screen which I have made colourful by making the use of textcolor() function and delay() function which are present in conio.h and dos.h header files respectively. After running the program, control is transferred to mainmenu() function which has been called by frontscreen program. from the main menu, we can make various selections depending upon our requirement. for example, if we want to enter customer data, we will press1 and the corresponding function customerdata() will be executed. After that, control will again come back to the main menu depending upon what we enter in the customerdata screen at the end. if we press ‘y’ in the customerdata screen, it will repeat itself, but if we press ‘n’, the control will come back to the main menu. Similarly, other functions document() and emical() work.The program will exit if we make a choice of 4 in the main menu.

17