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

下載本文檔

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

文檔簡介

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

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

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

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 關閉文件</p><p>  read 讀文件</p><p>  write 寫文件</p><p>  cd 進出目錄</p><p>  2.列目錄時要列出文件名

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

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

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

9、b></p><p><b>  1. 主要數(shù)據(jù)結構</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>  程序流程設計</b></p><p>&

20、lt;b>  總體功能程序結構圖</b></p><p>  打開命令的程序流程圖</p><p>  刪除命令的程序流程圖</p><p>  關閉命令的程序流程圖</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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論