Showing posts with label c graphics. Show all posts
Showing posts with label c graphics. Show all posts

Friday, September 4, 2009

A DIGITAL WATCH

#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "dos.h"

void clear(int,int,int,int);

void main()
{
int gd = DETECT,gm,hour,min,sec,midx,midy,temp;
char buffer[20],ch;
struct time now;
initgraph(&gd,&gm,"c:\\tc\\bgi");
midx = getmaxx()/2;
midy = getmaxy()/2;
setcolor(RED);
rectangle(midx-210,midy-40,midx+198,midy+30);
outtextxy(midx-80,midy+190,"Press \"ESC\" to Exit");
gettime(&now);
if(now.ti_hour > 12)
{
setcolor(GREEN);
settextstyle(5,HORIZ_DIR,5);
outtextxy(midx+170,midy-20,"PM");
hour = now.ti_hour - 12;
ch = 'p';
}
else
{
setcolor(GREEN);
settextstyle(5,HORIZ_DIR,5);
outtextxy(midx+170,midy-20,"AM");
hour = now.ti_hour;
ch = 'a';
}
min = now.ti_min;
sec = now.ti_sec;
while(1)
{
if(kbhit())
{
if(getch() == 27)
break;
}

if(hour == 12 && min == 0 && sec == 0 && ch == 'a')
{
setcolor(BLACK);
settextstyle(5,HORIZ_DIR,5);
outtextxy(midx+170,midy-20,"AM");
setcolor(GREEN);
outtextxy(midx+170,midy-20,"PM");
}
if(hour == 12 && min == 0 && sec == 0 && ch == 'p')
{
setcolor(BLACK);
settextstyle(5,HORIZ_DIR,5);
outtextxy(midx+170,midy-20,"PM"); /* To Overwrite Previous Notation */
setcolor(GREEN);
outtextxy(midx+170,midy-20,"AM");
}

delay(1000);
if(sec >= 59)
{
clear(midx-12,midy-32,midx+32,midy+25);
min++;

if(min > 59)
{
min = 0;
hour++;
if(hour > 12)
hour -= 12;
clear(midx-144,midy-32,midx-101,midy+25);
if(hour > 9)
{
clear(midx-144,midy-32,midx-101,midy+25);
clear(midx-198,midy-32,midx-156,midy+25);
}
}

if(min%10 == 0)
clear(midx-67,midy-32,midx-25,midy+25);
sec = 0;
}
else
sec++;

if(sec%10 == 0)
clear(midx+65,midy-32,midx+107,midy+25);

clear(midx+120,midy-32,midx+162,midy+25); /* To clear seconds */
sprintf(buffer,"%02d:%02d:%02d",hour,min,sec);
setcolor(BROWN);
settextstyle(5,HORIZ_DIR,8);
outtextxy(midx-195,midy-70,buffer);
}
closegraph();
}

/* This function clears the specified area */
/* by glowing the pixel of that area in black color */

void clear(int x1,int y1,int x2,int y2)
{
int x,y;
for(x=x1;x<=x2;x++)
for(y=y1;y<=y2;y++)
putpixel(x,y,BLACK);
}

PROGRAM TO MAKE A PIECHART

#include "stdio.h"
#include "conio.h"
#include "process.h"
#include "graphics.h"

float angle(int,int);

void main()
{
int gd = DETECT,gm,midx,midy,temp,errorcode;
int comp,ele,civil,arc,start_angle,end_angle,total;
float percent;
char convert[6];

initgraph(&gd,&gm,"c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk) /* An Error Occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* Terminate with an error code */
}
midx = getmaxx()/2;
midy = getmaxy()/2;

/* Input Data and Calculates Total */
do
{
cleardevice();
setcolor(RED);
outtextxy(15,10,"ENTER NUMBER OF STUDENTS ON FOLLOWING FACULTIES");
setcolor(BROWN);
outtextxy(15,38,"Computer :");
gotoxy(17,3);
scanf("%d",&comp);
outtextxy(15,53,"Electronics :");
gotoxy(17,4);
scanf("%d",&ele);
outtextxy(15,68,"Civil :");
gotoxy(17,5);
scanf("%d",&civil);
outtextxy(15,83,"Architect :");
gotoxy(17,6);
scanf("%d",&arc);
total = comp+ele+civil+arc;

/* Formats and Makes a Piechart with the help of */
/* function pieslice() and simple mathmatical calculations */

setcolor(RED);
rectangle(70,150,midx+260,midy+150);

setcolor(BLACK);
setfillstyle(SOLID_FILL,GREEN);
start_angle = 0;
end_angle = start_angle+angle(comp,total);
if(start_angle >= end_angle)
; /* Does Nothing */
else
pieslice(midx-120,midy+30,start_angle,end_angle,100); /* Draw a Sector */

start_angle = end_angle;
end_angle = start_angle+angle(ele,total);
if(start_angle >= end_angle)
;
else
{
setfillstyle(SOLID_FILL,BLUE);
pieslice(midx-120,midy+30,start_angle,end_angle,100);
}

start_angle = end_angle;
end_angle = start_angle+angle(civil,total);
if(start_angle >= end_angle)
;
else
{
setfillstyle(SOLID_FILL,BROWN);
pieslice(midx-120,midy+30,start_angle,end_angle,100);
}

start_angle = end_angle;
end_angle = 360;
if(start_angle >= end_angle)
;
else
{
setfillstyle(SOLID_FILL,CYAN);
pieslice(midx-120,midy+30,start_angle,end_angle,100);
}

/* Draw Bars */
setfillstyle(SOLID_FILL,GREEN);
bar(midx+50,midy-30,midx+60,midy-20);
setfillstyle(SOLID_FILL,BLUE);
bar(midx+50,midy-10,midx+60,midy);
setfillstyle(SOLID_FILL,BROWN);
bar(midx+50,midy+10,midx+60,midy+20);
setfillstyle(SOLID_FILL,CYAN);
bar(midx+50,midy+30,midx+60,midy+40);

/* Displays Informations with Percentage */

setcolor(LIGHTBLUE);
outtextxy(midx+75,midy-28,"Computer");
percent = ((float) comp/total)*100;
sprintf(convert,"(%.2f\%)",percent);
outtextxy(midx+165,midy-28,convert);

outtextxy(midx+75,midy-8,"Electronics");
percent = ((float) ele/total)*100;
sprintf(convert,"(%.2f\%)",percent);
outtextxy(midx+165,midy-8,convert);

outtextxy(midx+75,midy+13,"Civil");
percent = ((float) civil/total)*100;
sprintf(convert,"(%.2f\%)",percent);
outtextxy(midx+165,midy+13,convert);

outtextxy(midx+75,midy+33,"Architect");
percent = ((float) arc/total)*100;
sprintf(convert,"(%.2f\%)",percent);
outtextxy(midx+165,midy+33,convert);

setcolor(RED);
outtextxy(midx-90,midy+200,"Press \"ESC\" to stop.");

} while(getch() != 27);

/* Clean Up */
closegraph();
}

float angle(int x,int total)
{
float degree;
degree = ((float)x/total) * 360; /* Converts the data to degree */
return degree;
}

Monday, July 13, 2009

PROGRAM TO ACCEPT USERNAME AND PASSWORD

#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "string.h"
#include "dos.h"

void main()
{

char userid[15],password[11];
int gd = DETECT,gm,midx,midy,i;
initgraph(&gd,&gm,"c:\\tc\\bgi");
midx = getmaxx()/2;
midy = getmaxy()/2;

do
{

fflush(stdin);
cleardevice();
setcolor(LIGHTGREEN);
rectangle(midx-130,midy+30,midx+100,midy+115); /* Lower Rectangle */

setcolor(RED);
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
outtextxy(midx-120,midy+53,"USER ID : ");
outtextxy(midx-120,midy+85,"PASSWORD : ");

setcolor(DARKGRAY);
rectangle(midx-35,midy+68,midx+90,midy+45);
rectangle(midx-35,midy+77,midx+90,midy+100);

setcolor(LIGHTCYAN);
line(midx-130,midy+70,midx-190,midy+70); /* A1 */
line(midx+100,midy+70,midx+160,midy+70); /* A2 */
line(midx-190,midy-150,midx-190,midy+70); /* B1 */
line(midx+160,midy-150,midx+160,midy+70); /* B2 */
line(midx-190,midy-150,midx-130,midy-150); /* C1 */
line(midx+160,midy-150,midx+100,midy-150); /* C2 */

setcolor(LIGHTGREEN);
rectangle(midx-130,midy-180,midx+100,midy-120); /* Upper Rectangle */

setcolor(RED);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,2);
outtextxy(midx-100,midy-165,"VERIFY YOURSELF");

setcolor(DARKGRAY);
settextstyle(SMALL_FONT,HORIZ_DIR,7);
outtextxy(midx-145,midy-60,"DEPARTMENT OF COMPUTER");

gotoxy(37,19);
gets(userid);
if(strcmpi(userid,"exit") == 0)
exit(0);

settextstyle(SMALL_FONT,HORIZ_DIR,5);
outtextxy(midx+5,midy+98,"Max 8 Chars");
fflush(stdin);
gotoxy(36,21);
i = 0;
while((password[i++]=getche()) != 13)
printf("*");
password[i-1] = '\0'; /* Ending the Password with Terminating Null Character */

if((strcmpi(userid,"ADMINISTRATOR") || strcmp(password,"software")) == 0)
{
setcolor(GREEN);
settextstyle(9,HORIZ_DIR,1);
outtextxy(midx-140,midy-30,"ACCESS GRANTED");
delay(1000);
}
else
{
setcolor(RED);
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
outtextxy(midx-60,midy-10,"ACCESS DENIED");
outtextxy(midx-45,midy+2,"Try Again");
outtextxy(midx-80,midy+15,"Type \"exit\" to stop.");
printf("\a"); /* For Audible Sound */
delay(900);
}

}while((strcmpi(userid,"ADMINISTRATOR") || strcmp(password,"software")) != 0);

}

Friday, June 26, 2009

PROGRAM TO MAKE A MENU BY USING C GRAPHICS

#include "conio.h"
#include "graphics.h"
#include "stdio.h"

void main(void)
{
char ch;
int gd=DETECT,gm,xcord,ycord;
initgraph(&gd,&gm,"c:\\tc\\bgi");
xcord=getmaxx()/2;
ycord=100;
setcolor(GREEN);
settextjustify(CENTER_TEXT,CENTER_TEXT);
settextstyle(2,HORIZ_DIR,15);
outtextxy(xcord,ycord,"RECORD ENTRY SYSTEM");
setcolor(RED+BLINK);
settextjustify(LEFT_TEXT,BOTTOM_TEXT);
settextstyle(12,HORIZ_DIR,2);
outtextxy(xcord+70,138,">>by ANKIT POKHREL<<");
setcolor(CYAN);
line(60,85,580,85);
line(60,145,580,145);
line(60,85,60,380);
line(580,85,580,380);
line(60,380,580,380);
line(60,348,580,348);
line(xcord-40,145,xcord-40,348);
line(xcord-40,325,580,325);
setcolor(DARKGRAY);
settextstyle(2,HORIZ_DIR,6);
outtextxy(xcord-250,170,"1: ADD");
outtextxy(xcord-250,195,"2: VIEW LIST");
outtextxy(xcord-250,220,"3: SEARCH");
outtextxy(xcord-250,245,"4: MODIFY");
outtextxy(xcord-250,270,"5: DELETE");
outtextxy(xcord-250,295,"6: CLEAR SCREEN");
outtextxy(xcord-250,320,"0: CLOSE APPLICATION");
setcolor(GREEN);
settextjustify(CENTER_TEXT,CENTER_TEXT);
settextstyle(12,HORIZ_DIR,3);
outtextxy(xcord+27,338,"ENTER CHOICE : ");
setcolor(RED+BLINK);
settextstyle(11,HORIZ_DIR,1);
outtextxy(xcord-27,365,"INFO: THANK YOU FOR USING THIS SOFTWARE.");
fflush(stdin);
ch=getche();
fflush(stdin);
getch();
restorecrtmode();
}


by Ankit Pokhrel.