Calculator program in C language using graphics

Calculator program in C:

[c]
#include
#include
#include
#include
union REGS i,o;
char *text[]={ “7”,”8″,”9″,”*”,
“4”,”5″,”6″,”/”,
“1”,”2″,”3″,”+”,
“0”,”00″,”.”,”-“,
“M”,”M+”,”M-“,”+/-“,
“MR”,”MC”,”x^2″,”sr”,
“OFF”,”AC”,”CE”,”=”};

int k=0,pass,op,prop,newnum=1,bt,memo=1,d=0,sq;
long double num=0,accum,m;

void normalbutton(int ,int ,int ,int,char**);

void main()
{
int gd=DETECT,gm,x1,x2,y1,y2,i,j,maxx,maxy,x,y,button;
char *text1[]={“”,”p”,”r”,”o”,”g”,”r”,”a”,”m”,” “,”b”,”y”,”:”,
“W”,”e”,”b”,”e”,”d”,”u”,”c”,”l”,”i”,”c”,”k”};

initgraph(&gd, &gm, “C:\\TC\\BGI”);

if(initmouse()==0)
{
closegraph();
restorecrtmode();
printf(“Mouse driver not loded”);
exit(1);
}
showmouseptr();
movemouseptr(&x,&y);

setbkcolor(11);
setcolor(1);
rectangle(198,140,417,163);
rectangle(199,141,418,164);
rectangle(197,139,416,162);
rectangle(185,130,430,450);
rectangle(184,129,431,451);
rectangle(182,127,433,454);
rectangle(181,126,434,453);

outtextxy(200,50,”*** Welcome to Webeduclick Calculator ***”);
outtextxy(200,100,”Press OFF button to exit….”);
y1=140;
y2=160;

for(j=0;j<7;j++) { x1=200; x2=235; y1+=40; y2+=40; for(i=0;i<4;i++) { normalbutton(x1,x2,y1,y2,text); x1+=60; x2+=60; } } while(1) { getmousepos(&button,&x,&y); y1=140; y2=160; for(j=0;j<7;j++) { x1=200; x2=235; y1+=40; y2+=40; for(i=0;i<4;i++) { if((xx1)&&(yy1))
{
if((button & 1)==1)
{ gotoxy(28,10);
bt=j*4+i;
setcolor(11);
outtextxy(x1+12,y1+7,text[j*4+i]);

if(num>pow(10.0,18))
exit();
delay(10);
delay(250);
delay(10);
switch (bt)
{
case 8 :
addnum(1);
break;
case 9 :
addnum(2);
break;
case 10 :
addnum(3);
break;
case 4 :
addnum(4);
break;
case 5 :
addnum(5);
break;
case 6 :
addnum(6);
break;
case 0 :
addnum(7);
break;
case 1 :
addnum(8);
break;
case 2 :
addnum(9);
break;
case 12 :
addnum(0);
break;
case 11 :
operation(1);
break;
case 15 :
operation(2);
break;
case 3 :
operation(3);
break;
case 7 :
operation(4);
break;
case 13:
doublezero();
break;
case 14 :
decimal();
break;
case 16:
mem();
break;
case 20:
recallmem();
break;
case 19:
plusminus();
break;
case 17:
plusm();
break;
case 18:
minusm();
break;
case 21:
clearm();
break;
case 22 :
square();
break;
case 23:

sqroot();
break;
case 24:

hidemouseptr();
setcolor(1);
for(j=0;j<20;j++) { for(i=75;i<481;i+=20) line(0,0+i+j,640,j+0+i); delay(100); } setcolor(14); outtextxy(225,200,"Thanks for using Webeduclick Calculator !"); delay(2000); setcolor(13); for(j=0;j<20;j++) { for(i=0;i<640;i+=20) line(0+i+j,0,j+0+i,640); delay(100); } setcolor(1); for(i=0;i<25;i++) { outtextxy(75+10*i,200,text1[i]); delay(50); } for(i=0;i<29;i++) { delay(50); } delay(2500); delay(10); exit(); break; case 25: allclear(); break; case 26: clear(); break; case 27: operation(5); break; } setcolor(1); outtextxy(x1+12,y1+7,text[j*4+i]); } } x1+=60; x2+=60; } } } } void normalbutton(int x1,int x2,int y1,int y2,char **text) { setcolor(15); rectangle(x1-2,y1-2,x2+1,y2+1); rectangle(x1-1,y1-1,x2+2,y2+2); setcolor(7); rectangle(x1,y1,x2+2,y2+2); rectangle(x1,y1,x2+1,y2+1); setfillstyle(SOLID_FILL,2); bar(x1,y1,x2,y2); setcolor(1); outtextxy(x1+12,y1+7,text[k]); k++; } initmouse() { i.x.ax=0; int86 (0x33,&i,&o); return(o.x.ax); } hidemouseptr() { i.x.ax=2; int86(0x33,&i,&o); } showmouseptr() { i.x.ax=1; int86(0x33,&i,&o); return 0; } getmousepos(int *button,int *x,int *y) { i.x.ax=3; int86(0x33,&i,&o); *button=o.x.bx; *x=o.x.cx; *y=o.x.dx; return 0; } movemouseptr(int *x,int *y) { i.x.ax=4; int86(0x33,&i,&o); o.x.cx=*x; o.x.dx=*y; return 0; } addnum(int pass) { if(sq) newnum=1; if(newnum) { if(d) { num=pass/(pow(10.0,d)); d++; newnum=0; } else { num=pass; newnum=0; } } else { { if(d) { if(num<0) num=num-pass/(pow(10.0,d)); else num=num+pass/(pow(10.0,d)); d++; } else { num=num*10+pass; } } } printf("%25.5Lf",num); } operation(int opr) { long double pnum; pnum=num; if(newnum && (prop != 5) && memo) { } else { newnum=1; d=0; sq=0; switch(prop) { case 1: accum=accum+pnum; break; case 2: accum=accum-pnum; break; case 3: accum=accum*pnum; break; case 4: accum=accum/pnum; break; default: accum=pnum; } } prop=opr; num=accum; printf("%25.5Lf",num); } allclear() { sq=0; accum=0; num=0; d=0; newnum=1; printf("%25.5Lf",num); } mem() { m=num; } recallmem() { memo=0; printf("%25.5Lf",m); num=m; } plusminus() { if(num!=0) { num*=-1; printf("%25.5Lf",num); } } plusm() { m+=num; } minusm() { m-=num; } clearm() { m=0; } decimal() { if(!d) {d=1; if(newnum==1) { num=0; } printf("%25.5Lf",num); } } square() { sq=1; num*=num; printf("%25.5Lf",num); } sqroot() { sq=1; num=pow(num,0.5); printf("%25.5Lf",num); } doublezero() { if(d) { d++; d++; } else num*=100; printf("%25.5Lf",num); } clear() { num=0; printf("%25.5Lf",num); } [/c] Output:

Calculator program in C language using graphics

Leave a Reply

Your email address will not be published. Required fields are marked *