操作系统课程设计二级文件系统.docx

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

操作系统课程设计二级文件系统.docx

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

操作系统课程设计二级文件系统.docx

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

学号

10225608129

武汉理工大学华夏学院

课程设计

课程名称操作系统课程设计

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

专业软件技术

班级2081班

姓名赵然

成绩

指导教师赵传斌、司晓梅

2011年1月17日至2011年1月21日

 

课程设计任务书

设计题目:

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

设计目的:

1、通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。

2、提高学生的程序设计能力、提高算法设计质量与程序设计素质。

设计任务:

(在规定的时间内完成下列任务)

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

要求做到以下几点:

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

Login

用户登录

Dir

列文件目录

Create

创建文件

Delete

删除文件

Open

打开文件

Close

关闭文件

Read

读文件

Write

写文件

 

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

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

时间安排:

1月17日布置课程设计任务;分配题目后,查阅资料、准备程序;

1月18日~1月20日上机调试程序、书写课程设计报告;

1月21日上午提交课程设计报告及相关文档。

地点:

学校机房(具体见现代教育中心大屏幕安排)

具体要求:

1、课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅

2、每位学生应独立完成各自的任务且每天至少在设计室工作半天

指导教师签名:

11年1月7日

教研室主任(或责任教师)签名:

11年1月7日

1.实现原理

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

zhaoran密码:

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

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

2.开发环境

开发工具MyEclipse7.0

开发语言Java

 

3.关键算法实现流程图

3.1流程图

 

 

3.2具体算法代码

3.2.1登陆模块

publicclassLoginextendsJFrame{

privatestaticfinallongserialVersionUID=1L;

privateJPaneljContentPane=null;

privateJLabeljLabel1=null;

privateJLabeljLabel2=null;

privateJLabeljLabel=null;

privateJTextFieldjTextField1=null;

privateJPasswordFieldjPasswordField=null;

privateJButtonjButton1=null;

privateJButtonjButton2=null;

privateJTextFieldgetJTextField1(){

if(jTextField1==null){

jTextField1=newJTextField();

jTextField1.setPreferredSize(newDimension(10,25));

jTextField1.setBounds(newRectangle(183,59,169,30));

}

returnjTextField1;

}

privateJPasswordFieldgetJPasswordField(){

if(jPasswordField==null){

jPasswordField=newJPasswordField();

jPasswordField.setBounds(newRectangle(183,99,169,30));

jPasswordField.addKeyListener(newjava.awt.event.KeyAdapter(){

publicvoidkeyPressed(java.awt.event.KeyEvente){

if(e.getKeyChar()==KeyEvent.VK_ENTER){

test();

}

}

});

}

returnjPasswordField;

}

publicstaticvoidmain(String[]args){

SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

LoginthisClass=newLogin();

thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

thisClass.setVisible(true);

}

});

}

publicLogin(){

super();

initialize();

}

privatevoidinitialize(){

this.setSize(400,250);

Dimensiond=Toolkit.getDefaultToolkit().getScreenSize();

Dimensionfsize=this.getSize();

this.setLocation((d.width-fsize.width)/2,(d.height-fsize.height)/2);

this.setContentPane(getJContentPane());

this.setTitle("二级文件系统");

}

privateJButtongetJButton2(){

if(jButton2==null){

jButton2=newJButton();

jButton2.setBounds(newRectangle(218,167,90,32));

jButton2.setText("取消");

jButton2.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

System.exit(0);

}

});

}

returnjButton2;

}

privateJPanelgetJContentPane(){

if(jContentPane==null){

jLabel=newJLabel();

jLabel.setText("密码:

");

jLabel.setHorizontalAlignment(SwingConstants.CENTER);

jLabel.setBounds(newRectangle(27,101,132,29));

jLabel2=newJLabel();

jLabel2.setText("用户名:

");

jLabel2.setBounds(newRectangle(27,59,133,29));

jLabel2.setHorizontalAlignment(SwingConstants.CENTER);

jLabel2.setPreferredSize(newDimension(10,15));

jLabel1=newJLabel();

jLabel1.setText("登陆界面");

jLabel1.setFont(newFont("\u534e\u6587\u5b8b\u4f53",Font.BOLD,24));

jLabel1.setBounds(newRectangle(0,0,389,32));

jLabel1.setForeground(newColor(255,0,54));

jLabel1.setHorizontalAlignment(SwingConstants.CENTER);

jContentPane=newJPanel();

jContentPane.setLayout(null);

jContentPane.add(jLabel1,null);

jContentPane.add(jLabel2,null);

jContentPane.add(jLabel,null);

jContentPane.add(getJTextField1(),null);

jContentPane.add(getJPasswordField(),null);

jContentPane.add(getJButton1(),null);

jContentPane.add(getJButton2(),null);

}

returnjContentPane;

}

privateJButtongetJButton1(){

if(jButton1==null){

jButton1=newJButton();

jButton1.setBounds(newRectangle(79,168,84,33));

jButton1.setText("确定");

jButton1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

test();

}

});

}

returnjButton1;

}

publicvoidtest(){

if(jTextField1.getText().equals("zhaoran")&&String.valueOf(jPasswordField.getPassword()).equals("1234")){

Stringaa[]={"aa","bb"};

Contents.main(aa);

setVisible(false);

}

else{

JOptionPane.showMessageDialog(Login.this,"输入错误!

请重新输入!

");

}

}

}

3.2.2新建文件目录

privateclassnewMenuActionimplementsActionListener{

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;

}

FileparentDir=newFile(fullPath);

if(parentDir.isDirectory()){

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

currentFile.mkdir();

}

}else{

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

");

}

}catch(HeadlessExceptione){

e.printStackTrace();

}

}

}

3.2.3新建文件

privateclassnewFileActionimplementsActionListener{

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.2.4删除功能

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;

}

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();

}

3.2.5打开文件

publicclassOpen_File{

publicstaticvoidmain(String[]args){

DemoWindow2dw=newDemoWindow2("打开文件");

ToolkittheKit=dw.getToolkit();

DimensionwndSize=theKit.getScreenSize();

dw.setBounds(wndSize.width/3,wndSize.height/3,wndSize.width/3,wndSize.height/3);

dw.setVisible(true);

}

}

classDemoWindow2extendsJFrameimplementsActionListener,Runnable{

privatestaticfinallongserialVersionUID=1L;

JTextAreajta=newJTextArea();

intv=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inth=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPanejsp=newJScrollPane(jta,v,h);

JPaneljp1=newJPanel();

JButtonjb=newJButton("打开文件");

publicDemoWindow2(Stringtitle){

super(title);

jp1.add(jb);

add(jsp);

add(jp1,BorderLayout.SOUTH);

jb.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

newThread(this).start();

}

publicvoidrun(){

jta.setText("");

JFileChooserjfc=newJFileChooser(System.getProperty("user.home"));

jfc.setFileFilter(newTXTFilter());

if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){

Filefile=jfc.getSelectedFile();

if(file!

=null){

try{

FileInputStreamfis=newFileInputStream(file);

ProgressMonitorInputStreampmis=newProgressMonitorInputStream(

this,"读取进度",fis);

ProgressMonitorpm=pmis.getProgressMonitor();

pm.setMillisToDecideToPopup(10);

pm.setMillisToPopup(0);

byte[]readbyte=newbyte[10];

while(pmis.read(readbyte)>0){

jta.append(newString(readbyte,"GB2312"));

Thread.sleep(10);

if(pm.isCanceled()){

jta.append("\n\n终止读取文件!

");

}

}

pmis.close();

}catch(Exceptione){

System.out.println(e.getMessage());

}

}

}

}

}

classTXTFilterextendsFileFilter{

publicbooleanaccept(Filef){

if(f.isDirectory()){

returntrue;

}

String[]filePostfix={"txt"};

for

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

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

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

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