© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies

C Program For Video Library Management
#include #include #include #include #include #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

 
SLogix Student Projects
bottom