版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验报告实验名称:文件管理专业班级:网络工程1301学 号:姓 名:2015年6月16日实验一文件管理一、实验目的文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统, 模拟文件管理的工作过程。 从而对各种文件操作命令的实质内容和执 行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。二、预备知识1. VS2010的使用2. C#的学习3. 文件主目录与子目录的理解三、实验内容与步骤用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5
2、个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有 Create、 delete、 OPen、close、read、Write 等命令。所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD ),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。程序流程图:逻辑设计:保存的文件,文
3、件的状使用线性数组表表示MFD ,泛型数组表示UFD ,每个元素包括用户ID、数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码) 态等信息。物理设计:/主目录PriVate FileUSer mfd;/当前用户PriVate FiIeUSer CUrre ntuser;/ <summary>Ill文件/ <lsummary>PUbIiC class FiIeObjeCt PUbIiC Stri ng file name;PUbIiC int SiZe=20;PUbIiC int read=0;PUbIiC int Write = 0;PUbIiC St
4、ring author;/ <summary>/文件系统用户/ <summary>PUbIiC class FiIeUSer PUbIiC Stri ng USer name;PUbIiC List<FiIeObject> Ufd = new LiStVFileobjeCt>();PUbIiC int fileco Un t=0;步骤详述:1、主目录及用户目录机构显示:4ITkfC1 : nF d_USer _0, 3 -亠ufd: ,SBiiRFd-Useis-Q Uft1:, 20,nfd_UlSer_0 -PUFd: ,30j.fd_USer_0
5、 fd :nf r_l # 3 Uf d:, 20,nfd_UlSeV_1 -PUFd:,30rnFd_USer_l -亠Uf d = j,20j nF d_use r J. mf d : nfd_UlSe r_2,3 -PIIf d= ,0r nFd_USe r_3 一ufd:,20,nfd_UGer_2 f d :, 20,nfd_UlSeV_2 ITkf d: nFd_USe r_3 r 3 -亠ufd ,20,nfd_USerl_3 f d :, 20,nfd_UlSer_3 IIf d: ,20rnFd_usei'_32、当前操作用户登录:请输入用户名:Infd-User-Z
6、当前 用户;mF山一UH 尸_23、文件管理系统菜单:欢迎进入文件管理系统*CFeat een close一 F de Iete jeat Urite一' -exit 请输入操作命令:4、Create 命令:5、OPen 命令:幘输入操作命令:K)Pen 焉输入文件名: 54120701 反件不存在!请输入操作命令*OPen请输入文件名541207030124MJV.TXT成功打开文件!ID:3 IFileNalIlE :54120703014MJy TXTSize : JRutorUSeP_26、close 命令:7、delete 命令:P青输入操作命令 delete 陳输入文件名:
7、 541207030124MJV-TXT 战功删除文件!一8、read命令9、Write 命令请输入操作命令:wr ite请输入文件名:541207030124MJV.TXT已写入文件!10、exit 命令幘够入操作命令;俭好,您已经成功退出系统¥四、实验总结通过这次的课程设计使我认识到要将操作系统这门计算机专业的课学好不 仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结 合起来才能更好地巩固所学,才能提高自己实践能力通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识 同样重要。可以说此课程设计的理论难度并不大,但是若要
8、深入发掘其中的东西, 并且实际去编程实现,就遇到了相当大的难度。因为与之涉及的很多方面并没有 学过,需要自己去自学和实践检验。五、程序清单USing System;USing SyStem.Collectio ns.Ge neric;USing SyStem丄inq;USing SyStem.Text;n amespace filema nagesystemclass PrOgramStatiC VOid Main( Stri ng args)/初始化用户自模拟文件系统ExplorerI nUser explorer = new ExplorerI nUser(); III <summa
9、ry>III 文件管理系统for用户自模拟III <Isummary>PUbIiC class ExplorerI nUser/ 命令列表"delete",private string command= "create", "open", "close", "read", "write","exit" ;/ 主目录private FileUser mfd;/ 当前用户private FileUser currentuser;/ <s
10、ummary>/ 构造函数/ </summary>public ExplorerInUser()INI();/ <summary>/ 初始化系统/ </summary>private void INI()if (currentuser = null)/ 主目录实现 IniUserList();/ 系那是菜单 InilizeMenu(); bool isinput = false;/ 输入正确的命令while (!isinput)string input = Console.ReadLine(); isinput=CommandGroup(input);
11、#region 主目录/ <summary>/ 获取用户个数/ </summary>/ <returns></returns>private int GetUserCount()string input = Console.ReadLine();tryint user_size = Convert.ToInt32(input);return user_size;catch (Exception e)Console.WriteLine(e.Message);return 0;/ <summary>/ 生成用户及用户管理文件/ </
12、summary>private void IniUserList()int user_size = GetUserCount();mfd=new FileUseruser_size;for (int i = 0; i < user_size; i+)mfdi = new FileUser(); mfdi.username = "mfd_user_"+i; mfdi.filecount = 3;Console.WriteLine("mfd:" + mfdi.username + mfdi.filecount);for (int j = 0; j
13、 < 3; j+)FileObject file=new FileObject (); file.author = mfdi.username;Console.WriteLine("-ufd:"+file.filename+","+file.size+","+file.author);file.filename="file"+j; mfdi.ufd.Add(file);IniLogin();/ <summary>/ 用户登录/ </summary>private void IniLog
14、in()Console.WriteLine("请输入用户名: ");bool issuccess = false;while (!issuccess)string username = Console.ReadLine();for (int i = 0; i < mfd.Length; i+)if (mfdi.username.Equals(username) issuccess = true; currentuser = mfdi; Console.WriteLine(" 当前用户: "+username); break;if (!issucce
15、ss)Console.WriteLine(" 请重新输入输入用户名: "); #endregion#region 菜单/ <summary>/ 初始化菜单/ </summary>private void InilizeMenu()Console.WriteLine(" 欢迎进入文件管理系统 !"); Console.WriteLine("create");Console.WriteLine("open");Console.WriteLine("close");Consol
16、e.WriteLine("delete");Console.WriteLine("read");Console.WriteLine(" write");Console.WriteLine(" exit");Console.WriteLine(" 请输入操作命令: ");/ <summary>/ 功能分组判断/ </summary>/ <param name="command"></param>/ <returns>&
17、lt;/returns> private bool CommandGroup(string command)string filename = Console.ReadLine();bool isexit = true;switch (command)case "create": create(); break; case "open": open(); break; case "close": close(); break;case "delete": delete(); break; case "
18、;read": read(); break;case "write": write(); break;case "exit": exit(); return true; break; default:isexit = false; break;if (isexit) INI(); else Console.WriteLine(" 请重新输入操作命令: "); return isexit; #endregion#region 操作命令方法/ <summary>/ 创建新的文件/ </summary>pr
19、ivate void create()Console.WriteLine(" 请输入新件名: "); string filename = Console.ReadLine(); currentuser.filecount+;FileObject file = new FileObject();file.filename = filename;file.author = currentuser.username; currentuser.ufd.Add(file);Console.WriteLine(" 成功创建文件! ");/ <summary&g
20、t;/ 打开指定的文件/ </summary> private void open() 请输入文件名: ");Console.WriteLine("for (int i = 0; i < currentuser.ufd.Count; i+)if (currentuser.ufdi.filename.Equals(filename)Console.WriteLine(" 成功打开文件! ");Console.WriteLine("ID:"+i);Console.WriteLine("FileName:&quo
21、t;+filename);Console.WriteLine("Size:" + currentuser.ufdi.size);Console.WriteLine("Autor:"currentuser.ufdi.author);return; Console.WriteLine(" 文件不存在!/ <summary>/ 关闭所有打开的文件/ </summary>private void close() Console.WriteLine(" 已关闭文件 ");/ <summary>/ 删
22、除文件/ </summary>private void delete()Console.WriteLine(" 请输入文件名:););string filename = Console.ReadLine(); for (int i = 0; i < currentuser.ufd.Count; i+)if (currentuser.ufdi.filename.Equals(filename)currentuser.ufd.RemoveAt(i);Console.WriteLine(" return; Console.WriteLine("/ <summary>/ 读取文件/ </summary> private void read() Console.WriteLine("成功删除文件! ");文件不存在! ");请输入文件名: ");for (int i = 0; i < currentuser.ufd.Count; i+)if (currentuser.ufdi.filename.Equals(filename);Console.WriteLine( return; Console.W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南省中西医结合医院湖南省中医药研究院附属医院高层次人才公开招聘13人备考题库及答案详解1套
- 2025年安宁市人民政府国有资产监督管理委员会公开遴选市属国有企业外部董事专家库成员10人备考题库及一套参考答案详解
- 临沂市公安机关2025年第四季度招录警务辅助人员备考题库及1套完整答案详解
- 2025年宿松县人民政府龙山街道办事处选调工作人员备考题库带答案详解
- 2025年兴业银行总行社会招聘备考题库及答案详解1套
- 2025年云南大学附属中学星耀学校招聘备考题库及答案详解一套
- 2025年中国科学院光电技术研究所园区运行维护岗位社会招聘8人备考题库及1套完整答案详解
- 2025年蚌埠市固镇县司法局选聘专职人民调解员16人备考题库带答案详解
- 天津市卫生健康委员会所属天津医学高等专科学校2026年度公开招聘11人备考题库及1套完整答案详解
- 2025年广西期刊传媒集团有限公司招聘工作人员若干人备考题库附答案详解
- 吴正宪给小学数学教师的建议读书分享课件
- 浙江省湖州市2024-2025学年高二上学期期末考试 英语 含答案
- 四年级寒假语文
- 贵州省黔东南州2023-2024学年七年级上学期数学期末考试试卷(含答案)
- 电梯维保服务投标方案(技术方案)
- 超星尔雅学习通《三国志导读(复旦大学)》2024章节测试含答案
- 【地理】产业转移第一课时课件 2023-2024学年高中地理人教版(2019)选择性必修2
- 块石挡土墙砌筑
- 三查四定管理制度(参考模板)
- 新录用国家公务员任职定级审批表
- 2023年中证金融研究院事业单位招聘23人(共500题含答案解析)笔试必备资料历年高频考点试题摘选
评论
0/150
提交评论