操作系统课程设计报告二级文件系统_java

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

操作系统课程设计报告题目:为Linux系统设计一个简单的二级文件系统指导老师:时间:2012.8.30一课程设计的目的课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。二课程设计的要求1.可以实现下列几条命令:login用户登录dir列目录create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件2.列目录时要列出文件名,物理地址,保护码和文件长度3.源文件可以进行读写保护三算法设计本次二级文件系统主要分为五大模块,分别是用户登录模块、新建目录模块、新建文件模块、删除文件模块和读取文件模块。用户登录成功后才可以进行其他模块的操作。1用户登录模块用户登录模块要求用户输入用户,当输入正确后才能进行其他模块操作,否则提示用户名不存在并询问用户是否用此名进行注册。若用户名未满,则提示注册成功,否则提示用现有注册用户,进行登录,并返回到登录界面。用户登录模块流程图如图1所示。否是否是开始输入login命令输入用户名用户是否存在进行其他模块是否注册图1用户登录模块流程图2新建文件模块新建文件模块是在用户出入create指令后进行的,进入后会要求用户输入文件名,并判断文件名是否存在,若没有则在要求用户输入文件读写权限,否则重新输入新的文件名。新建文件模块流程图如图2所示。是否图2新建文件流程图3删除文件模块删除文件模块是根据用户鼠标右击时选择到的节点来确定要删除节点的名字与路径,然后判断该节点是目录还是文件。若是文件则直接删除文件,若是目录则进入该目录再删除其全部文件。删除文件模块流程图如图4所示。否是输入create命令输入文件名文件名是否存在输入权限开始开始输如open文件名文件名是否存在输入权限提示无此文件图4删除文件模块流程图4读取文件模块读取文件模块,要求用户要在文件打开的前提下,将磁盘中的内容读取到内存中。读取文件流程图如图5所示。是否图5读取文件模块流程图5写入文件模块写入文件模块,思路与读取文件模块将本相同,只是添加了对读写权限的判断。6遍历文件遍历文件,根据在用户登陆时,记录的值,在二维数组中,找到用户的所有文件对象,将相应的必须属性全部打印出来。四程序源代码1.文件对象相关代码packagecom.file;importjava.io.Serializable;publicclassFileProimplementsSerializable{Stringfilename;Stringcontent;Stringusername;输如read文件名文件是否已打开显示文件内容提示文件未打开开始Open文件文件是否存在intflag;intprotect;publicFilePro(Stringfilename,Stringusername,Stringcontent,intflag,intprotect){this.filename=filename;this.username=username;this.content=content;this.flag=flag;this.protect=protect;}}2.文件读写操作packagecom.file;importjava.io.*;importjava.util.*;publicclassFileCon{Object[][]data=newObject[7][100];ObjectInputStreamin=null;ObjectOutputStreamout=null;Stringpath=D:\\file;publicFileCon(){for(inti=0;i7;i++)for(intj=0;j100;j++){data[i][j]=newFilePro(,null,,1,0);}}publicObject[][]readData(){try{in=newObjectInputStream(newBufferedInputStream(newFileInputStream(path)));data=(Object[][])in.readObject();}catch(EOFExceptione){}catch(Exceptione){}returndata;}publicvoidwriteData(Object[][]data){try{out=newObjectOutputStream(newBufferedOutputStream(newFileOutputStream(path)));out.writeObject(data);out.flush();}catch(Exceptione){e.printStackTrace();}}}3.用户名操作publicclassUserCon{ListStringlist=newArrayListString();ObjectInputStreamin=null;ObjectOutputStreamout=null;Stringpath=D:\\user;publicListStringreadUser(){try{in=newObjectInputStream(newBufferedInputStream(newFileInputStream(path)));list=(ListString)in.readObject();}catch(EOFExceptione){}catch(Exceptione){}returnlist;}publicvoidwriteUser(ListStringlist){try{out=newObjectOutputStream(newBufferedOutputStream(newFileOutputStream(path)));out.writeObject(list);out.flush();}catch(Exceptione){e.printStackTrace();}}}4.主程序packagecom.file;importjava.util.*;publicclassFileSystem{Object[][]data=newObject[7][100];FileConfc=newFileCon();ListStringuser=newArrayListString();UserConuc=newUserCon();String[]cmd=newString[2];intcurrentuser=0;publicFileSystem(){data=fc.readData();user=uc.readUser();}publicstaticvoidmain(String[]args){FileSystemfs=newFileSystem();fs.help();}publicvoidhelp(){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.out.print(read);System.out.println(读文件);System.out.print(write);System.out.println(写文件);System.out.print(delete);System.out.println(删除文件);command();}publicvoidcommand(){System.out.print(root:);Stringcomd=null;Scannerinput=input=newScanner(System.in);comd=input.nextLine();String[]cmd=newString[2];cmd=comd.split();if(cmd[0].equals(login))login();elseif(cmd[0].equals(create))create();elseif(cmd[0].equals(dir))dir();elseif(cmd[0].equals(delete))delete(cmd[1]);elseif(cmd[0].equals(open))open(cmd[1]);elseif(cmd[0].equals(close))close(cmd[1]);elseif(cmd[0].equals(read))read(cmd[1]);elseif(cmd[0].equals(write))write(cmd[1]);elseif(cmd[0].equals(exit)){System.out.println(退出系统!);System.exit(0);}elseSystem.out.println(指令错误!!);command();}publicvoidlogin(){booleanf=false;System.out.println(请输入用户名:);Scannerinput=input=newScanner(System.in);Stringusername=input.next();for(inti=0;iuser.size();i++){if(user.get(i).equals(username)){System.out.println(登陆成功!!);currentuser=i;f=true;break;}}if(!f){System.out.println(该用户不存在,是否以此用户名注册?y注册,其他返回);Stringcho=input.next();if(cho.equals(y)){if(user.size()==7)System.out.println(对不起用户已满,请利用其他已注册账户登录);else{user.add(username);uc.writeUser(user);System.out.println(注册成功!请重新登录);}login();}}command();}//目录publicvoiddir(){System.out.println(文件名\t+用户名\t+物理地址\t+保护码\t+文件长度);for(inti=0;i100;i++){FileProfp1=(FilePro)data[currentuser][i];if(!fp1.filename.equals())System.out.println(fp1.filename+\t+fp1.username+\t+currentuser+i+\t+fp1.protect+\t+fp1.content.length());}command();}//创建文件publicvoidcreate(){Scannerinput=input=newScanner(System.in);booleanf=true;booleanfl=false;Stringfilename=null;do{fl=false;System.out.print(请输入文加名:);filename=input.next();for(inti=0

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功