操作系统课程设计文档.docx

上传人:b****2 文档编号:23095718 上传时间:2023-04-30 格式:DOCX 页数:16 大小:379.56KB
下载 相关 举报
操作系统课程设计文档.docx_第1页
第1页 / 共16页
操作系统课程设计文档.docx_第2页
第2页 / 共16页
操作系统课程设计文档.docx_第3页
第3页 / 共16页
操作系统课程设计文档.docx_第4页
第4页 / 共16页
操作系统课程设计文档.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

操作系统课程设计文档.docx

《操作系统课程设计文档.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计文档.docx(16页珍藏版)》请在冰豆网上搜索。

操作系统课程设计文档.docx

操作系统课程设计文档

《操作系统原理》课程设计报告

 

简单二级文件系统

学院(系):

计算机科学与工程学院

班级:

0738-3学号:

10703080326

学生姓名:

王维

同组设计人:

周晓霞

指导教师:

杨宏雨周敏王东傅由甲

时间:

从2009年6月29日到2009年7月3日

目录

一、课程设计的目的

二、课程设计的内容及要求

内容

要求

三、实现原理

四、关键算法实现流程图

流程图

关键算法

五、软件运行环境及限制

六.结果输出及分析

七.心得体会

八.参考文献

一.课程设计的目的

本课程设计是学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让我更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强了我的动手能力。

 

二.课程设计的内容及要求

内容:

为LINUX设计一个简单的二级文件系统。

要求做到以下几点:

1、可以实现下列几条命令(至少4条)。

Login用户登录

Dir列文件目录

Create创建文件

Delete删除文件

Open打开文件

Close关闭文件

Read读文件

Write写文件

2、列目录时要列出文件名、物理地址、保护码和文件长度。

3、源文件可以进行读写保护。

从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:

1、鼓励并优先个人独立选题设计,可从下面设计题目中选择,也可以自拟相关题目;如要合作,每组最多两名同学,且设计文档不能相同;

2、可以在我们实验课最后布置的实验设计基础上进行完善和改进,但不能相同。

3、题目选定后报给班长,班长要注意班级内题目的平衡,根据所选题目进行协调,不要都选一样的题。

4、设计完成后报请老师答辩,答辩时不能对自己提供的设计进行讲解的同学,视为抄袭;

5、要求写出一份详细的设计报告(A4纸)。

6、每位同学在周五将自己的设计报告和电子文档(包括报告和源程序)交给学习委员,并由学习委员统一刻盘后上交。

 

三.实现原理

首先,实现Login用户登录,(用户名:

admin密码:

admin)必须登录成功才能进入文件系统进行查看,进入后,通过树状展示文件目录(默认文件目录是C:

\ProgramFiles),右侧显示文件夹图标或者文件图标,选中节点鼠标右击弹出菜单,有新建目录,新建文件,删除文件,打开文件,属性菜单项,并分别实现其功能。

 

四.关键算法实现流程图

流程图:

 

关键算法:

1.新建目录功能的实现

privateclassMenuAction2implementsActionListener{

publicvoidactionPerformed(ActionEventarg0){

try{

StringName=JOptionPane.showInputDialog("创建目录名称:

");

if(!

Name.equals("")){

//得到树状视图的被选择节点路径

TreePathpath=tree.getSelectionPath();

//得到树状视图的被选择节点

MutableTreeNodenode=(MutableTreeNode)path

.getLastPathComponent();

//得到树状视图的模型类变量

DefaultTreeModelmodel=(DefaultTreeModel)tree.getModel();

//新建子节点,标题为新目录名称

MutableTreeNodenewNode=newDefaultMutableTreeNode(Name);

//先展开树状视图,触发展开树状视图事件,给当前节点追加下级节点

tree.fireTreeExpanded(path);

//如果当前节点允许存在下级节点,则在树状视图的模型类变量中插入新子节点,位置是第一个,否则显示消息并退出该函数

if(node.getAllowsChildren())

model.insertNodeInto(newNode,node,0);

else{

JOptionPane.showMessageDialog(null,"不能给文件追加下级目录!

");

return;

}

//得到被选择节点对应文件的完整路径信息

StringfullPath="";

for(Objectobj:

path.getPath()){

Stringstr=obj.toString();

//处理盘符根目录问题

if(str.endsWith("\\"))

str=str.substring(0,str.length()-1);

if(fullPath.equals(""))

fullPath+=str;

else

fullPath+="\\"+str;

}

//System.out.println("fullpath="+fullPath);

//生成被选择节点对应的文件类变量

FileparentDir=newFile(fullPath);

//如果是目录,则新建相应的子目录

if(parentDir.isDirectory()){

FilecurrentFile=newFile(fullPath+"\\"+Name);

currentFile.mkdir();

}

}

else{

JOptionPane.showMessageDialog(null,"文件名不能为空!

");

}

}catch(HeadlessExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

2.新建文件功能的实现

privateclassMenuAction5implementsActionListener{

publicvoidactionPerformed(ActionEvente){

TreePathtp=tree.getSelectionPath();

//得到被选择节点对应文件的完整路径信息

StringfullPath="";

for(Objectobj:

tp.getPath()){

Stringstr=obj.toString();

//处理盘符根目录问题

if(str.endsWith("\\"))

str=str.substring(0,str.length()-1);

if(fullPath.equals(""))

fullPath+=str;

else

fullPath+="\\"+str;

}

StringFileName=JOptionPane.showInputDialog("创建文件名称:

");

if(!

FileName.equals(null)){

Filef=newFile(fullPath+"\\"+FileName);

try{

f.createNewFile();

}catch(IOExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}else{

JOptionPane.showMessageDialog(null,"文件名不能为空!

");

}

}

}

3.删除功能的实现

//内部类,响应快捷菜单的单击操作

privateclassMenuActionimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

//得到树状视图的被选择节点路径

TreePathtp=tree.getSelectionPath();

//得到树状视图的被选择节点

DefaultMutableTreeNodenode=(DefaultMutableTreeNode)tp

.getLastPathComponent();

//从树状视图删除当前节点

DefaultTreeModeldtm=(DefaultTreeModel)tree.getModel();

dtm.removeNodeFromParent(node);

//得到被选择节点对应文件的完整路径信息

StringfullPath="";

for(Objectobj:

tp.getPath()){

Stringstr=obj.toString();

//处理盘符根目录问题

if(str.endsWith("\\"))

str=str.substring(0,str.length()-1);

if(fullPath.equals(""))

fullPath+=str;

else

fullPath+="\\"+str;

}

//如果是文件,直接删除,如果是目录则调用deleteDir函数删除目录

FilecurrentFile=newFile(fullPath);

if(currentFile.isFile())

currentFile.delete();

else

deleteDir(currentFile);

}

};

//通过递归调用,可以删除目录的函数

publicstaticbooleandeleteDir(Filedir){

//判断是否为目录,如果是,则递归调用自己,如果不是,直接删除文件

if(dir.isDirectory()){

String[]subDir=dir.list();

for(Strings:

subDir){

deleteDir(newFile(dir,s));

}

}

returndir.delete();

}

4.打开文件的功能实现

即是Open_File这个类。

5.属性的功能实现

取得路径名:

TreePathtp=tree.getSelectionPath();

//得到被选择节点对应文件的完整路径信息

StringfullPath="";

for(Objectobj:

tp.getPath()){

Stringstr=obj.toString();

//处理盘符根目录问题

if(str.endsWith("\\"))

str=str.substring(0,str.length()-1);

if(fullPath.equals(""))

fullPath+=str;

else

fullPath+="\\"+str;

}

然后传入newProper(fullPath);

属性详细实现即是Proper类。

 

五.软件运行环境及限制

运行环境:

JDK1.6

使用语言:

Java

编程工具:

JBuilder2007

六.结果输出及分析

登录界面:

(用户名和密码均为admin)

 

错误提示框

 

进入系统后主界面:

 

菜单选项:

 

 

新建目录“小小”

 

 

新建文件“小小”

 

删除“小小”目录及文件

 

删除成功

 

打开文件

 

 

查看文件属性

 

七.心得体会

操作系统课程设计,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对操作系统应用有了更深入的认识与掌握。

比如对树的展示有了很好的学习,对二级文件系统也有了很好的了解,如何解决实现里面功能的各种问题。

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

八.参考文献

[1]朱福喜,尹为民等编著.Java语言与面向对象程序设计.武汉:

武汉大学出版社,2002.12

[2]陆昌辉,Java程序设计实用案例教程.北京:

电子工业出版社,2008.5

[3]丁振凡,黎章等编著.Java语言实用教程..北京:

北京邮电大学出版社,2005.8

[4]何桥,李肃义等编著.Java程序设计简明教程.北京:

中国水利水电出版社,2004.9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1