学号10225608129武汉理工大学华夏学院课程设计课程名称操作系统课程设计题目为LINUX设计一个简单的二级文件系统专业软件技术班级2081班姓名赵然成绩指导教师赵传斌、司晓梅2011年1月17日至2011年1月21日课程设计任务书设计题目:为LINUX设计一个简单的二级文件系统设计目的:1、通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。2、提高学生的程序设计能力、提高算法设计质量与程序设计素质。设计任务:(在规定的时间内完成下列任务)为LINUX设计一个简单的二级文件系统。要求做到以下几点:1、可以实现下列几条命令(至少4条)2、列目录时要列出文件名、物理地址、保护码和文件长度。3、源文件可以进行读写保护。时间安排:1月17日布置课程设计任务;分配题目后,查阅资料、准备程序;1月18日~1月20日上机调试程序、书写课程设计报告;1月21日上午提交课程设计报告及相关文档。地点:学校机房(具体见现代教育中心大屏幕安排)具体要求:1、课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅2、每位学生应独立完成各自的任务且每天至少在设计室工作半天指导教师签名:11年1月7日教研室主任(或责任教师)签名:11年1月7日Login用户登录Dir列文件目录Create创建文件Delete删除文件Open打开文件Close关闭文件Read读文件Write写文件1.实现原理首先,实现Login用户登录,(用户名:zhaoran密码:1234)必须登录成功才能进入文件系统进行查看,进入后,通过树状展示文件目录(默认文件目录是C:\ProgramFiles),右侧显示文件夹图标或者文件图标,选中节点鼠标右击弹出菜单,有新建目录,新建文件,删除文件,打开文件,属性菜单项,并分别实现其功能。2.开发环境开发工具MyEclipse7.0开发语言Java3.关键算法实现流程图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;elsefullPath+=\\+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(ActionEve