#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<graphics.h>
#define TBG textbackground(WHITE);textcolor(BLUE)
typedef struct customer
{
long id;
char name[20];
char pn[12];
char address[40];
char category;
int doj[3];
}cust;
typedef struct movie
{
long id;
char title[25];
int copy;
int cponshelf;
int issue;
char sid[20];
int loc;
}mov;
typedef struct transaction
{
long invoice;
int doi[3];
int dor[3];
char title[25];
int fine;
long cid;
char cname[20];
int copies;
int rent;
int tam;
}transaction;
cust ctr;
mov mv;
transaction tran;
FILE *fc,*fm,*ft,*tmp;
long int size;
int days,k=0;
struct date d;
void main_menu()
{
char *menu[]={"CUSTOMER SECTION",
"MOVIE SECTION",
"TRANSACTION SECTION",
"EXIT"};
char ch;
int gd=DETECT,gm,i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("MAIN MENU",180);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==4)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=3;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=3;
selectbox(choice,menu[choice]);
for(i=0;i<=3;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
switch(choice)
{
case 0:
size=sizeof(ctr);
customer();
break;
case 1:
movie();
break;
case 2:
transactions();
break;
case 3:
closegraph();
restorecrtmode();
exit(0);
}
}
customer()
{
char *menu[]={
"ADD CUSTOMER",
"MODIFY CUSTOMER",
"DELETE CUSTOMER",
"LIST CUSTOMER",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm;
int i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("CUSTOMER MENU",130);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
box(5,menu[5]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==6)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=5;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
if((fc=fopen("c:\customer.txt","rb+"))==NULL)
fc=fopen("c:\customer.txt","wb+");
switch(choice)
{
case 0:
addcus();
break;
case 1:
rewind(fc);
modify();
break;
case 2:
delete();
break;
case 3:
listcust();
break;
case 4:
fclose(fc);
main_menu();
break;
case 5:
fclose(fc);
exit(1);
}
}
movie()
{
char *menu[]={
"ADD MOVIE",
"LIST MOVIES",
"SEARCH MOVIE",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm;
int i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("MOVIE MENU",165);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==5)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=4;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=4;
selectbox(choice,menu[choice]);
for(i=0;i<=4;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
/*textcolor(4);*/
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
switch(choice)
{
case 0:
addmov();
break;
case 1:
listmov();
break;
case 2:
searchmov();
break;
case 3:
main_menu();
break;
case 4:
fclose(fm);
exit(1);
}
}
transactions()
{
char *menu[]={
"NEW TRANSACTION",
"CLOSE TRANSACTION",
"LIST TRANSACTIONS",
"SEARCH MOVIE",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm,i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("TRANSACTION MENU",100);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
box(5,menu[5]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==6)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=5;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
ft=fopen("c:\transact.txt","rb+");
if(ft==NULL)
ft=fopen("c:\transact.txt","wb+");
switch(choice)
{
case 0:
addtran();
break;
case 1:
closetran();
break;
case 2:
listtran();
break;
case 3:
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
searchmov();
break;
case 4:
main_menu();
break;
case 5:
exit(0);
}
}
addcus()
{
char another='y';
fseek(fc,0,SEEK_END);
TBG;
while(another=='y'||another=='Y')
{
clrscr();
printf("\n******************** ADD CUSTOMER FORM**********************");
printf("\nCUSTOMER ID(NUMERIC) :");
printf("\nCUSTOMER NAME :");
printf("\nCUSTOMER PHONE NO :");
printf("\nCUSTOMER ADDRESS :");
printf("\nDATE OF JOINING :");
printf("\nCATEGORY(H/A/C/R/S/T) :");
gotorc(2,24);
customid();
gotorc(4,24);
fflush(stdin);
gets(ctr.name);
gotorc(6,24);
fflush(stdin);
gets(ctr.pn);
gotorc(8,24);
fflush(stdin);
gets(ctr.address);
gotorc(10,24);
fflush(stdin);
getdate(&d);
ctr.doj[0]=d.da_day;ctr.doj[1]=d.da_mon;ctr.doj[2]=d.da_year;
printf("\n%d/%d/%d",d.da_day,d.da_mon,d.da_year);
gotorc(12,24);
fflush(stdin);
ctr.category=getche();
gotorc(16,3);
printf("\nDO YOU WANT TO SUBMIT THIS FORM (Y/N)");
fflush(stdin);
another=getch();
if(another=='y'||another=='Y')
fwrite(&ctr,size,1,fc);
gotorc(18,3);
printf("\nDO YOU WANT TO ADD ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
customid()
{
rewind(fc);
if(fread(&ctr,sizeof(ctr),1,fc)!=1)
ctr.id=1;
else
{
while(fread(&ctr,sizeof(ctr),1,fc)==1);
ctr.id++;
}
printf("\n%ld",ctr.id);
}
modify()
{
char another='y',choice,name[20],flag='n';
long id;
TBG;
while(another=='y'||another=='Y')
{
clrscr();
rewind(fc);
printf("SEARCH BY NAME : PRESS 1 SEARCH BY ID : PRESS2");
fflush(stdin);
choice=getchar();
if(choice=='2')
{
printf("ENTER CUSTOMER ID : ");
scanf("%ld",&id);
while(fread(&ctr,size,1,fc)==1)
{
if(ctr.id==id)
{
new();
flag='y';
break;
}
}
}
if(choice=='1')
{
printf("ENTER CUSTOMER NAME : ");
fflush(stdin);
gets(name);
while(fread(&ctr,size,1,fc)==1)
{
if(strcmpi(ctr.name,name)==0)
{
new();
flag='y';
break;
}
}
}
if(flag=='n')
{
gotorc(15,3);
printf("CUSTOMER NOT FOUND............ !");
}
gotorc(18,3);
printf("DO YOU WANT TO MODIFY ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
new()
{
char another='y';
clrscr();
TBG;
fseek(fc,-size,SEEK_CUR);
printf("\nCUSTOMER'S NEW NAME :");
printf("\nCUSTOMER'S NEW PHONE NO :");
printf("\nCUSTOMER'S NEW ADDRESS :");
printf("\nNEW DATE OF JOINING (DD<-|MM<-|YYYY<-|) :");
printf("\nNEW CATEGORY(H/A/C/R/S/T) :");
gotorc(1,43);
fflush(stdin);
gets(ctr.name);
gotorc(3,43);
fflush(stdin);
gets(ctr.pn);
gotorc(5,43);
fflush(stdin);
gets(ctr.address);
gotorc(7,43);
fflush(stdin);
scanf("%d",&ctr.doj[0]);
gotorc(7,45);
printf("%c",'/');
scanf("%d",&ctr.doj[1]);
gotorc(7,48);
printf("%c",'/');
scanf("%d",&ctr.doj[2]);
gotorc(9,43);
fflush(stdin);
ctr.category=getche();
gotorc(16,3);
printf("UPDATE THE CUSTOMER RECORD (Y/N)");
fflush(stdin);
another=getch();
if(another=='y'||another=='Y')
fwrite(&ctr,size,1,fc);
rewind(fc);
}
listcust()
{
int i=1,p=4;
clrscr();
TBG;
rewind(fc);
printf("****************************** CUSTOMERS LIST********************************");
gotorc(2,3);
printf("ID");
gotorc(2,8);
printf("NAME");
gotorc(2,22);
printf("PHONE NO");
gotorc(2,35);
printf("ADDRESS");
gotorc(2,55);
printf("D.O.J");
gotorc(2,68);
printf("CATEGORY");
while(fread(&ctr,size,1,fc)==1)
{
gotorc(p,3);
printf("%ld",ctr.id);
gotorc(p,8);
printf("%s",strupr(ctr.name));
gotorc(p,22);
printf("%s",ctr.pn);
gotorc(p,35);
printf("%s",strupr(ctr.address));
gotorc(p,55);
printf("%d/%d/%d",ctr.doj[0],ctr.doj[1],ctr.doj[2]);
gotorc(p,70);
printf("%c",toupper(ctr.category));
if(i%15==0)
{
gotorc(40,3);
printf("PRESS ANY KEY TO CONTINUE.....");
getch();
clrscr();
p=4;
}
p+=2;
i++;
}
printf("PRESS ANY KEY TO BACK TO CUSTOMER MENU");
getch();
customer();
}
delete()
{
char another='y',choice,name[20],flag='n';
long id;
tmp=fopen("c:\temp.txt","wb");
rewind(fc);
TBG;
while(another=='y'||another=='Y')
{
clrscr();
printf(" DELETE BY NAME : 1 DELETE BY ID : 2");
fflush(stdin);
choice=getchar();
if(choice=='2')
{
printf("ENTER CUSTOMER ID : ");
scanf("%ld",&id);
clrscr();
while(fread(&ctr,size,1,fc)==1)
{
if(ctr.id!=id)
fwrite(&ctr,size,1,tmp);
else
flag='y';
}
}
if(choice=='1')
{
printf("ENTER CUSTOMER NAME : ");
fflush(stdin);
gets(name);
clrscr();
while(fread(&ctr,size,1,fc)==1)
{
if(strcmpi(ctr.name,name)!=0)
fwrite(&ctr,size,1,tmp);
else
flag='y';
}
}
fclose(fc);
fclose(tmp);
remove("c:\customer.txt");
rename("c:\temp.txt","c:\customer.txt");
if(flag=='n')
printf("CUSTOMER NOT FOUND.... !");
printf("DO YOU WANT TO DELETE ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
addmov()
{
char another='y';
TBG;
fseek(fm,0,SEEK_END);
while(another=='y'||another=='Y')
{
clrscr();
printf("\n**********************ADD MOVIE FORM**************************");
printf("\nMOVIE ID(NUMERIC) :");
printf("\nMOVIE NAME :");
printf("\nNO OF COPIES :");
printf("\nSUPPLIER ID :");
printf("\nLOCATION :");
gotorc(1,24);
movid();
gotorc(2,24);
fflush(stdin);
gets(mv.title);
gotorc(3,24);
fflush(stdin);
scanf("%d",&mv.copy);
mv.cponshelf=mv.copy;
mv.issue=0;
gotorc(4,24);
fflush(stdin);
gets(mv.sid);
gotorc(5,24);
fflush(stdin);
scanf("%d",&mv.loc);
fwrite(&mv,sizeof(mv),1,fm);
printf("DO YOU WANT TO ADD ANOTHER MOVIE(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fm);
printf("PRESS ANY KEY TO BACK TO MOVIE MENU");
movie();
}
movid()
{
rewind(fm);
if(fread(&mv,sizeof(mv),1,fm)!=1)
mv.id=1;
else
{
while(fread(&mv,sizeof(mv),1,fm)==1);
mv.id++;
}
printf("%ld",mv.id);
}
listmov()
{
int i=1,p=4;
textbackground(WHITE);
textcolor(BLUE);
clrscr();
rewind(fm);
printf("\n****************************** MOVIE LIST********************************");
gotorc(2,1);
printf("ID");
gotorc(2,5);
printf("TITLE");
gotorc(2,25);
printf("TOT_CP");
gotorc(2,35);
printf("CP_O_SHELF");
gotorc(2,48);
printf("TOT_ISSUES");
gotorc(2,59);
printf("SUPPLIER ID");
gotorc(2,71);
printf("LOCATION");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
gotorc(p,1);
printf("%ld",mv.id);
gotorc(p,5);
printf("%s",strupr(mv.title));
gotorc(p,28);
printf("%d",mv.copy);
gotorc(p,40);
printf("%d",mv.cponshelf);
gotorc(p,52);
printf("%d",mv.issue);
gotorc(p,59);
printf("%s",mv.sid);
gotorc(p,74);
printf("%d",mv.loc);
if(i%10==0)
{
printf("PRESS ANY KEY TO CONTINUE.....");
fflush(stdin);
getch();
clrscr();
p=4;
}
i++;
p+=2;
}
printf("PRESS ANY KEY TO BACK TO MOVIE MENU");
getch();
fclose(fm);
movie();
}
searchmov()
{
char mname[20],another;
TBG;
clrscr();
rewind(fm);
gotorc(5,5);
printf("ENTER MOVIE TITLE : ");
fflush(stdin);
gets(mname);
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(mv.title,mname)==0)
{
gotorc(7,12);
textcolor(0);
cprintf("MOVIE FOUND..");
textcolor(4);
gotorc(9,5);
printf("MOVIE TITLE : %s",mv.title);
gotorc(11,5);
printf("TOTAL NO OF COPIES : %d",mv.copy);
gotorc(13,5);
printf("NO OF COPIES AVAILABLE : %d",mv.cponshelf);
gotorc(15,5);
printf("SUPPLIER ID : %s",mv.sid);
gotorc(17,5);
printf("LOCATION : %d",mv.loc);
gotorc(20,5);
printf("DO YOU WANT TO SEARCH MORE MOVIES(Y/N)");
fflush(stdin);
another=getchar();
if(another=='y'||another=='Y')
searchmov();
fclose(fm);
movie();
}
}
gotorc(7,5);
textcolor(4);
cprintf("MOVIE NOT FOUND.....!");
textcolor(4);
gotorc(12,5);
printf("DO YOU WANT TO SEARCH MORE MOVIES(Y/N)");
fflush(stdin);
another=getchar();
if(another=='y'||another=='Y')
searchmov();
fclose(fm);
movie();
}
addtran()
{
char another='y',rec;
TBG;
fseek(ft,0,SEEK_END);
while(another=='y'||another=='Y')
{
clrscr();
printf("\n************************ TRANSACTION*************************");
printf("\nINVOICE NO(NUMERIC) :");
printf("\nMOVIE TITLE :");
printf("\nCOPIES AVAILABLE :");
printf("CUSTOMER ID :");
printf("CUSTOMER NAME :");
printf("NO. OF COPIES :");
printf("DATE OF ISSUE :");
gotorc(2,24);
invoice();
gotorc(4,24);
fflush(stdin);
gets(tran.title);
gotorc(6,24);
avail();
gotorc(8,24);
fflush(stdin);
scanf("%ld",&tran.cid);
custcheck();
gotorc(12,24);
fflush(stdin);
scanf("%d",&tran.copies);
if(tran.copies>mv.cponshelf)
{
gotorc(18,3);
printf("\nTRANSACTION NOT POSSIBLE :REQUIRED NO OF COPIES NOTAVAILABLE");
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
gotorc(14,24);
fflush(stdin);
getdate(&d);
tran.doi[0]=d.da_day;tran.doi[1]=d.da_mon;tran.doi[2]=d.da_year;
printf("\n%d/%d/%d",d.da_day,d.da_mon,d.da_year);
tran.dor[0]=0;
tran.rent=0;
gotorc(18,4);
printf("\nDO YOU WANT TO RECORD THIS TRANSACTION(Y/N)");
rec=getchar();
if(rec=='y'||rec=='Y')
{
update();
fwrite(&tran,sizeof(tran),1,ft);
}
printf("\nDO YOU WANT TO ADD ANOTHER TRANSACTION(Y/N)");
fflush(stdin);
another=getch();
}
fclose(ft);
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
transactions();
}
custcheck()
{
if((fc=fopen("c:\customer.txt","rb"))==NULL)
fc=fopen("c:\customer.txt","wb+");
rewind(fc);
while(fread(&ctr,sizeof(ctr),1,fc)==1)
{
if(ctr.id==tran.cid)
{
gotorc(10,24);
printf("%s",ctr.name);
strcpy(tran.cname,ctr.name);
fclose(fc);
return;
}
}
fclose(fc);
gotorc(18,4);
printf("\nINVALID CUSTOMER ............!");
gotorc(21,4);
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
invoice()
{
rewind(ft);
if(fread(&tran,sizeof(tran),1,ft)!=1)
tran.invoice=1;
else
{
while(fread(&tran,sizeof(tran),1,ft)==1);
tran.invoice++;
}
printf("%ld",tran.invoice);
}
avail()
{
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
printf("%d",mv.cponshelf);
fclose(fm);
return;
}
}
gotorc(18,3);
printf("%s","\nMOVIE NOT FOUND...!");
gotorc(21,3);
printf("\nPRESS ANY KEY TO RETURN");
getch();
fclose(fm);
transactions();
}
update()
{
long msize;
msize=sizeof(mv);
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
mv.cponshelf=mv.cponshelf-tran.copies;
mv.issue=mv.issue+tran.copies;
fseek(fm,-msize,SEEK_CUR);
fwrite(&mv,sizeof(mv),1,fm);
break;
}
}
fclose(fm);
return;
}
listtran()
{
int i=1;
TBG;
clrscr();
rewind(ft);
while(fread(&tran,sizeof(tran),1,ft)==1)
{
printf("\nINVOICE NO(NUMERIC) : %ld",tran.invoice);
printf("CUSTOMER ID : %ld",tran.cid);
printf("CUSTOMER NAME : %s",tran.cname);
printf("MOVIE TITLE : %s",tran.title);
printf("NO. OF COPIES : %d",tran.copies);
printf("DATE OF ISSUE :%d/%d/%d",tran.doi[0],tran.doi[1],tran.doi[2]);
if(tran.dor[0]!=0)
{
printf("DATE OF RETURN :%d/%d/%d",tran.dor[0],tran.dor[1],tran.dor[2]);
printf("RENT : %d",tran.rent);
printf("FINE : %d",tran.fine);
printf("TOTAL AMOUNT : %d",tran.tam);
}
printf("..................................................................");
if(i%2==0)
{
printf("PRESS ANY KEY TO CONTINUE.....");
getch();
clrscr();
}
i++;
}
fclose(ft);
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
closetran()
{
long id,sz;
TBG;
clrscr();
sz=sizeof(tran);
printf("ENTER INVOICE NO: ");
scanf("%ld",&id);
clrscr();
while(fread(&tran,sz,1,ft)==1)
{
if(tran.invoice==id)
{
if(tran.dor[0]!=0)
{
gotorc(4,4);
printf("THIS TRANSACTION IS ALL READY CLOSED...!");
gotorc(7,4);
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU......");
getch();
transactions();
}
fseek(ft,-sz,1);
getdate(&d);
tran.dor[0]=d.da_day;tran.dor[1]=d.da_mon;tran.dor[2]=d.da_year;
difference();
tran.rent=tran.copies*25;
if(k==0)
tran.fine=0;
else
tran.fine=tran.copies*(k-1)*5;
tran.tam=tran.rent+tran.fine;
printf("INVOICE NO(NUMERIC) : %ld",tran.invoice);
printf("CUSTOMER ID : %ld",tran.cid);
printf("CUSTOMER NAME : %s",tran.cname);
printf("MOVIE TITLE : %s",tran.title);
printf("NO. OF COPIES : %d",tran.copies);
printf("DATE OF ISSUE :%d/%d/%d",tran.doi[0],tran.doi[1],tran.doi[2]);
printf("DATE OF RETURN :%d/%d/%d ",tran.dor[0],tran.dor[1],tran.dor[2]);
printf("RENT : %d",tran.rent);
printf("FINE : %d",tran.fine);
printf("TOTAL AMOUNT : %d",tran.tam);
updateclose();
fwrite(&tran,sz,1,ft);
fclose(ft);
}
}
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
difference()
{
int t,m1,m2,y1,y2,d1,d2;
d1=tran.doi[0];
d2=tran.dor[0];
m1=tran.doi[1];
m2=tran.dor[1];
y1=tran.doi[2];
y2=tran.dor[2];
t=m1;
if(y2>y1)
{
while(y2>y1)
{
while(m1<=12)
{
check(m1,y1);
if(m1==t)
k=days-d1;
else
k=k+days;
m1=m1+1;
}
m1=1;y1++;
}
while(m1<m2)
{
check(m1,y1);
k=k+days;
m1++;
}
k=k+d2;
}
else
{
if(m1!=m2)
{
while(m1<m2)
{
check(m1,y1);
if(m1==t)
k=days-d1;
else
k=k+days;
m1=m1+1;
}
k=k+d2;
}
else
k=d2-d1;
}
}
check(int m1,int y1)
{
if(m1==1||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)
days=31;
else
{
if(m1!=2)
days=30;
else
{
if(y1%4==0)
days=29;
else
days=28;
}
}
}
updateclose()
{
long msize;
msize=sizeof(mv);
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
mv.cponshelf=mv.cponshelf+tran.copies;
fseek(fm,-msize,SEEK_CUR);
fwrite(&mv,msize,1,fm);
break;
}
}
fclose(fm);
return;
}
gotorc(int r,int c)
{
union REGS i,o;
i.h.ah=2;
i.h.bh=0;
i.h.dh=r;
i.h.dl=c;
int86(16,&i,&o);
}
screen1()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
setfillstyle(SOLID_FILL,WHITE);
bar(15,15,625,465);
setfillstyle(SOLID_FILL,RED);
bar(30,30,610,450);
settextstyle(1,0,8);
setcolor(WHITE);
outtextxy(190,35,"VIDEO");
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,140,385,130,20,20);
outtextxy(160,150,"LIBRARY");
bar3d(140,255,440,245,20,20);
outtextxy(165,270,"SYSTEM");
bar3d(145,375,440,365,20,20);
/* sleep(4); */
getch();
closegraph();
restorecrtmode();
}
screen2()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
setfillstyle(SOLID_FILL,WHITE);
bar(15,15,625,465);
setfillstyle(SOLID_FILL,RED);
bar(30,30,610,450);
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,100,420,300,25,25); /*members bar*/
settextstyle(1,1,10);
setcolor(WHITE);
outtextxy(10,55,"IIMS");
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,50,420,70,20,20); /*project members bar*/
bar3d(50,350,570,420,25,25); /*project guide bar*/
setcolor(BLUE);
settextstyle(1,0,2);
outtextxy(193,48,"PROJECT MEMBERS");
outtextxy(193,130,"MANISH MISHRA");
outtextxy(193,170,"VISHAL YADAV");
outtextxy(193,210,"SHIV KUMAR RAI");
outtextxy(193,250,"DINESH YADAV");
outtextxy(235,351,"PROJECT GUIDE:");
settextstyle(1,0,5);
outtextxy(140,373,"MR. AMIT TANEJA");
/* sleep(4); */
getch();
closegraph();
restorecrtmode();
}
box(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(179,108+55*i,409,138+55*i);
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(180,110+55*i,410,140+55*i);
setcolor(BLUE);
// setfillstyle(SOLID_FILL,BLUE);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
/* getch();
setfillstyle(SOLID_FILL,WHITE);
bar(180,60,390,90);
setfillstyle(SOLID_FILL,RED);
bar(179,59,389,89); */
/* bar3d(180,100,420,300,-25,25);*/ /*members bar*/
/* closegraph();
restorecrtmode(); */
}
selectbox(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(179,108+55*i,409,138+55*i);
setfillstyle(SOLID_FILL,9);
bar(180,110+55*i,410,140+55*i);
setcolor(WHITE);
// setfillstyle(SOLID_FILL,BLUE);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
/* getch();
setfillstyle(SOLID_FILL,WHITE);
bar(180,60,390,90);
setfillstyle(SOLID_FILL,RED);
bar(179,59,389,89); */
/* bar3d(180,100,420,300,-25,25);*/ /*members bar*/
/* closegraph();
restorecrtmode(); */
}
pressbutton(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(180,110+55*i,410,140+55*i);
setfillstyle(SOLID_FILL,9);
bar(179,108+55*i,409,138+55*i);
setcolor(CYAN);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
delay(350);
}
title(char *title,int x)
{
setfillstyle(SOLID_FILL,9);
bar(0,0,640,50);
setcolor(BLACK);
settextstyle(1,0,5);
outtextxy(x,0,title);
}
status()
{
setfillstyle(SOLID_FILL,9);
bar(0,450,640,480);
setcolor(BLACK);
settextstyle(1,0,3);
outtextxy(30,450,"USE UP & DOWN ARROW KEYS TO SELECT AN OPTION");
}
void main()
{
screen1();
screen2();
main_menu();
}
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<graphics.h>
#define TBG textbackground(WHITE);textcolor(BLUE)
typedef struct customer
{
long id;
char name[20];
char pn[12];
char address[40];
char category;
int doj[3];
}cust;
typedef struct movie
{
long id;
char title[25];
int copy;
int cponshelf;
int issue;
char sid[20];
int loc;
}mov;
typedef struct transaction
{
long invoice;
int doi[3];
int dor[3];
char title[25];
int fine;
long cid;
char cname[20];
int copies;
int rent;
int tam;
}transaction;
cust ctr;
mov mv;
transaction tran;
FILE *fc,*fm,*ft,*tmp;
long int size;
int days,k=0;
struct date d;
void main_menu()
{
char *menu[]={"CUSTOMER SECTION",
"MOVIE SECTION",
"TRANSACTION SECTION",
"EXIT"};
char ch;
int gd=DETECT,gm,i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("MAIN MENU",180);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==4)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=3;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=3;
selectbox(choice,menu[choice]);
for(i=0;i<=3;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
switch(choice)
{
case 0:
size=sizeof(ctr);
customer();
break;
case 1:
movie();
break;
case 2:
transactions();
break;
case 3:
closegraph();
restorecrtmode();
exit(0);
}
}
customer()
{
char *menu[]={
"ADD CUSTOMER",
"MODIFY CUSTOMER",
"DELETE CUSTOMER",
"LIST CUSTOMER",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm;
int i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("CUSTOMER MENU",130);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
box(5,menu[5]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==6)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=5;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
if((fc=fopen("c:\customer.txt","rb+"))==NULL)
fc=fopen("c:\customer.txt","wb+");
switch(choice)
{
case 0:
addcus();
break;
case 1:
rewind(fc);
modify();
break;
case 2:
delete();
break;
case 3:
listcust();
break;
case 4:
fclose(fc);
main_menu();
break;
case 5:
fclose(fc);
exit(1);
}
}
movie()
{
char *menu[]={
"ADD MOVIE",
"LIST MOVIES",
"SEARCH MOVIE",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm;
int i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("MOVIE MENU",165);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==5)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=4;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=4;
selectbox(choice,menu[choice]);
for(i=0;i<=4;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
/*textcolor(4);*/
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
switch(choice)
{
case 0:
addmov();
break;
case 1:
listmov();
break;
case 2:
searchmov();
break;
case 3:
main_menu();
break;
case 4:
fclose(fm);
exit(1);
}
}
transactions()
{
char *menu[]={
"NEW TRANSACTION",
"CLOSE TRANSACTION",
"LIST TRANSACTIONS",
"SEARCH MOVIE",
"BACK TO MAIN MENU",
"EXIT"
};
char ch;
int gd=DETECT,gm,i,choice=0;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
title("TRANSACTION MENU",100);
status();
box(0,menu[0]);
box(1,menu[1]);
box(2,menu[2]);
box(3,menu[3]);
box(4,menu[4]);
box(5,menu[5]);
selectbox(choice,menu[choice]);
//72 up
//80 down
//75 left
//77 right
//13 enter
//49 1
//71 Home
//79 End
//73 PgUp
//81 PgDown
//27 Escape
while((ch=getch())!=13)
{
switch(ch)
{
case 80:
case 81:
choice++;
if(choice==6)
choice=0;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
break;
case 72:
case 73:
choice--;
if(choice==-1)
choice=5;
selectbox(choice,menu[choice]);
for(i=0;i<=5;i++)
{
if(i==choice) continue;
box(i,menu[i]);
}
}
}
pressbutton(choice,menu[choice]);
closegraph();
restorecrtmode();
clrscr();
ft=fopen("c:\transact.txt","rb+");
if(ft==NULL)
ft=fopen("c:\transact.txt","wb+");
switch(choice)
{
case 0:
addtran();
break;
case 1:
closetran();
break;
case 2:
listtran();
break;
case 3:
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
searchmov();
break;
case 4:
main_menu();
break;
case 5:
exit(0);
}
}
addcus()
{
char another='y';
fseek(fc,0,SEEK_END);
TBG;
while(another=='y'||another=='Y')
{
clrscr();
printf("\n******************** ADD CUSTOMER FORM**********************");
printf("\nCUSTOMER ID(NUMERIC) :");
printf("\nCUSTOMER NAME :");
printf("\nCUSTOMER PHONE NO :");
printf("\nCUSTOMER ADDRESS :");
printf("\nDATE OF JOINING :");
printf("\nCATEGORY(H/A/C/R/S/T) :");
gotorc(2,24);
customid();
gotorc(4,24);
fflush(stdin);
gets(ctr.name);
gotorc(6,24);
fflush(stdin);
gets(ctr.pn);
gotorc(8,24);
fflush(stdin);
gets(ctr.address);
gotorc(10,24);
fflush(stdin);
getdate(&d);
ctr.doj[0]=d.da_day;ctr.doj[1]=d.da_mon;ctr.doj[2]=d.da_year;
printf("\n%d/%d/%d",d.da_day,d.da_mon,d.da_year);
gotorc(12,24);
fflush(stdin);
ctr.category=getche();
gotorc(16,3);
printf("\nDO YOU WANT TO SUBMIT THIS FORM (Y/N)");
fflush(stdin);
another=getch();
if(another=='y'||another=='Y')
fwrite(&ctr,size,1,fc);
gotorc(18,3);
printf("\nDO YOU WANT TO ADD ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
customid()
{
rewind(fc);
if(fread(&ctr,sizeof(ctr),1,fc)!=1)
ctr.id=1;
else
{
while(fread(&ctr,sizeof(ctr),1,fc)==1);
ctr.id++;
}
printf("\n%ld",ctr.id);
}
modify()
{
char another='y',choice,name[20],flag='n';
long id;
TBG;
while(another=='y'||another=='Y')
{
clrscr();
rewind(fc);
printf("SEARCH BY NAME : PRESS 1 SEARCH BY ID : PRESS2");
fflush(stdin);
choice=getchar();
if(choice=='2')
{
printf("ENTER CUSTOMER ID : ");
scanf("%ld",&id);
while(fread(&ctr,size,1,fc)==1)
{
if(ctr.id==id)
{
new();
flag='y';
break;
}
}
}
if(choice=='1')
{
printf("ENTER CUSTOMER NAME : ");
fflush(stdin);
gets(name);
while(fread(&ctr,size,1,fc)==1)
{
if(strcmpi(ctr.name,name)==0)
{
new();
flag='y';
break;
}
}
}
if(flag=='n')
{
gotorc(15,3);
printf("CUSTOMER NOT FOUND............ !");
}
gotorc(18,3);
printf("DO YOU WANT TO MODIFY ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
new()
{
char another='y';
clrscr();
TBG;
fseek(fc,-size,SEEK_CUR);
printf("\nCUSTOMER'S NEW NAME :");
printf("\nCUSTOMER'S NEW PHONE NO :");
printf("\nCUSTOMER'S NEW ADDRESS :");
printf("\nNEW DATE OF JOINING (DD<-|MM<-|YYYY<-|) :");
printf("\nNEW CATEGORY(H/A/C/R/S/T) :");
gotorc(1,43);
fflush(stdin);
gets(ctr.name);
gotorc(3,43);
fflush(stdin);
gets(ctr.pn);
gotorc(5,43);
fflush(stdin);
gets(ctr.address);
gotorc(7,43);
fflush(stdin);
scanf("%d",&ctr.doj[0]);
gotorc(7,45);
printf("%c",'/');
scanf("%d",&ctr.doj[1]);
gotorc(7,48);
printf("%c",'/');
scanf("%d",&ctr.doj[2]);
gotorc(9,43);
fflush(stdin);
ctr.category=getche();
gotorc(16,3);
printf("UPDATE THE CUSTOMER RECORD (Y/N)");
fflush(stdin);
another=getch();
if(another=='y'||another=='Y')
fwrite(&ctr,size,1,fc);
rewind(fc);
}
listcust()
{
int i=1,p=4;
clrscr();
TBG;
rewind(fc);
printf("****************************** CUSTOMERS LIST********************************");
gotorc(2,3);
printf("ID");
gotorc(2,8);
printf("NAME");
gotorc(2,22);
printf("PHONE NO");
gotorc(2,35);
printf("ADDRESS");
gotorc(2,55);
printf("D.O.J");
gotorc(2,68);
printf("CATEGORY");
while(fread(&ctr,size,1,fc)==1)
{
gotorc(p,3);
printf("%ld",ctr.id);
gotorc(p,8);
printf("%s",strupr(ctr.name));
gotorc(p,22);
printf("%s",ctr.pn);
gotorc(p,35);
printf("%s",strupr(ctr.address));
gotorc(p,55);
printf("%d/%d/%d",ctr.doj[0],ctr.doj[1],ctr.doj[2]);
gotorc(p,70);
printf("%c",toupper(ctr.category));
if(i%15==0)
{
gotorc(40,3);
printf("PRESS ANY KEY TO CONTINUE.....");
getch();
clrscr();
p=4;
}
p+=2;
i++;
}
printf("PRESS ANY KEY TO BACK TO CUSTOMER MENU");
getch();
customer();
}
delete()
{
char another='y',choice,name[20],flag='n';
long id;
tmp=fopen("c:\temp.txt","wb");
rewind(fc);
TBG;
while(another=='y'||another=='Y')
{
clrscr();
printf(" DELETE BY NAME : 1 DELETE BY ID : 2");
fflush(stdin);
choice=getchar();
if(choice=='2')
{
printf("ENTER CUSTOMER ID : ");
scanf("%ld",&id);
clrscr();
while(fread(&ctr,size,1,fc)==1)
{
if(ctr.id!=id)
fwrite(&ctr,size,1,tmp);
else
flag='y';
}
}
if(choice=='1')
{
printf("ENTER CUSTOMER NAME : ");
fflush(stdin);
gets(name);
clrscr();
while(fread(&ctr,size,1,fc)==1)
{
if(strcmpi(ctr.name,name)!=0)
fwrite(&ctr,size,1,tmp);
else
flag='y';
}
}
fclose(fc);
fclose(tmp);
remove("c:\customer.txt");
rename("c:\temp.txt","c:\customer.txt");
if(flag=='n')
printf("CUSTOMER NOT FOUND.... !");
printf("DO YOU WANT TO DELETE ANOTHER CUTOMER(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fc);
customer();
}
addmov()
{
char another='y';
TBG;
fseek(fm,0,SEEK_END);
while(another=='y'||another=='Y')
{
clrscr();
printf("\n**********************ADD MOVIE FORM**************************");
printf("\nMOVIE ID(NUMERIC) :");
printf("\nMOVIE NAME :");
printf("\nNO OF COPIES :");
printf("\nSUPPLIER ID :");
printf("\nLOCATION :");
gotorc(1,24);
movid();
gotorc(2,24);
fflush(stdin);
gets(mv.title);
gotorc(3,24);
fflush(stdin);
scanf("%d",&mv.copy);
mv.cponshelf=mv.copy;
mv.issue=0;
gotorc(4,24);
fflush(stdin);
gets(mv.sid);
gotorc(5,24);
fflush(stdin);
scanf("%d",&mv.loc);
fwrite(&mv,sizeof(mv),1,fm);
printf("DO YOU WANT TO ADD ANOTHER MOVIE(Y/N)");
fflush(stdin);
another=getch();
}
fclose(fm);
printf("PRESS ANY KEY TO BACK TO MOVIE MENU");
movie();
}
movid()
{
rewind(fm);
if(fread(&mv,sizeof(mv),1,fm)!=1)
mv.id=1;
else
{
while(fread(&mv,sizeof(mv),1,fm)==1);
mv.id++;
}
printf("%ld",mv.id);
}
listmov()
{
int i=1,p=4;
textbackground(WHITE);
textcolor(BLUE);
clrscr();
rewind(fm);
printf("\n****************************** MOVIE LIST********************************");
gotorc(2,1);
printf("ID");
gotorc(2,5);
printf("TITLE");
gotorc(2,25);
printf("TOT_CP");
gotorc(2,35);
printf("CP_O_SHELF");
gotorc(2,48);
printf("TOT_ISSUES");
gotorc(2,59);
printf("SUPPLIER ID");
gotorc(2,71);
printf("LOCATION");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
gotorc(p,1);
printf("%ld",mv.id);
gotorc(p,5);
printf("%s",strupr(mv.title));
gotorc(p,28);
printf("%d",mv.copy);
gotorc(p,40);
printf("%d",mv.cponshelf);
gotorc(p,52);
printf("%d",mv.issue);
gotorc(p,59);
printf("%s",mv.sid);
gotorc(p,74);
printf("%d",mv.loc);
if(i%10==0)
{
printf("PRESS ANY KEY TO CONTINUE.....");
fflush(stdin);
getch();
clrscr();
p=4;
}
i++;
p+=2;
}
printf("PRESS ANY KEY TO BACK TO MOVIE MENU");
getch();
fclose(fm);
movie();
}
searchmov()
{
char mname[20],another;
TBG;
clrscr();
rewind(fm);
gotorc(5,5);
printf("ENTER MOVIE TITLE : ");
fflush(stdin);
gets(mname);
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(mv.title,mname)==0)
{
gotorc(7,12);
textcolor(0);
cprintf("MOVIE FOUND..");
textcolor(4);
gotorc(9,5);
printf("MOVIE TITLE : %s",mv.title);
gotorc(11,5);
printf("TOTAL NO OF COPIES : %d",mv.copy);
gotorc(13,5);
printf("NO OF COPIES AVAILABLE : %d",mv.cponshelf);
gotorc(15,5);
printf("SUPPLIER ID : %s",mv.sid);
gotorc(17,5);
printf("LOCATION : %d",mv.loc);
gotorc(20,5);
printf("DO YOU WANT TO SEARCH MORE MOVIES(Y/N)");
fflush(stdin);
another=getchar();
if(another=='y'||another=='Y')
searchmov();
fclose(fm);
movie();
}
}
gotorc(7,5);
textcolor(4);
cprintf("MOVIE NOT FOUND.....!");
textcolor(4);
gotorc(12,5);
printf("DO YOU WANT TO SEARCH MORE MOVIES(Y/N)");
fflush(stdin);
another=getchar();
if(another=='y'||another=='Y')
searchmov();
fclose(fm);
movie();
}
addtran()
{
char another='y',rec;
TBG;
fseek(ft,0,SEEK_END);
while(another=='y'||another=='Y')
{
clrscr();
printf("\n************************ TRANSACTION*************************");
printf("\nINVOICE NO(NUMERIC) :");
printf("\nMOVIE TITLE :");
printf("\nCOPIES AVAILABLE :");
printf("CUSTOMER ID :");
printf("CUSTOMER NAME :");
printf("NO. OF COPIES :");
printf("DATE OF ISSUE :");
gotorc(2,24);
invoice();
gotorc(4,24);
fflush(stdin);
gets(tran.title);
gotorc(6,24);
avail();
gotorc(8,24);
fflush(stdin);
scanf("%ld",&tran.cid);
custcheck();
gotorc(12,24);
fflush(stdin);
scanf("%d",&tran.copies);
if(tran.copies>mv.cponshelf)
{
gotorc(18,3);
printf("\nTRANSACTION NOT POSSIBLE :REQUIRED NO OF COPIES NOTAVAILABLE");
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
gotorc(14,24);
fflush(stdin);
getdate(&d);
tran.doi[0]=d.da_day;tran.doi[1]=d.da_mon;tran.doi[2]=d.da_year;
printf("\n%d/%d/%d",d.da_day,d.da_mon,d.da_year);
tran.dor[0]=0;
tran.rent=0;
gotorc(18,4);
printf("\nDO YOU WANT TO RECORD THIS TRANSACTION(Y/N)");
rec=getchar();
if(rec=='y'||rec=='Y')
{
update();
fwrite(&tran,sizeof(tran),1,ft);
}
printf("\nDO YOU WANT TO ADD ANOTHER TRANSACTION(Y/N)");
fflush(stdin);
another=getch();
}
fclose(ft);
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
transactions();
}
custcheck()
{
if((fc=fopen("c:\customer.txt","rb"))==NULL)
fc=fopen("c:\customer.txt","wb+");
rewind(fc);
while(fread(&ctr,sizeof(ctr),1,fc)==1)
{
if(ctr.id==tran.cid)
{
gotorc(10,24);
printf("%s",ctr.name);
strcpy(tran.cname,ctr.name);
fclose(fc);
return;
}
}
fclose(fc);
gotorc(18,4);
printf("\nINVALID CUSTOMER ............!");
gotorc(21,4);
printf("\nPRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
invoice()
{
rewind(ft);
if(fread(&tran,sizeof(tran),1,ft)!=1)
tran.invoice=1;
else
{
while(fread(&tran,sizeof(tran),1,ft)==1);
tran.invoice++;
}
printf("%ld",tran.invoice);
}
avail()
{
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
printf("%d",mv.cponshelf);
fclose(fm);
return;
}
}
gotorc(18,3);
printf("%s","\nMOVIE NOT FOUND...!");
gotorc(21,3);
printf("\nPRESS ANY KEY TO RETURN");
getch();
fclose(fm);
transactions();
}
update()
{
long msize;
msize=sizeof(mv);
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
mv.cponshelf=mv.cponshelf-tran.copies;
mv.issue=mv.issue+tran.copies;
fseek(fm,-msize,SEEK_CUR);
fwrite(&mv,sizeof(mv),1,fm);
break;
}
}
fclose(fm);
return;
}
listtran()
{
int i=1;
TBG;
clrscr();
rewind(ft);
while(fread(&tran,sizeof(tran),1,ft)==1)
{
printf("\nINVOICE NO(NUMERIC) : %ld",tran.invoice);
printf("CUSTOMER ID : %ld",tran.cid);
printf("CUSTOMER NAME : %s",tran.cname);
printf("MOVIE TITLE : %s",tran.title);
printf("NO. OF COPIES : %d",tran.copies);
printf("DATE OF ISSUE :%d/%d/%d",tran.doi[0],tran.doi[1],tran.doi[2]);
if(tran.dor[0]!=0)
{
printf("DATE OF RETURN :%d/%d/%d",tran.dor[0],tran.dor[1],tran.dor[2]);
printf("RENT : %d",tran.rent);
printf("FINE : %d",tran.fine);
printf("TOTAL AMOUNT : %d",tran.tam);
}
printf("..................................................................");
if(i%2==0)
{
printf("PRESS ANY KEY TO CONTINUE.....");
getch();
clrscr();
}
i++;
}
fclose(ft);
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
closetran()
{
long id,sz;
TBG;
clrscr();
sz=sizeof(tran);
printf("ENTER INVOICE NO: ");
scanf("%ld",&id);
clrscr();
while(fread(&tran,sz,1,ft)==1)
{
if(tran.invoice==id)
{
if(tran.dor[0]!=0)
{
gotorc(4,4);
printf("THIS TRANSACTION IS ALL READY CLOSED...!");
gotorc(7,4);
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU......");
getch();
transactions();
}
fseek(ft,-sz,1);
getdate(&d);
tran.dor[0]=d.da_day;tran.dor[1]=d.da_mon;tran.dor[2]=d.da_year;
difference();
tran.rent=tran.copies*25;
if(k==0)
tran.fine=0;
else
tran.fine=tran.copies*(k-1)*5;
tran.tam=tran.rent+tran.fine;
printf("INVOICE NO(NUMERIC) : %ld",tran.invoice);
printf("CUSTOMER ID : %ld",tran.cid);
printf("CUSTOMER NAME : %s",tran.cname);
printf("MOVIE TITLE : %s",tran.title);
printf("NO. OF COPIES : %d",tran.copies);
printf("DATE OF ISSUE :%d/%d/%d",tran.doi[0],tran.doi[1],tran.doi[2]);
printf("DATE OF RETURN :%d/%d/%d ",tran.dor[0],tran.dor[1],tran.dor[2]);
printf("RENT : %d",tran.rent);
printf("FINE : %d",tran.fine);
printf("TOTAL AMOUNT : %d",tran.tam);
updateclose();
fwrite(&tran,sz,1,ft);
fclose(ft);
}
}
printf("PRESS ANY KEY TO BACK TO TRANSACTION MENU");
getch();
transactions();
}
difference()
{
int t,m1,m2,y1,y2,d1,d2;
d1=tran.doi[0];
d2=tran.dor[0];
m1=tran.doi[1];
m2=tran.dor[1];
y1=tran.doi[2];
y2=tran.dor[2];
t=m1;
if(y2>y1)
{
while(y2>y1)
{
while(m1<=12)
{
check(m1,y1);
if(m1==t)
k=days-d1;
else
k=k+days;
m1=m1+1;
}
m1=1;y1++;
}
while(m1<m2)
{
check(m1,y1);
k=k+days;
m1++;
}
k=k+d2;
}
else
{
if(m1!=m2)
{
while(m1<m2)
{
check(m1,y1);
if(m1==t)
k=days-d1;
else
k=k+days;
m1=m1+1;
}
k=k+d2;
}
else
k=d2-d1;
}
}
check(int m1,int y1)
{
if(m1==1||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)
days=31;
else
{
if(m1!=2)
days=30;
else
{
if(y1%4==0)
days=29;
else
days=28;
}
}
}
updateclose()
{
long msize;
msize=sizeof(mv);
fm=fopen("c:\movie.txt","rb+");
if(fm==NULL)
fm=fopen("c:\movie.txt","wb+");
while(fread(&mv,sizeof(mv),1,fm)==1)
{
if(strcmpi(tran.title,mv.title)==0)
{
mv.cponshelf=mv.cponshelf+tran.copies;
fseek(fm,-msize,SEEK_CUR);
fwrite(&mv,msize,1,fm);
break;
}
}
fclose(fm);
return;
}
gotorc(int r,int c)
{
union REGS i,o;
i.h.ah=2;
i.h.bh=0;
i.h.dh=r;
i.h.dl=c;
int86(16,&i,&o);
}
screen1()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
setfillstyle(SOLID_FILL,WHITE);
bar(15,15,625,465);
setfillstyle(SOLID_FILL,RED);
bar(30,30,610,450);
settextstyle(1,0,8);
setcolor(WHITE);
outtextxy(190,35,"VIDEO");
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,140,385,130,20,20);
outtextxy(160,150,"LIBRARY");
bar3d(140,255,440,245,20,20);
outtextxy(165,270,"SYSTEM");
bar3d(145,375,440,365,20,20);
/* sleep(4); */
getch();
closegraph();
restorecrtmode();
}
screen2()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"..//bgi");
setfillstyle(SOLID_FILL,RED);
bar(0,0,640,480);
setfillstyle(SOLID_FILL,WHITE);
bar(15,15,625,465);
setfillstyle(SOLID_FILL,RED);
bar(30,30,610,450);
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,100,420,300,25,25); /*members bar*/
settextstyle(1,1,10);
setcolor(WHITE);
outtextxy(10,55,"IIMS");
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar3d(180,50,420,70,20,20); /*project members bar*/
bar3d(50,350,570,420,25,25); /*project guide bar*/
setcolor(BLUE);
settextstyle(1,0,2);
outtextxy(193,48,"PROJECT MEMBERS");
outtextxy(193,130,"MANISH MISHRA");
outtextxy(193,170,"VISHAL YADAV");
outtextxy(193,210,"SHIV KUMAR RAI");
outtextxy(193,250,"DINESH YADAV");
outtextxy(235,351,"PROJECT GUIDE:");
settextstyle(1,0,5);
outtextxy(140,373,"MR. AMIT TANEJA");
/* sleep(4); */
getch();
closegraph();
restorecrtmode();
}
box(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(179,108+55*i,409,138+55*i);
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(180,110+55*i,410,140+55*i);
setcolor(BLUE);
// setfillstyle(SOLID_FILL,BLUE);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
/* getch();
setfillstyle(SOLID_FILL,WHITE);
bar(180,60,390,90);
setfillstyle(SOLID_FILL,RED);
bar(179,59,389,89); */
/* bar3d(180,100,420,300,-25,25);*/ /*members bar*/
/* closegraph();
restorecrtmode(); */
}
selectbox(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(179,108+55*i,409,138+55*i);
setfillstyle(SOLID_FILL,9);
bar(180,110+55*i,410,140+55*i);
setcolor(WHITE);
// setfillstyle(SOLID_FILL,BLUE);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
/* getch();
setfillstyle(SOLID_FILL,WHITE);
bar(180,60,390,90);
setfillstyle(SOLID_FILL,RED);
bar(179,59,389,89); */
/* bar3d(180,100,420,300,-25,25);*/ /*members bar*/
/* closegraph();
restorecrtmode(); */
}
pressbutton(int i,char *p)
{
setfillstyle(SOLID_FILL,WHITE);
bar(180,110+55*i,410,140+55*i);
setfillstyle(SOLID_FILL,9);
bar(179,108+55*i,409,138+55*i);
setcolor(CYAN);
settextstyle(1,0,2);
outtextxy(184,110+55*i,p);
delay(350);
}
title(char *title,int x)
{
setfillstyle(SOLID_FILL,9);
bar(0,0,640,50);
setcolor(BLACK);
settextstyle(1,0,5);
outtextxy(x,0,title);
}
status()
{
setfillstyle(SOLID_FILL,9);
bar(0,450,640,480);
setcolor(BLACK);
settextstyle(1,0,3);
outtextxy(30,450,"USE UP & DOWN ARROW KEYS TO SELECT AN OPTION");
}
void main()
{
screen1();
screen2();
main_menu();
}