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