操作系统课程设计文件系统管理_第1页
操作系统课程设计文件系统管理_第2页
操作系统课程设计文件系统管理_第3页
操作系统课程设计文件系统管理_第4页
操作系统课程设计文件系统管理_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

评定等级操作系统课程设计文件系统管理学院计算机学院专业计算机科学与技术班级姓名学号2013年1月8日广东工业大学计算机学院制文件系统管理一、实验目的模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。二、实验内容和要求编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。以下报告主要包括:1.可行性分析2.需求分析3.概要设计4.详细设计5.测试6.总结三、可行性分析1、技术可行性对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。2、经济可行性课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益)3.法律可行性自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。四、需求分析编写程序实现文件系统,主要有以下几点要求:1、实现无穷级目录管理及文件管理基本操作2、实现共享“别名”3、加快了文件检索五、概要设计为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(UserFileDirectory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD(MasterFileDirectory);在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录的指针。本设计主要实现下面几个数据结构:MDF用户名文件目录指针用户名文件目录指针UFD文件名保护码文件长度文件名···AFD打开文件名打开保护码读写指针总体的流程图如下:六、详细设计主要数据结构:(MasterFileDirectory),主要用以存放用户,可以增加存放密码的字符数组,本设计没有保密安全方面的忧虑,为了使用时操作更简单省去密码。所以,MFD结构仅包括用户名和指向子目录的一个指针,以及指向下一用户的连接点,为线性结构。structMFD{charname[20];UFD(UserFileDirectory),用于存放文件的数据结构。由于本设计为了加快检索速度,使用了二叉排序树的结构,所以UFD结构中相应加入了用于树结构的parent,leftchild,和rightchild记录链接情况。当本文件为普通文件时,为下级记录申请AFD(file),folder为空。同样,当本文件为文件夹时,为它申请相应的空间,AFD为空。以此来达到无穷级别目录的存储。structUFD{UFD*parent;UFD*leftchild;UFD*rightchild;UFD*folder;");printf("\n");temp=temp->link;}}voidBSTtraverse(UFD*fileBST)以区分文件夹printf("..\t");elseprintf("\t");if(fileBST->leftchild!=NULL)创建文件\n");printf("2.创建文件夹\n");printf("3.取消\n");printf("请选择:\n");scanf("%c",&s);fflush(stdin);if(s=='3')return;if(s!='1'&&s!='2')printf("输入错误,请重新输入!\n");}while(s!='1'&&s!='2'); if(strcmp(fileBST->name,"NULL")==0)追加\n");printf("2.重写\n");printf("3.取消\n");printf("请选择:\n");scanf("%c",&s);fflush(stdin);if(s=='3')return;if(s!='1'&&s!='2')printf("输入错误,请重新输入!\n");}while(s!='1'&&s!='2');printf("请输入要重写或追加的内容(<100):");scanf("%s",newfile);fflush(stdin);if(s=='1')\t");stemp=stemp->link;}printf("\n是否尝试在共享文件夹中打开(y/n):");do{s=getchar();if(s=='n'||s=='N')returnNULL;elseif(s=='y'||s=='Y')break;elseprintf("输入错误,请重新输入:");}while(s!='y'&&s!='n'&&s!='Y'&&s!='N');stemp=share_file;while(stemp!=NULL){if(strcmp(stemp->file->name,name)==0){temp=stemp->file;break;}stemp=stemp->link;}returntemp;}UFD*operations(UFD*fileBST){while(1){chars; system("cls");if(open_file!=NULL){printf("已打开文件,请及时关闭!\n");printf("文件名\t文件长度\t读写\t共享\t内容");printf("\n");print_open_file(); printf("\n");}printf("当前路径:");print_path(fileBST); printf("\n");if(strcmp(fileBST->name,"NULL")==0)printf("本层文件为空!\n");else{printf("本文件夹包含以下文件:\n");BSTtraverse(fileBST);}printf("\n");printf("1.创建文件create\n");printf("2.删除文件delete\n");printf("3.打开文件open\n");printf("4.关闭文件close\n");printf("5.读文件read\n");printf("6.写文件write\n");printf("0.返回上一层/注销\n\n");printf("请选择:");printf("");scanf("%c",&s);fflush(stdin);switch(s){case'1':fcreate(fileBST);break;case'2':fileBST=fdelete(fileBST);break;case'3':fopen(fileBST);break;case'4':fclose();break;case'5':case'6':fread_write(fileBST,s);break;case'0':returnfileBST;default:break;}}}voidLog_in(){MFD*temp=NULL;charname[30];charflag='0';if(mfd_link==NULL){printf("目前还没有创建用户,请创建后再登陆!");getch();return;}do{printf("请输入用户名:");scanf("%s",name);fflush(stdin);if(strcmp(name,"cancel")==0)return;登录\n");printf("2.添加新用户\n");printf("3.查看已注册用户\n");printf("0.退出\n\n");printf("请选择:");printf("");scanf("%c",&s);fflush(stdin);if(s!='0'&&s!='1'&&s!='2'&&s!='3'){ printf("输入错误,请重新输入:");getch();fflush(stdin);continue;}switch(s){case'1':Log_in();break;case'2':Init_user();break;case'3':Check_user();break;case'0':return1;default:break;}}return0;}七、测试登录操作:以下为对文件的六个基本操作:无穷级文件、文件路径的显示,以及打开一个不存在的文件的示例:打开普通文件后的情况,此时不能删除文件:本系统未能实现级联删除,操作被禁止:关闭文件后删除操作成功:逐个删除后“文件系统”文件夹也可以删除了:八、总结本次课程设计设计的知识比较广,需要较好的理解能力和编程能力。在本次设计中,花费时间比较多的应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论