© 2012 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies
« NS2  Projects »


C Program for Dining Philosophers Problem

C Program for Dining Philosophers Problem

#include #include #include #include char fn2[20]; main() { int c; clrscr(); do{ printf("\n\t\tMain Menu\n-------------------------------\n"); printf("1.Copy a File\n2.Move a File\n3.Exit\n"); scanf("%d",&c); switch(c) { case 1: copy_file(); break; case 2: move_file(); break; case 3: exit(0); } }while(c<=3); getch(); return 0; } copy_file() { FILE *f1,*f2; char ch,s[10],fn1[20]; int a; printf("\nAre u see the privious files(1/0)?"); scanf("%d",&a); if(a==1) print_file(); printf("Enter the source file name:"); scanf("%s",&fn1); printf("Enter the Destination file name:"); scanf("%s",&fn2); f1=fopen(fn1,"r"); if(f1==NULL) printf("Can't open the file"); else { f2=fopen(fn2,"w"); while((ch=getc(f1))!=EOF) putc(ch,f2); printf("One File Copied"); fclose(f2); } fclose(f1); return 0; } move_file() { FILE *f1,*f2; char ch,s[10],fn1[20]; int a; printf("\nAre u see the privious files(1/0)?"); scanf("%d",&a); if(a==1) print_file(); printf("Enter the source file name:"); scanf("%s",&fn1); printf("Enter the Destination file name:"); scanf("%s",&fn2); f1=fopen(fn1,"r"); if(f1==NULL) printf("Can't open the file"); else { f2=fopen(fn2,"w"); while((ch=getc(f1))!=EOF) putc(ch,f2); printf("One File moved"); fclose(f2); remove(fn1); } fclose(f1); return 0; } print_file() { struct ffblk ffblk; int d,p=0; char ch; d=findfirst("*.*",&ffblk,0); while(!d) { printf("%s\n",ffblk.ff_name); d=findnext(&ffblk); p=p+1; if(p>=20) { printf("Press any key to continue"); getchar(); p=0; } } return 0; }

SAMPLE INPUT AND OUTPUT:

Philos name      Right fork     Left fork
-------------------------------------------------------------------
        0               0               1
        1               1               2
        2               2               3
        3               3               4
        4               4               0
--------------------------------------------------------------------
Enter the Two Eating Philosophers number:1 3
Round 1
--------------------------
Philosopherre 1 is eating with rhf=1 and  lhf=2.
Philosopherre 3 is eating with rhf=3 and lhf=4.
Round  2
------------------------
Philosopherre 0 is eating with rhf=0 and  lhf=1.
Philosopherre 2 is eating with rhf=2 and   lhf=3.
Round  4
------------------------
Philosopherre 2 is eating with rhf=2 and  lhf=3.
Philosopherre 4 is eating with rhf=4 and   lhf=0.

 

        Philos name      Right fork     Left fork
-------------------------------------------------------------------
        0               0               1
        1               1               2
        2               2               3
        3               3               4
        4               4               0
--------------------------------------------------------------------
Enter the Two Eating Philosophers number:1 4
Round 1
--------------------------
Philosopherre 1 is eating with rhf=1 and  lhf=2.
Philosopherre 4 is eating with rhf=4 and lhf=0.
Round  2
------------------------
Philosopherre 0 is eating with rhf=0 and  lhf=1.
Philosopherre 2 is eating with rhf=2 and   lhf=3.
Round  4
------------------------
Philosopherre 2 is eating with rhf=2 and  lhf=3.
Philosopherre 4 is eating with rhf=4 and   lhf=0.

 

SLogix Student Projects

⇓ Student Projects ⇓
⇑ Student Projects ⇑
bottom