资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
操作系统课程设计报告题目: 为Linux系统设计一个简单的二级文件系统 指导老师:翟一鸣 时间:2012.8.30一 课程设计的目的课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。二 课程设计的要求 1.可以实现下列几条命令:login 用户登录dir 列目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件2列目录时要列出文件名,物理地址,保护码和文件长度3源文件可以进行读写保护三 算法设计本次二级文件系统主要分为五大模块,分别是用户登录模块、新建目录模块、新建文件模块、删除文件模块和读取文件模块。用户登录成功后才可以进行其他模块的操作。1 用户登录模块 用户登录模块要求用户输入用户,当输入正确后才能进行其他模块操作,否则提示用户名不存在并询问用户是否用此名进行注册。若用户名未满,则提示注册成功,否则提示用现有注册用户,进行登录,并返回到登录界面。用户登录模块流程图如图1所示。开始 输入login命令 否输入用户名是否注册用户是否存在 是 否 是进行其他模块图1 用户登录模块流程图2新建文件模块新建文件模块是在用户出入create指令后进行的,进入后会要求用户输入文件名,并判断文件名是否存在,若没有则在要求用户输入文件读写权限,否则重新输入新的文件名。新建文件模块流程图如图2所示。开始 输入create命令 输入文件名文件名是否存在 是 否输入权限图2 新建文件流程图3 删除文件模块开始删除文件模块是根据用户鼠标右击时选择到的节点来确定要删除节点的名字与路径,然后判断该节点是目录还是文件。若是文件则直接删除文件,若是目录则进入该目录再删除其全部文件。删除文件模块流程图如图4所示。 输如open 文件名 提示无此文件文件名是否存在 否 输入权限 是图4 删除文件模块流程图4读取文件模块开始读取文件模块,要求用户要在文件打开的前提下,将磁盘中的内容读取到内存中。读取文件流程图如图5所示。 Open 文件 输如read 文件名 文件是否存在 是 提示文件未打开文件是否已打开 否显示文件内容图5 读取文件模块流程图5 写入文件模块 写入文件模块,思路与读取文件模块将本相同,只是添加了对读写权限的判断。6 遍历文件遍历文件,根据在用户登陆时,记录的值,在二维数组中,找到用户的所有文件对象,将相应的必须属性全部打印出来。四 程序源代码1. 文件对象相关代码 package com.file;import java.io.Serializable;public class FilePro implements SerializableString filename;String content;String username;int flag;int protect;public FilePro(String filename,String username,String content,int flag,int protect)this.filename = filename;this.username = username;this.content = content;this.flag = flag;this.protect = protect;2. 文件读写操作 package com.file;import java.io.*;import java.util.*;public class FileCon Object data = new Object7100;ObjectInputStream in = null;ObjectOutputStream out = null;String path = D:file;public FileCon()for(int i = 0;i7;i+)for(int j = 0;j100;j+)dataij = new FilePro(,null,1,0);public Object readData()try in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path);data = (Object) in.readObject(); catch(EOFException e) catch (Exception e) return data;public void writeData(Object data)try out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path);out.writeObject(data);out.flush(); catch (Exception e) e.printStackTrace(); 3.用户名操作public class UserCon List list = new ArrayList();ObjectInputStream in = null;ObjectOutputStream out = null;String path = D:user;public List readUser()try in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path);list = (List) in.readObject(); catch(EOFException e) catch (Exception e) return list;public void writeUser(List list)try out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path);out.writeObject(list);out.flush(); catch (Exception e) e.printStackTrace(); 4.主程序package com.file;import java.util.*;public class FileSystem Object data = new Object7100;FileCon fc = new FileCon();List user = new ArrayList();UserCon uc = new UserCon();String cmd = new String2;int currentuser = 0;public FileSystem() data = fc.readData();user = uc.readUser();public static void main(String args) FileSystem fs = new FileSystem();fs.help();public void help() System.out.println(欢迎使用该文件系统);System.out.print(create );System.out.println(创建文件);System.out.print(dir );System.out.println(列目录文件);System.out.println(exit 退出系统);System.out.println(以下命令需加文件名);System.out.println(eg:open *);System.out.print(open );System.out.println(打开文件);System.out.print(close );System.out.println(关闭文件);System
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号