欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    操作系统课程设计为LINUX设计一个简单的二级文件系统.doc

    • 资源ID:2388252       资源大小:401.50KB        全文页数:20页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计为LINUX设计一个简单的二级文件系统.doc

    理工大学华夏学院课 程 设 计课程名称 操作系统课程设计题目 为LINUX 设计一个简单的二级文件系统专 业 软件技术 班 级 姓 名 成 绩 指导教师 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:Program Files),右侧显示文件夹图标或者文件图标,选中节点鼠标右击弹出菜单,有新建目录,新建文件,删除文件,打开文件,属性菜单项,并分别实现其功能。2.开发环境开发工具 MyEclipse 7.0开发语言 Java3.关键算法实现流程图3.1流程图登陆验证账号密码目录右键选择操作新建目录新建文件删除打开属性结束账号错误账号正确3.2具体算法代码3.2.1登陆模块public class Login extends JFrame private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JLabel jLabel1 = null;private JLabel jLabel2 = null;private JLabel jLabel = null;private JTextField jTextField1 = null;private JPasswordField jPasswordField = null;private JButton jButton1 = null;private JButton jButton2 = null;private JTextField getJTextField1() if (jTextField1 = null) jTextField1 = new JTextField();jTextField1.setPreferredSize(new Dimension(10, 25);jTextField1.setBounds(new Rectangle(183, 59, 169, 30);return jTextField1;private JPasswordField getJPasswordField() if (jPasswordField = null) jPasswordField = new JPasswordField();jPasswordField.setBounds(new Rectangle(183, 99, 169, 30);jPasswordField.addKeyListener(new java.awt.event.KeyAdapter()public void keyPressed(java.awt.event.KeyEvent e)if(e.getKeyChar()=KeyEvent.VK_ENTER)test(););return jPasswordField;public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() Login thisClass = new Login();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true););public Login() super();initialize();private void initialize() this.setSize(400, 250);Dimension d=Toolkit.getDefaultToolkit().getScreenSize();Dimension fsize=this.getSize();this.setLocation(d.width-fsize.width)/2, (d.height-fsize.height)/2);this.setContentPane(getJContentPane();this.setTitle("二级文件系统");private JButton getJButton2() if (jButton2 = null) jButton2 = new JButton();jButton2.setBounds(new Rectangle(218, 167, 90, 32);jButton2.setText("取消");jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) System.exit(0););return jButton2;private JPanel getJContentPane() if (jContentPane = null) jLabel = new JLabel();jLabel.setText("密码:");jLabel.setHorizontalAlignment(SwingConstants.CENTER);jLabel.setBounds(new Rectangle(27, 101, 132, 29);jLabel2 = new JLabel();jLabel2.setText("用户名:");jLabel2.setBounds(new Rectangle(27, 59, 133, 29);jLabel2.setHorizontalAlignment(SwingConstants.CENTER);jLabel2.setPreferredSize(new Dimension(10, 15);jLabel1 = new JLabel();jLabel1.setText("登陆界面");jLabel1.setFont(new Font("u534eu6587u5b8bu4f53", Font.BOLD, 24);jLabel1.setBounds(new Rectangle(0, 0, 389, 32);jLabel1.setForeground(new Color(255, 0, 54);jLabel1.setHorizontalAlignment(SwingConstants.CENTER);jContentPane = new JPanel();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);return jContentPane;private JButton getJButton1() if (jButton1 = null) jButton1 = new JButton();jButton1.setBounds(new Rectangle(79, 168, 84, 33);jButton1.setText("确定");jButton1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) test(););return jButton1;public void test()if(jTextField1.getText().equals("zhaoran")&&String.valueOf(jPasswordField.getPassword().equals("1234")String aa="aa","bb"Contents.main(aa); setVisible(false);elseJOptionPane.showMessageDialog(Login.this, "输入错误!请重新输入!");3.2.2新建文件目录private class newMenuAction implements ActionListener public void actionPerformed(ActionEvent arg0) try String Name = JOptionPane.showInputDialog("创建目录名称:"); if (!Name.equals("") TreePath path = tree.getSelectionPath(); MutableTreeNode node = (MutableTreeNode) path.getLastPathComponent(); DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); MutableTreeNode newNode = new DefaultMutableTreeNode(Name); tree.fireTreeExpanded(path); if (node.getAllowsChildren()model.insertNodeInto(newNode, node, 0);else JOptionPane.showMessageDialog(null, "不能给文件追加下级目录!");return;String fullPath = ""for (Object obj : path.getPath() String str = obj.toString();if (str.endsWith("")str = str.substring(0, str.length() - 1);if (fullPath.equals("")fullPath += str;elsefullPath += "" + str;File parentDir = new File(fullPath);if (parentDir.isDirectory() File currentFile = new File(fullPath + "" + Name);currentFile.mkdir(); else JOptionPane.showMessageDialog(null, "文件名不能为空!"); catch (HeadlessException e) e.printStackTrace();3.2.3新建文件private class newFileAction implements ActionListener public void actionPerformed(ActionEvent e) TreePath tp = tree.getSelectionPath();String fullPath = ""for (Object obj : tp.getPath() String str = obj.toString();if (str.endsWith("")str = str.substring(0, str.length() - 1);if (fullPath.equals("")fullPath += str;elsefullPath += "" + str;String FileName = JOptionPane.showInputDialog("创建文件名称:");if (!FileName.equals(null) File f = new File(fullPath + "" + FileName);try f.createNewFile(); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace(); else JOptionPane.showMessageDialog(null, "文件名不能为空!");3.2.4删除功能private class MenuAction implements ActionListener public void actionPerformed(ActionEvent e) TreePath tp = tree.getSelectionPath();DefaultMutableTreeNode node = (DefaultMutableTreeNode) tp.getLastPathComponent();DefaultTreeModel dtm = (DefaultTreeModel) tree.getModel();dtm.removeNodeFromParent(node);String fullPath = ""for (Object obj : tp.getPath() String str = obj.toString();if (str.endsWith("")str = str.substring(0, str.length() - 1);if (fullPath.equals("")fullPath += str;elsefullPath += "" + str;File currentFile = new File(fullPath);if (currentFile.isFile()currentFile.delete();elsedeleteDir(currentFile);public static boolean deleteDir(File dir) if (dir.isDirectory() String subDir = dir.list();for (String s : subDir) deleteDir(new File(dir, s);return dir.delete();3.2.5打开文件public class Open_File public static void main(String args) DemoWindow2 dw = new DemoWindow2("打开文件");Toolkit theKit = dw.getToolkit();Dimension wndSize = theKit.getScreenSize();dw.setBounds(wndSize.width/3,wndSize.height/3,wndSize.width/3,wndSize.height/3);dw.setVisible(true);class DemoWindow2 extends JFrame implements ActionListener, Runnable private static final long serialVersionUID = 1L;JTextArea jta = new JTextArea();int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;JScrollPane jsp = new JScrollPane(jta, v, h);JPanel jp1 = new JPanel();JButton jb = new JButton("打开文件");public DemoWindow2(String title) super(title);jp1.add(jb);add(jsp);add(jp1, BorderLayout.SOUTH);jb.addActionListener(this);public void actionPerformed(ActionEvent e) new Thread(this).start();public void run() jta.setText("");JFileChooser jfc = new JFileChooser(System.getProperty("user.home");jfc.setFileFilter(new TXTFilter();if (jfc.showOpenDialog(this) = JFileChooser.APPROVE_OPTION) File file = jfc.getSelectedFile();if (file != null) try FileInputStream fis = new FileInputStream(file);ProgressMonitorInputStream pmis = new ProgressMonitorInputStream(this, "读取进度", fis);ProgressMonitor pm = pmis.getProgressMonitor();pm.setMillisToDecideToPopup(10);pm.setMillisToPopup(0);byte readbyte = new byte10;while (pmis.read(readbyte) > 0) jta.append(new String(readbyte, "GB2312");Thread.sleep(10);if (pm.isCanceled() jta.append("nn终止读取文件!");pmis.close(); catch (Exception e) System.out.println(e.getMessage();class TXTFilter extends FileFilter public boolean accept(File f) if (f.isDirectory() return true;String filePostfix = "txt" ;for (String str : filePostfix) if (getExtension(f).equals(str)return true;return false;public String getDescription() return "TXT文件(*.txt)"public static String getExtension(File f) String ext = ""String s = f.getName();int i = s.lastIndexOf('.');if (i > 0 && i < s.length() - 1) ext = s.substring(i + 1).toLowerCase();return ext;3.2.6查看文件属性public class Proper extends JFrame private static final long serialVersionUID = 1L;private JPanel jContentPane = null; private String fullPath;private JTextArea jTextArea = null;private JScrollPane jScrollPane = null;public Proper(String fullPath) super();this.fullPath=fullPath;initialize();private void initialize() this.setSize(332, 221);Dimension d=Toolkit.getDefaultToolkit().getScreenSize();Dimension fsize=this.getSize();this.setLocation(d.width-fsize.width)/2, (d.height-fsize.height)/2);this.setContentPane(getJContentPane();this.setTitle("查看文件属性");this.setVisible(true);private JPanel getJContentPane() if (jContentPane = null) jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(getJScrollPane();return jContentPane;private JScrollPane getJScrollPane() if (jScrollPane = null) jScrollPane = new JScrollPane();jScrollPane.setBounds(new Rectangle(3, 1, 319, 185);jScrollPane.setViewportView(getJTextArea();return jScrollPane;private JTextArea getJTextArea() if (jTextArea = null) jTextArea = new JTextArea();jTextArea.setBounds(new Rectangle(3, 1, 319, 185);jTextArea.setEditable(false);File currentFile = new File(fullPath);StringBuffer sb = new StringBuffer();if (currentFile.isDirectory()sb.append("文件夹路径:" + currentFile.getAbsolutePath() + "n");elsesb.append("文件路径:" + currentFile.getAbsolutePath() + "n");sb.append("是否可读:" + currentFile.canRead() + "n");sb.append("是否可写:" + currentFile.canWrite() + "n");if (!currentFile.isDirectory()sb.append("文件长度:" + currentFile.length() / (1024 * 1024) + "Mn");SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日HH小时mm分钟ss秒");sb.append("文件上次修改时间:" + s.format(new Date(currentFile.lastModified()+ "n");sb.append("文件是否被隐藏:" + currentFile.isHidden() + "n");jTextArea.setText(sb.toString();return jTextArea;4软件运行过程4.1登陆记主目录界面(默认为C盘)4.2新建目录newfiles4.3新建文件file4.4删除4.5打开文件4.6查看文件属性5设计小结操作系统课程设计,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对操作系统应用有了更深入的认识与掌握。比如对树的展示有了很好的学习,对二级文件系统也有了很好的了解,熟练Java布局的使用,如何解决实现里面功能的各种问题。1.树形结构的实现使用tree.getSelectionPath()方法得到树形结构的节点2.删除时遍历文件夹首先判断是否为目录,如果是,则使用递归遍历3.布局管理器Java提供了许多布局管理器如:FlowLayout 流式布局、BorderLayout 方位布局、GirdLayout 网格布局、BoxLayout 盒式布局等,我们需要选择合适的布局。指导教师评语:09/21 13:39 CA6140车床拨叉零件的机械加工工艺规程及夹具设计83100308/30 15:37 CPU风扇后盖的注塑模具设计09/20 16:19 GDC956160工业对辊成型机设计08/30 15:45 LS型螺旋输送机的设计10/07 23:43 LS型螺旋输送机设计09/20 16:23 P-90B型耙斗式装载机设计09/08 20:17 PE10自行车无级变速器设计10/07 09:23 话机机座下壳模具的设计与制造09/08 20:20 T108吨自卸车拐轴的断裂原因分析及优化设计09/21 13:39 X-Y型数控铣床工作台的设计09/08 20:25 YD5141SYZ后压缩式垃圾车的上装箱体设计10/07 09:20 ZH1115W柴油机气缸体三面粗镗组合机床总体及左主轴箱设计09/21 15:34 ZXT-06型多臂机凸轮轴加工工艺及工装设计10/30 16:04 三孔连杆零件的工艺规程及钻35H6孔的夹具设计08/30 17:57 三层货运电梯曳引机及传动系统设计10/29 14:08 上盖的工工艺规程及钻6-4.5孔的夹具设计10/04 13:45 五吨单头液压放料机的设计10/04 13:44 五吨单头液压放料机设计09/09 23:40 仪表外壳塑料模设计09/08 20:57 传动盖冲压工艺制定及冲孔模具设计09/08 21:00 传动系统测绘与分析设计10/07 23:46 保护罩模具结构设计09/20 15:30 保鲜膜机设计10/04 14:35 减速箱体数控加工工艺设计10/04 13:20 凿岩钎具钎尾的热处理工艺探索设计09/08 21:33 分离爪工艺规程和工艺装备设计10/30 15:26 制定左摆动杠杆的工工艺规程及钻12孔的夹具设计10/29 14:03 前盖板零件的工艺规程及钻8-M16深29孔的工装夹具设计10/07 08:44 加油机油枪手柄护套模具设计09/20 15:17 加热缸体注塑模设计10/07 09:17 动模底板零件的工艺规程及钻52孔的工装夹具设计10/08 20:23 包缝机机体钻孔组合机床总体及夹具设计09/21 15:19 升板机前后辅机的设计09/09 22:17 升降式止回阀的设计09/22 18:52 升降杆轴承座的夹具工艺规程及夹具设计09/09 16:41 升降杠杆轴承座零件的工艺规程及夹具设计08/30 15:59 半自动锁盖机的设计(包装机机械设计)08/30 15:57 半轴零件的机械加工工艺及夹具设计10/29 13:31 半轴零件钻6-14孔的工装夹具设计图纸09/26 13:53 单吊杆式镀板系统设计08/30 16:20 单级齿轮减速器模型优化设计08/30 16:24 单绳缠绕式提升机的设计09/09 23:08 卧式加工中心自动换刀机械手设计09/08 22:10 厚板扎机轴承系统设计09/18 20:56 叉杆零件的加工工艺规程及加工孔20的专用夹具设计08/30 19:32 双卧轴混凝土搅拌机机械部分设计09/09 22:33 双模轮胎硫化机机械手控制系统设计

    注意事项

    本文(操作系统课程设计为LINUX设计一个简单的二级文件系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开