还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
操作系统实验报告实验名称文件管理专业班级网络工程1301学号_________姓名年月日2022616currentuser.ufd[i].author;return;文件不存在!III summary〃/关闭所有打开的文件已关闭文件III/summary privatevoid closeIII summary〃/删除文件III/summary privatevoid delete请输入文件名string filename=Console.ReadLine;for inti=0;icurrentuser.ufd.Count;i++if currentuser.ufd[i].filename.Equalsfilename currentuser.ufd.RemoveAti;成功删除文件!return;文件不存在!III summary/〃读取文件请输入文件名二III/summary privatevoid readstring filenameConsole.ReadLine;for inti=0;icurrentuser.ufd.Count;i++已读取文件!if currentuser.ufd[i].filename.Equalsfilenamereturn;}文件不存在!III summary/〃写入文件III/summary privatevoid write请输入文件名二string filenameConsole.ReadLineO;for inti=0;icurrentuser.ufd.Count;i++ifcurrentuser.ufd[i].filename.Equalsfilename已写入文件!return;文件不存在!III summary/〃退出系统III/summary privatevoid exit您好,您已经成功退出系统Console.ReadKeyO;#endregionIII summary///文件III/summary publicclass FileObjectpublic string filename;public intsize=20;public intread=0;public intwrite=0;public stringauthor;III summary/〃文件系统用户III/summarypublic classFileUser public string username;public ListFileObjectufd=new public ListFileObject;int filecount=0;实验一文件管理
一、实验目的文件管理是操作系统的一个非常重要的组成部份学生应独立用高级语言编写和调试一个简单的文件系统,摹拟文件管理的工作过程从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识
二、豫备知识
1.VS2022的使用
2.C#的学习
3.文件主目录与子目录的理解
三、实验内容与步骤用高级语言编写和调试一个简单的文件系统,摹拟文件管理的工作过程要求设计一个个用10户的文件系统,每次用户可保存个文件,一次运行用户可以打开个文件系统能够检查打入命105令的正确性,出错时能显示出错原因对文件必须设置保护措施,例如只能执行,允许读等在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护文件的操作至少有〉Create〉、等命令delete openclose read^write所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录前者应包含文件主及它们的目录区指针;后者应给出每一个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等此外为打开文件设置运行文件目录(),在文件打开时应填入打开文件号,本次AFD打开保护码和读写指针等程序流程图建立文件打开文件关闭文件删除文件读出文件写出文件程序结束处理程序处理程序处理程序处理程序处理程序处理程序逻辑设计使用线性数组表表示泛型数组表示每一个元素包括用户、保存的文件数、再使MFD,UFD,ID用线性表表示文件信息,每一个元素包括文件名,文件属性保护码,文件的状态等信息物理设计〃主目录private FileUser[]mftl;〃当前用户private FileUsercurrentuser;IIIsummary〃/文件III/summarypublic classFileObject{public stiingfilename;public intsize=20;public intread=0;public intwrite=0;public stringauthor;}IIIsummary/〃文件系统用户III/summarypublic classFileUser{publicstringusername;二publicListFileObjectufid newListFi1eObject;public intfilecount=0;步骤详述、主目录及用户目录机构显示1:mF dLiser_O3mF dr2/71nf d_user_Oh2/7±mf d_user_Od=.20-mfd_user_0mid user1,3d:..ZBAinf d_Li£ep_l-uf20All£d_usep_l----------uf d:d_usepl:mF dLi sei*2,3i.lnfd,20mf d_u se i*_2d_usei*_2d_user_2d:mf dLiser_
3.3|uf d:d_user3luf d:d user
3、当前操作用户登录:2请输入用户名;mf d._u.sei_2当前用户mFd_ugF_
2、命令6closeC/\J-Lr请输入操作命令;close同关鬲玄件、命令7delete青输入操作命令;每输入文件名,、delete僦功541207030124MJV.TXT删癖福!,..、命令8read请输入操作命令,peadM输入文件名541207030124MJY.TXT□诘成玄杜I、命令9write■请输入操作命令,■■请输入文件各■■命令10exitexit愿好,您已经成功退出系统!
四、实验总结通过这次的课程设计使我认识到要将操作系统这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践将所学的跟实践操作结合起来才干更好地巩固所学,才干提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度因为与之涉及的不少方面并没有学过,需要自己去自学和实践检验
五、程序清单using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace filemanagesystemclassProgramstatic voidMainstring[]args〃初始化用户自摹拟文件系统ExplorerlnUser explorer=new ExplorerInUser;}III〈summary〉/〃文件管理系统for用户自摹拟III/summarypublic classExplorerlnUser〃命令列表private string口command=〃主目录private FileUser口mfd;〃当前用户private FileUsercurrentuser;III〈summary〉/〃构造函数III〈/summary〉public ExplorerInUserIII〈summary〉/〃初始化系统III/summary privatevoid INIif currentuser=二null〃主目录实现IniUserList;}〃系那是菜单InilizeMenu;bool isinput=false;〃输入正确的命令while!isinput string input=Console.ReadLine;isinput二CommandGroupinput;#region主目录III summary/〃获取用户个数III〈/summary〉III returns/returns privateint GetUserCountstringinput=Console.ReadLine;tryint user_size=Convert.ToInt32input;return user_size;}一catch Exceptione Console.WriteLinee.Message;return0;III summary/〃生成用户及用户管理文件III/summaryprivate voidIniUserList intuser_size=GetUserCount;mfd=new FileUser[user_size];for inti=0;iuser_size;i++mfd[i]=new FileUser;mfd[i].filecount=3;+mfd[i].username++mfd[i].filecount;for intj=0;j3;j++FileObject file=new FileObject;file.author=mfd[i].username;;rmfd[i].ufd.Add file;}IniLogin;}III summary/〃用户登录III/summaryprivate voidIniLogin请输入用户名bool issuccess=false;while!issuccessstring username=Console.ReadLine;for inti=0;imfd.Length;i++if mfd[i].username.Equalsusername当issuccess=true;currentuser=mfd[i];前用户break;}if!issuccess请重新输入输入用户名:#endregion#region菜单III summary/〃初始化菜单III/summaryprivate voidInilizeMenu欢迎进入文件管理系统请输入操作命令:III summary/〃功能分组判断III/summaryIII returns/retumsprivate boolCommandGroupstring commandboolisexit=true;switch commanddefault:isexit=false;break;if isexitINI;}请重新输入操作命令:return isexit;#endregion#region操作命令方法III summary/〃创建新的文件III/summary privatevoid create请输入新件名stringfilename=Console.ReadLine;currentuser.filecount++;FileObject file=new FileObject;file.filename=filename;file,author=currentuser.username;cur rentuser.ufd.Addfile;成功创建文件!}IIIsummary/〃打开指定的文件请输入文件名二III/summary privatevoid openstring filenameConsole.ReadLine;for inti=0;icurrentuser.ufd.Count;i++if currentuser.ufd[i].filename.Equalsfilename成功打开文件!currentuser.ufd[i].size;。