www.pudn.com > OSprogram.rar > 1.cpp


#define S 10 
#define L 20 
#define N 30 
#include"stdio.h" 
#include"string.h" 
#include"stdlib.h" 
#include"iostream.h" 
struct UFD{ 
       char fname[20]; 
       char shuxing[20]; 
       int  length; 
       int  addr; 
    }; 
struct UOF{ 
       char fname[20]; 
       char shuxing[10]; 
       int  length; 
       char state[10]; 
       int  *w,*r; 
       }; 
struct MFD{ 
       char uname[25]; 
       struct UFD ufd[L]; 
       struct UOF uof[S]; 
       }; 
struct MFD mfd[N]; 
 
create(int x); 
open(int x); 
close(int x); 
Read(int x); 
write(int x); 
ddelete(int x); 
/*-----------zhu han shu----------------------------*/ 
 
main() 
{ 
 char namestr[20],order[20]; 
 int i,j; 
 /*chu shi hua MFD*/ 
 /************************************************************/ 
 strcpy(mfd[0].uname,"lanxueqin"); 
 strcpy(mfd[0].ufd[0].fname,"wenjian1"); 
 strcpy(mfd[0].ufd[0].shuxing,"read"); 
 mfd[0].ufd[0].length=25; 
 mfd[0].ufd[0].addr=6120; 
/* printf("uname:%s,fname:%s,shuxing:%s,length:%d,address:%d\n",mfd[0].uname,mfd[0].ufd[0].fname,mfd[0].ufd[0].shuxing,mfd[0].ufd[0].length,mfd[0].ufd[0].addr);*/ 
 strcpy(mfd[0].ufd[1].fname,"wenjian2"); 
 strcpy(mfd[0].ufd[1].shuxing,"rw"); 
 mfd[0].ufd[1].length=20; 
 mfd[0].ufd[1].addr=0; 
 
 strcpy(mfd[0].ufd[2].fname,"wenjian3"); 
 strcpy(mfd[0].ufd[2].shuxing,"rw"); 
 mfd[0].ufd[2].length=20; 
 mfd[0].ufd[2].addr=1000; 
 
 strcpy(mfd[1].uname,"hey"); 
 strcpy(mfd[1].ufd[0].fname,"wenjian5"); 
 strcpy(mfd[1].ufd[0].shuxing,"read"); 
 mfd[1].ufd[0].length=30; 
 mfd[1].ufd[0].addr=4020; 
 strcpy(mfd[1].ufd[1].fname,"wenjian8"); 
 strcpy(mfd[1].ufd[1].shuxing,"rw"); 
 mfd[1].ufd[1].length=21; 
 mfd[1].ufd[1].addr=1; 
 /*****************************************************/ 
 
 
 /*chu shi hua UOF*/ 
 /********************************************************/ 
 strcpy(mfd[0].uof[0].fname,"wenjian1"); 
 strcpy(mfd[0].uof[0].shuxing,mfd[0].ufd[0].shuxing); 
 mfd[0].uof[0].length=mfd[0].ufd[0].length; 
 strcpy(mfd[0].uof[0].state,"open"); 
 mfd[0].uof[0].w=mfd[0].ufd[0].addr; 
 mfd[0].uof[0].r=mfd[0].ufd[0].addr; 
 
 strcpy(mfd[0].uof[1].fname,"wenjian3"); 
 strcpy(mfd[0].uof[1].shuxing,mfd[0].ufd[2].shuxing); 
 mfd[0].uof[1].length=mfd[0].ufd[2].length; 
 strcpy(mfd[0].uof[1].state,"open"); 
 mfd[0].uof[1].w=mfd[0].ufd[2].addr; 
 mfd[0].uof[1].r=mfd[0].ufd[2].addr; 
  /* printf("w=%d",mfd[0].uof[0].w); */ 
 /*******************************************************/ 
shuru: 
printf("Initial has finished.Please input your name to login:\n"); 
scanf("%s",namestr); 
for(i=0;i=N) 
  { 
      printf("The name you have inputed is wrong!\n"); 
      goto shuru; 
  } 
instructions: 
printf("Welcome!Input your instruction:\n"); 
printf("create---------create a file\n"); 
printf("open  ---------open   a file\n"); 
printf("close ---------close  a file\n"); 
printf("read  ---------read   a file\n"); 
printf("write ---------write  a file\n"); 
printf("delete---------delete a file\n"); 
printf("end   ---------quit the  a system\n"); 
printf("---------And your choice is--------\n"); 
scanf("%s",order); 
 
if(!strcmp(order,"create")) 
	{ create(i); 
	  goto instructions;} 
else if(!strcmp(order,"open")) 
	{ open(i); 
	  goto instructions; 
	} 
else if(!strcmp(order,"close")) 
	{ close(i); 
	  goto instructions; 
	} 
else if(!strcmp(order,"read")) 
	{ Read(i); 
	  goto instructions; 
	} 
else if(!strcmp(order,"delete")) 
	{ delete(i); 
	  goto instructions; 
	} 
else if(!strcmp(order,"write")) 
	{ write(i); 
	  goto instructions; 
	} 
else if(!strcmp(order,"end")) 
     {  printf("You have canceled this operation!\n"); 
	return(0); 
     } 
else 
     {  printf("Wrong instruction!Please input the right one!!\n"); 
	goto instructions; 
      } 
 
} 
/*-------------zhu han shu--------------------*/ 
 
/*=================create()======================== */ 
create(int x){ 
   char filename[20]; 
   int j; 
   int length; 
   char prority[20]; 
   int address; 
   randomize();/*chu shi hua sui ji han shu*/ 
   printf("You have chose to create a new file!\n"); 
   printf("Please input the name of the file:\n"); 
   scanf("%s",&filename); 
   for(j=0;j