2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  專 業(yè):</b></p><p><b>  學(xué) 號:</b></p><p><b>  姓 名:</b></p><p><b>  提交日期:</b></p><p><b>  【設(shè)計題目】

2、</b></p><p><b>  二級文件系統(tǒng)設(shè)計</b></p><p><b>  【設(shè)計目的】</b></p><p>  1、本實驗的目的是通過一個簡單多用戶文件系統(tǒng)的設(shè)計,加深理解文件系統(tǒng)的內(nèi)部功能和內(nèi)部實現(xiàn)。</p><p>  2、結(jié)合數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計、計算機原理等課

3、程的知識,設(shè)計一個二級文件系統(tǒng),進(jìn)一步理解操作系統(tǒng)。</p><p>  3、通過分對實際問題的分析、設(shè)計、編程實現(xiàn),提高學(xué)生實際應(yīng)用、編程的能力.</p><p><b>  【設(shè)計內(nèi)容】</b></p><p><b>  任務(wù)</b></p><p>  為Linux系統(tǒng)設(shè)計一個簡單的二級文件

4、系統(tǒng)。要求做到以下幾點:</p><p>  1.可以實現(xiàn)下列幾條命令:</p><p>  login 用戶登錄</p><p>  dir 列目錄</p><p>  create 創(chuàng)建文件</p><p>  delete 刪除文件</p>&

5、lt;p>  open 打開文件</p><p>  close 關(guān)閉文件</p><p>  read 讀文件</p><p>  write 寫文件</p><p>  cd 進(jìn)出目錄</p><p>  2.列目錄時要列出文件名

6、,物理地址,保護(hù)碼和文件長度</p><p>  3.源文件可以進(jìn)行讀寫保護(hù)</p><p><b>  程序設(shè)計</b></p><p><b>  設(shè)計思想</b></p><p>  本文件系統(tǒng)采用兩級目錄,其中第一級對應(yīng)于用戶賬號,第二級對應(yīng)于用戶帳號下的文件。另外,為了簡便文件系統(tǒng)未考慮文

7、件共享,文件系統(tǒng)安全以及管道文件與設(shè)備文件等特殊內(nèi)容。</p><p>  首先應(yīng)確定文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):主目錄、子目錄及活動文件等。主目錄和子目錄都以文件的形式存放于磁盤,這樣便于查找和修改。</p><p>  用戶創(chuàng)建的文件,可以編號存儲于磁盤上。如:file0,file1,file2…并以編號作為物理地址,在目錄中進(jìn)行登記</p><p><b>

8、  【實驗環(huán)境】</b></p><p><b>  C++/VC++</b></p><p><b>  【設(shè)計原理】</b></p><p>  對采用二級文件目錄的文件系統(tǒng)工作的機理了如指掌,對文件系統(tǒng)的相關(guān)操作要掌握。</p><p><b>  【設(shè)計思路】</

9、b></p><p><b>  1. 主要數(shù)據(jù)結(jié)構(gòu)</b></p><p>  #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/</p><p>  #define MAXCHILD 50 /*the largest child每個用戶名下最多有

10、50個文件*/</p><p>  #define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/</p><p>  typedef struct /*the structure of OSFILE定義主文件*/</p><p><b>  {</b></p><p>

11、;  int fpaddr; /*file physical address*/</p><p>  int flength; /*file length*/</p><p>  int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write; 3-Prot

12、ect;*/</p><p>  char fname[MAXNAME]; /*file name*/</p><p><b>  } OSFILE;</b></p><p>  typedef struct /*the structure of OSUFD定義用戶文件目錄*/</p><p>&l

13、t;b>  {</b></p><p>  char ufdname[MAXNAME]; /*ufd name*/</p><p>  OSFILE ufdfile[MAXCHILD]; /*ufd own file*/</p><p><b>  }OSUFD;</b></p><p>  t

14、ypedef struct /*the structure of OSUFD'LOGIN定義登陸*/</p><p><b>  {</b></p><p>  char ufdname[MAXNAME]; /*ufd name*/</p><p>  char ufdpword[8]; /*ufd

15、password*/</p><p>  } OSUFD_LOGIN;</p><p>  typedef struct /*file open mode定義操作方式*/</p><p><b>  {</b></p><p>  int ifopen; /*ifopen:0-close,1-open*/

16、</p><p>  int openmode; /*0-read only,1-write only,2-read and write,3-initial*/</p><p>  }OSUFD_OPENMODE;</p><p><b>  2.主要函數(shù)</b></p><p>  void LoginF();

17、/*LOGIN FileSystem*/</p><p>  void DirF(); /*Dir FileSystem*/</p><p>  void CreateF(); /*Create File*/</p><p>  void DeleteF(); /*Delete File*/</p><p>  void ModifyFM

18、(); /*Modify FileMode*/</p><p>  void OpenF(); /*Open File*/</p><p>  void CloseF(); /*Close File*/</p><p>  void ReadF(); /*Read File*/</p><p>  void WriteF(); /*Wri

19、te File*/</p><p>  void QuitF(); /*Quit FileSystem*/</p><p>  void CdF(); /*Change Dir*/</p><p>  void help();</p><p><b>  程序流程設(shè)計</b></p><p>&

20、lt;b>  總體功能程序結(jié)構(gòu)圖</b></p><p>  打開命令的程序流程圖</p><p>  刪除命令的程序流程圖</p><p>  關(guān)閉命令的程序流程圖</p><p><b>  寫命令的程序流程圖</b></p><p><b>  【源程序清單】&l

21、t;/b></p><p>  #include "stdio.h"</p><p>  #include "string.h"</p><p>  #include "conio.h"</p><p>  #include "stdlib.h"</p

22、><p>  #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/</p><p>  #define MAXCHILD 50 /*the largest child*/</p><p>  #define MAX (MAXCHILD*MAXCHILD) /*the size of

23、fpaddrno*/</p><p>  typedef struct /*the structure of OSFILE*/</p><p><b>  {</b></p><p>  int fpaddr; /*file physical address*/</p><p>  in

24、t flength; /*file length*/</p><p>  int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write; 3-Protect;*/</p><p>  char fname[MAXNAME]; /*file name*/</p>

25、<p><b>  } OSFILE;</b></p><p>  typedef struct /*the structure of OSUFD*/</p><p><b>  {</b></p><p>  char ufdname[MAXNAME]; /*ufd name*/</p>

26、;<p>  OSFILE ufdfile[MAXCHILD]; /*ufd own file*/</p><p><b>  }OSUFD;</b></p><p>  typedef struct /*the structure of OSUFD'LOGIN*/</p><p><b>  {</

27、b></p><p>  char ufdname[MAXNAME]; /*ufd name*/</p><p>  char ufdpword[8]; /*ufd password*/</p><p>  } OSUFD_LOGIN;</p><p>  typedef struct /*fi

28、le open mode*/</p><p><b>  {</b></p><p>  int ifopen; /*ifopen:0-close,1-open*/</p><p>  int openmode; /*0-read only,1-write only,2-read and write,3-initial*/</

29、p><p>  }OSUFD_OPENMODE;</p><p>  OSUFD *ufd[MAXCHILD]; /*ufd and ufd own files*/</p><p>  OSUFD_LOGIN ufd_lp;</p><p>  int ucount=0; /*the count of mfd's ufds*/<

30、;/p><p>  int fcount[MAXCHILD]; /*the count of ufd's files*/</p><p>  int loginsuc=0; /*whether login successfully*/</p><p>  char username[MAXNAME]; /*record login user's na

31、me22*/</p><p>  char dirname[MAXNAME];/*record current directory*/</p><p>  int fpaddrno[MAX]; /*record file physical address num*/</p><p>  OSUFD_OPENMODE ifopen[MAXCHILD][MAXCHIL

32、D]; /*record file open/close*/</p><p>  int wgetchar; /*whether getchar()*/</p><p>  FILE *fp_mfd,*fp_ufd,*fp_file_p,*fp_file;</p><p>  void LoginF(); /*LOGIN FileSystem*/</p>

33、;<p>  void DirF(); /*Dir FileSystem*/</p><p>  void CdF(); /*Change Dir*/</p><p>  void CreateF(); /*Create File*/</p><p>  void DeleteF(); /*Delete File*/</p><

34、;p>  void ModifyFM(); /*Modify FileMode*/</p><p>  void OpenF(); /*Open File*/</p><p>  void CloseF(); /*Close File*/</p><p>  void ReadF(); /*Read File*/</p><p> 

35、 void WriteF(); /*Write File*/</p><p>  void QuitF(); /*Quit FileSystem*/</p><p>  void help();</p><p>  char *rtrim(char *str); /*remove the trailing blanks.*/</p><p>

36、;  char *ltrim(char *str); /*remove the heading blanks.*/</p><p>  void InputPW(char *password); /*input password,use '*' replace*/</p><p>  void SetPANo(int RorW); /*Set physical add

37、ress num*/</p><p>  int ExistD(char *dirname); /*Whether DirName Exist,Exist-i,Not Exist-0*/</p><p>  int WriteF1(); /*write file*/</p><p>  int ExistF(char *filename); /*Whether

38、FileName Exist,Exist-i,Not Exist-0*/</p><p>  int FindPANo(); /*find out physical address num*/</p><p>  void clrscr()</p><p><b>  {</b></p><p>  system(&q

39、uot;cls");</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  int i,choice1;</p><p>  char choice[50]; /*choic

40、e operation:dir,create,delete,open,delete,modify,read,write*/</p><p>  int choiceend=1; /*whether choice end*/</p><p>  char *rtrim(char *str); /*remove the trailing blanks.*/</p><p

41、>  char *ltrim(char *str); /*remove the heading blanks.*/</p><p>  if((fp_mfd=fopen("c:\\osfile\\mfd.txt","rb"))==NULL)</p><p><b>  {</b></p><p>

42、  fp_mfd=fopen("c:\\osfile\\mfd.txt","wb");</p><p>  fclose(fp_mfd);</p><p><b>  }</b></p><p>  for(i=0;i<MAX;i++) fpaddrno[i]=0;</p><p

43、>  //textattr(BLACK*16|WHITE);</p><p>  clrscr(); /*clear screen*/</p><p>  LoginF(); /*user login*/</p><p><b>  clrscr();</b></p><p>  if(loginsuc==

44、1) /*Login Successfully*/</p><p><b>  {</b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  wgetchar=0;</p><p>  

45、if (choiceend==1)</p><p>  printf("\n\nC:\\%s>",strupr(dirname));</p><p><b>  else </b></p><p>  printf("Bad command or file name.\nC:\\%s>",st

46、rupr(username));</p><p>  gets(choice);</p><p>  strcpy(choice,ltrim(rtrim(strlwr(choice))));</p><p>  if (strcmp(choice,"dir")==0) choice1=1;</p><p>  else i

47、f(strcmp(choice,"create")==0) choice1=2;</p><p>  else if(strcmp(choice,"delete")==0) choice1=3;</p><p>  else if(strcmp(choice,"attrib")==0) choice1=4;</p>

48、<p>  else if(strcmp(choice,"open")==0) choice1=5;</p><p>  else if(strcmp(choice,"close")==0) choice1=6;</p><p>  else if(strcmp(choice,"read")==0) choice1=7;

49、</p><p>  else if(strcmp(choice,"write")==0) choice1=8;</p><p>  else if(strcmp(choice,"exit")==0) choice1=9;</p><p>  else if(strcmp(choice,"cls")==0)

50、 choice1=10;</p><p>  else if(strcmp(choice,"cd")==0) choice1=11;</p><p>  else if(strcmp(choice,"help")==0) choice1=20;</p><p>  else choice1=12;</p><

51、;p>  switch(choice1)</p><p><b>  {</b></p><p>  case 1:DirF();choiceend=1;break;</p><p>  case 2:CreateF();choiceend=1;if(!wgetchar) getchar();break;</p><p

52、>  case 3:DeleteF();choiceend=1;if(!wgetchar)getchar();break;</p><p>  case 4:ModifyFM();choiceend=1;if(!wgetchar) getchar();break;</p><p>  case 5:OpenF();choiceend=1;if (!wgetchar) getchar(

53、);break;</p><p>  case 6:CloseF();choiceend=1;if (!wgetchar) getchar();break;</p><p>  case 7:ReadF();choiceend=1;if (!wgetchar) getchar();break;</p><p>  case 8:WriteF();choiceend=

54、1;if (!wgetchar) getchar();break;</p><p>  case 9:printf("\nYou have exited this system.");</p><p>  QuitF();exit(0);break;</p><p>  case 10:clrscr();choiceend=1;break;<

55、;/p><p>  case 11:CdF();choiceend=1;break;</p><p>  case 20:help();choiceend=1;break;</p><p>  default:choiceend=0;</p><p><b>  }</b></p><p><b

56、>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p>  printf("\nAccess denied.");</p><p><b>  }</b></p>

57、;<p>  void help(void)</p><p><b>  {</b></p><p>  printf("\nThe Command List\n");</p><p>  printf("\nCd Attrib Create write Read Open Cls De

58、lete Exit Close\n");</p><p><b>  }</b></p><p>  char *rtrim(char *str) /*remove the trailing blanks.*/</p><p><b>  {</b></p><p>  int n=

59、strlen(str)-1;</p><p>  while(n>=0)</p><p><b>  {</b></p><p>  if(*(str+n)!=' ')</p><p><b>  {</b></p><p>  *(str+n+1)=&

60、#39;\0';</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else n--;</b></p><p><b>  }</b></p><p>  

61、if (n<0) str[0]='\0';</p><p>  return str;</p><p><b>  }</b></p><p>  char *ltrim(char *str) /*remove the heading blanks.*/</p><p><b>  {&l

62、t;/b></p><p>  strrev(str);</p><p>  rtrim(str);</p><p>  strrev(str);</p><p>  return str;</p><p><b>  }</b></p><p>  void Log

63、inF() /*LOGIN FileSystem*/</p><p><b>  {</b></p><p>  char loginame[MAXNAME],loginpw[9],logincpw[9],str[50];</p><p>  int i,j,flag=1;</p><p>  char a[25];&

64、lt;/p><p>  int findout; /*login user not exist*/</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  findout=0;</p><p>  printf("

65、;\n\nLogin Name:");</p><p>  gets(loginame);</p><p>  ltrim(rtrim(loginame));</p><p>  fp_mfd=fopen("c:\\osfile\\mfd.txt","rb");</p><p>  for(i

66、=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;i++)</p><p>  if (strcmp(strupr(ufd_lp.ufdname),strupr(loginame))==0)</p><p><b>  {</b></p><p>  findout=1;</p&g

67、t;<p>  strcpy(logincpw,ufd_lp.ufdpword);</p><p><b>  }</b></p><p>  fclose(fp_mfd);</p><p>  if (findout==1) /*user exist*/</p><p><b>  {<

68、/b></p><p>  printf("Login Password:");</p><p>  InputPW(loginpw); /*input password,use '*' replace*/</p><p>  if (strcmp(loginpw,logincpw)==0)</p><p

69、><b>  {</b></p><p>  strcpy(username,strupr(loginame));</p><p>  strcpy(dirname,username);</p><p>  fp_mfd=fopen("c:\\osfile\\mfd.txt","rb");</

70、p><p>  for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++)</p><p><b>  {</b></p><p>  strcpy(str,"c:\\osfile\\");</p><p>  strcat(str,uf

71、d_lp.ufdname);</p><p>  strcat(str,".txt");</p><p>  ufd[j]=(OSUFD*)malloc(sizeof(OSUFD));</p><p>  strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));</p><p>

72、  fp_ufd=fopen(str,"rb");</p><p>  fcount[j]=0;</p><p>  for(i=0;fread(&ufd[j]->ufdfile[i],sizeof(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++)</p><p><b>  {</b>

73、;</p><p>  ifopen[j][i].ifopen=0;</p><p>  ifopen[j][i].openmode=4;</p><p><b>  }</b></p><p>  fclose(fp_ufd);</p><p><b>  }</b><

74、;/p><p>  fclose(fp_mfd);</p><p><b>  ucount=j;</b></p><p>  SetPANo(0);</p><p>  printf("\n\nLogin successful! Welcome to this FileSystem\n\n");<

75、/p><p>  loginsuc=1;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

76、;<p>  printf("\n\n");</p><p><b>  flag=1;</b></p><p>  while(flag)</p><p><b>  {</b></p><p>  printf("Login Failed! Pass

77、word Error. Try Again(Y/N):");</p><p><b>  gets(a);</b></p><p>  ltrim(rtrim(a));</p><p>  if (strcmp(strupr(a),"Y")==0) </p><p><b>  

78、{</b></p><p>  loginsuc=0;</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p>  else if(strcmp(strupr(a),"N")==0)</p><p

79、><b>  {</b></p><p>  loginsuc=0;</p><p><b>  flag=0;</b></p><p><b>  return;</b></p><p><b>  }</b></p><p&g

80、t;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>

81、  printf("New Password(<=8):");</p><p>  InputPW(loginpw); /*input new password,use '*' replace*/</p><p>  printf("\nConfirm Password(<=8):"); /*input new passw

82、ord,use '*' replace*/</p><p>  InputPW(logincpw);</p><p>  if (strcmp(loginpw,logincpw)==0)</p><p><b>  {</b></p><p>  strcpy(ufd_lp.ufdname,strupr(

83、loginame));</p><p>  strcpy(ufd_lp.ufdpword,loginpw);</p><p>  fp_mfd=fopen("c:\\osfile\\mfd.txt","ab");</p><p>  fwrite(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd

84、);</p><p>  fclose(fp_mfd);</p><p>  strcpy(username,strupr(loginame));</p><p>  strcpy(dirname,loginame);</p><p>  ////////////////////////////////////////////////////

85、////</p><p>  strcpy(str,"c:\\osfile\\");</p><p>  strcat(str,username);</p><p>  strcat(str,".txt");</p><p>  if((fp_ufd=fopen(str,"rb"))

86、==NULL)</p><p><b>  {</b></p><p>  fp_ufd=fopen(str,"wb");</p><p>  fclose(fp_ufd);</p><p><b>  }</b></p><p>  fp_mfd=fop

87、en("c:\\osfile\\mfd.txt","rb");</p><p>  for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++)</p><p><b>  {</b></p><p>  /////////////////

88、////////////////////</p><p>  strcpy(str,"c:\\osfile\\");</p><p>  strcat(str,ufd_lp.ufdname);</p><p>  strcat(str,".txt");</p><p>  ufd[j]=(OSUFD*)

89、malloc(sizeof(OSUFD));</p><p>  strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));</p><p>  fp_ufd=fopen(str,"rb");</p><p>  for(i=0;fread(&ufd[j]->ufdfile[i],sizeo

90、f(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++)</p><p><b>  {</b></p><p>  ifopen[j][i].ifopen=0;</p><p>  ifopen[j][i].openmode=4;</p><p><b>  }</b><

91、;/p><p>  fclose(fp_ufd);</p><p><b>  }</b></p><p>  fclose(fp_mfd);</p><p><b>  ucount=j;</b></p><p>  SetPANo(0);</p><p&g

92、t;  printf("\n\nLogin Successful! Welcome to this System\n\n");</p><p>  loginsuc=1;</p><p><b>  return;</b></p><p><b>  }</b></p><p>

93、<b>  else</b></p><p><b>  {</b></p><p>  printf("\n\n");</p><p><b>  flag=1;</b></p><p>  while(flag)</p><p>

94、<b>  {</b></p><p>  printf("Login Failed! Password Error. Try Again(Y/N):");</p><p><b>  gets(a);</b></p><p>  ltrim(rtrim(a));</p><p>

95、;  if (strcmp(strupr(a),"Y")==0) </p><p><b>  {</b></p><p>  loginsuc=0;</p><p><b>  flag=0;</b></p><p><b>  }</b></p&g

96、t;<p>  else if(strcmp(strupr(a),"N")==0)</p><p><b>  {</b></p><p>  loginsuc=0;</p><p><b>  flag=0;</b></p><p><b>  retu

97、rn;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&l

98、t;/b></p><p><b>  }</b></p><p>  void SetPANo(int RorW) /*Set physical address num,0-read,1-write*/</p><p><b>  {</b></p><p><b>  int

99、i,j;</b></p><p>  if (RorW==0)</p><p><b>  {</b></p><p>  if((fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","rb"))==NULL)</p><p>

100、<b>  {</b></p><p>  fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","wb");</p><p>  fclose(fp_file_p);</p><p><b>  }</b></p><p&

101、gt;  fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","rb");</p><p>  ///////////////////////////////////////////////////////////////////</p><p>  for(i=0;fread(&j,sizeof(i

102、nt),1,fp_file_p)!=0;i++)</p><p>  fpaddrno[j]=1;</p><p>  /*for(i=1;i<MAX;i++)</p><p>  if ((i%13)==0) </p><p>  fpaddrno[i]=1;*/</p><p><b>  }<

103、;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  fp_file_p=fopen("c:\\osfile\\file\\file_p.txt","wb");</p><p>  /*for

104、(i=1;i<MAX;i++)</p><p>  if((i%13)==0) </p><p>  fpaddrno[i]=0;*/</p><p>  for(i=0;i<MAX;i++)</p><p>  if (fpaddrno[i]==1)</p><p>  fwrite(&i,siz

105、eof(int),1,fp_file_p);</p><p><b>  }</b></p><p>  fclose(fp_file_p);</p><p><b>  }</b></p><p>  void InputPW(char *password) /*input password,u

106、se '*' replace*/</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  for(j=0;j<=7;j++)</p><p><b>  {</b></p><p&

107、gt;  password[j]=getch();</p><p>  if ((int)(password[j])!=13)</p><p><b>  {</b></p><p>  if((int)(password[j])!=8)</p><p>  putchar('*');</p>

108、<p><b>  else</b></p><p><b>  {</b></p><p><b>  if (j>0)</b></p><p><b>  {</b></p><p><b>  j--;</b>

109、;</p><p><b>  j--;</b></p><p>  putchar('\b');putchar(' ');putchar('\b');</p><p><b>  }</b></p><p><b>  else j--;&

110、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  {password[j]='\0';</p><p><b>

111、;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  password[j]='\0';</p><p><b>  }</b></p><p>  v

112、oid DirF() /*Dir FileSystem*/</p><p><b>  {</b></p><p>  int i,j,count=0;</p><p>  char sfmode[25],sfpaddr[25],str[25];</p><p><b>  clrscr();</b&g

113、t;</p><p>  if (strcmp(strupr(ltrim(rtrim(dirname))),"")!=0)</p><p><b>  {</b></p><p>  printf("\n\nC:\\%s>dir\n",dirname);</p><p>  

114、printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress","FileLength","Type","FileMode");</p><p>  j=ExistD(dirname);</p><p>  for(i

115、=0;i<fcount[j];i++)</p><p><b>  {</b></p><p>  if ((i%16==0)&&(i!=0))</p><p><b>  {</b></p><p>  printf("\nPress any key to cont

116、inue..");</p><p><b>  getch();</b></p><p><b>  clrscr();</b></p><p>  printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress

117、","FileLength","Type","FileMode");</p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////</p><p>  itoa(

118、ufd[j]->ufdfile[i].fpaddr,str,10);</p><p>  strcpy(sfpaddr,"file");</p><p>  strcat(sfpaddr,str);</p><p>  if (ufd[j]->ufdfile[i].fmode==0) strcpy(sfmode,"Read

119、Only");</p><p>  else if(ufd[j]->ufdfile[i].fmode==1) strcpy(sfmode,"Write Only");</p><p>  else if(ufd[j]->ufdfile[i].fmode==2)strcpy(sfmode,"Read And Write");<

120、;/p><p>  else strcpy(sfmode,"Protect");</p><p>  printf("%14s%16s%14d%10s%18s\n",ufd[j]->ufdfile[i].fname,sfpaddr,ufd[j]->ufdfile[i].flength,"<FILE>",sfmo

121、de);</p><p><b>  }</b></p><p>  printf("\n %3d file(s)\n",fcount[j]);</p><p><b>  }</b></p><p><b>  else</b></p>&l

122、t;p><b>  {</b></p><p>  printf("\n\nC:\\>dir\n");</p><p>  printf("\n%14s%18s%8s\n","DirName","OwnFileCount","Type");</p>

123、;<p>  for(i=0;i<ucount;i++)</p><p><b>  {</b></p><p>  if ((i%16==0)&&(i!=0))</p><p><b>  {</b></p><p>  printf("\nPress

124、 any key to continue...");</p><p><b>  getch();</b></p><p><b>  clrscr();</b></p><p>  printf("\n%14s%18s%8s\n","DirName","OwnF

125、ileCount","Type");</p><p><b>  }</b></p><p>  printf("%14s%18d%8s\n",ufd[i]->ufdname,fcount[i],"<UFD>");</p><p>  count=count

126、+fcount[i];</p><p><b>  }</b></p><p>  printf("\n %3d dir(s),%5d file(s)\n",ucount,count);</p><p><b>  }</b></p><p><b>  }</b

127、></p><p>  int ExistD(char *dirname) /*Whether DirName Exist,Exist-i,Not Exist-0*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  int exi

128、st=0;</p><p>  for(i=0;i<ucount;i++)</p><p>  if (strcmp(strupr(ufd[i]->ufdname),strupr(dirname))==0)</p><p><b>  {</b></p><p><b>  exist=1;<

129、/b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if (exist) return(i);</p><p>  else return(-1);</p><p><b>  }</b&

130、gt;</p><p>  void CdF() /*Exchange Dir*/</p><p><b>  {</b></p><p>  char dname[MAXNAME];</p><p>  printf("\nPlease input DirName (cd..-Previous dir; Di

131、rNAME-cd [DirNAME]):");</p><p>  gets(dname);</p><p>  ltrim(rtrim(dname));</p><p>  if (ExistD(dname)>=0) strcpy(dirname,strupr(dname));</p><p><b>  els

132、e </b></p><p>  if(strcmp(strupr(dname),"CD..")==0) strcpy(ltrim(rtrim(dirname)),"");</p><p>  else printf("\nError.\'%s\' does not exist.\n",dname);

133、</p><p><b>  }</b></p><p>  void CreateF() /*Create File*/</p><p><b>  {</b></p><p>  int fpaddrno,flag=1,i;</p><p>  char fname[M

134、AXNAME],str[50],str1[50],a[25];</p><p>  char fmode[25];</p><p>  if (strcmp(strupr(dirname),strupr(username))!=0)</p><p><b>  {</b></p><p>  printf("\

135、nError. You must create file in your own dir.\n");</p><p>  wgetchar=1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>

136、;</p><p>  printf("\nPlease input FileName:");</p><p>  gets(fname);</p><p>  ltrim(rtrim(fname));</p><p>  if (ExistF(fname)>=0)</p><p><b

137、>  {</b></p><p>  printf("\nError. Name \'%s\' has already existed.\n",fname);</p><p>  wgetchar=1;</p><p><b>  }</b></p><p><

138、b>  else</b></p><p><b>  {</b></p><p>  printf("Please input FileMode(0-Read Only, 1-Write Only, 2-Read and Write, 3-Protect):");</p><p>  gets(fmode)

139、;</p><p>  ltrim(rtrim(fmode));</p><p>  if((strcmp(fmode,"0")==0)||(strcmp(fmode,"1")==0)||(strcmp(fmode,"2")==0)||(strcmp(fmode,"3")==0))</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論