一.课程设计的目的

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

­

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

内容:为LINUX 设计一个简单的二级文件系统。要求做到以下几点:

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

Login        用户登录

Dir          列文件目录

Create       创建文件

Delete       删除文件

Open        打开文件

Close        关闭文件

Read        读文件

Write        写文件

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

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

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

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

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

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

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

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

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

三.实现原理

首先,实现Login用户登录,(用户名:admin 密码:admin)必须登录成功才能进入文件系统进行查看,进入后,通过树状展示文件目录(默认文件目录是C:\Program Files),右侧显示文件夹图标或者文件图标,选中节点鼠标右击弹出菜单,有新建目录,新建文件,删除文件,打开文件,属性菜单项,并分别实现其功能。

四.关键算法实现流程图

流程图:

关键算法:

1.新建目录功能的实现。

private class MenuAction2  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;}//System.out.println("fullpath="+fullPath);// 生成被选择节点对应的文件类变量File parentDir = new File(fullPath);// 如果是目录,则新建相应的子目录if (parentDir.isDirectory()) {File currentFile = new File(fullPath + "\\" + Name);currentFile.mkdir();}}else{JOptionPane.showMessageDialog(null, "文件名不能为空!");}} catch (HeadlessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

完整代码在word文档

下载链接:完整代码下载链接。

操作系统课程设计文件管理二级文件系统相关推荐

  1. java编写文件系统的方法_操作系统课程设计模拟文件系统Java

    [实例简介] 一个操作系统课程设计,使用java语言模拟磁盘文件系统实现,实现了FAT算法 [实例截图] [核心代码] e692cc3b-c785-40f6-babe-2f9d5383f034 └── ...

  2. 计算机操作实践的课程描述,计算机操作系统课程设计实践报告-Read.DOC

    计算机操作系统课程设计实践报告-Read <计算机操作系统>课程设计实践报告 班级:计科31班第二组 组长:吕岭 小组成员:邢自成.叶林.张鹰 [问题描述] 模拟二级以上的多级文件目录管理 ...

  3. GeekOS操作系统课程设计 project1

    GeekOS操作系统课程设计 project1 项目设计1 一.项目设计目的 二.项目设计要求 三.步骤 1.修改project1/src/geekos/elf.c文件 1.1 在函数Parse_EL ...

  4. 操作系统课程设计pintos project1实验摘记

    前言: 本篇意在记录本学期结束的操作系统课程设计pintos project1实验报告和实现过程.整个实验参考了多篇文章也查阅了一些代码,其中部分内容或与其他文章相同,还请见谅.同时,也为了测试CSD ...

  5. 操作系统课程设计geekos project1-3

    概述 实验环境 GeekOS-0.3.0 Bochs和Vmware介绍 开发过程 编译运行 配置文件 前导知识 一.全局描述符表GDT(Global Descriptor Table) 二.段选择子( ...

  6. linux课程设计题目主存空间的分配与回收,可变分区分配与回收,哈尔滨理工大学操作系统课程设计报告.doc-资源下载在线文库www.lddoc.cn...

    可变分区分配与回收,哈尔滨理工大学 操作系统课程设计报告.doc 哈 尔 滨 理 工 大 学 课 程 设 计 ( 操 作 系 统 ) 题 目 可变分区分配与回收 (首次适应算法) 班 级 计算机科学与 ...

  7. 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...

    文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...

  8. linux课程设计死锁避免,linux操作系统课程设计—车辆死锁.doc

    linux操作系统课程设计-车辆死锁.doc 键入文字"操作系统原理"课程设计BX090709吴沛儒操作系统原理课程设计报告姓名吴沛儒班级BX0907学号9指导老师胡静二〇一一年十 ...

  9. 操作系统课程设计--使用多线程模拟时间片轮转法调度

    本篇博文分享操作系统课程设计–使用多线程模拟时间片轮转法调度的思路及代码. 实验环境:虚拟机ubuntu18.04 ,VS Code 博主分享仅为互相学习之用,不懂的地方可以留言提问,谨防抄袭!!!谢 ...

最新文章

  1. python画图标题_使用pyplot.matshow()函数添加绘图标题
  2. 解决The server cannot be started because one or more of the ports are invalid.
  3. 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
  4. 已知c语言程序有主程序模块prog.c,嵌入式系统试卷--A卷
  5. 合并报表调整、抵销分录的编制顺序
  6. Python基础教程:菱形继承问题
  7. Android开发之自定义AlertDialog的大小
  8. WinForm窗体中如何在一个窗体中取到另一个窗体的值
  9. 计算机安全概论论文,计算机安全探讨论文毕业论文(7篇).doc
  10. html获取data-*值,html5 获取和设置data-*属性值的四种方法讲解
  11. php数据库连接重试机制,SpringCloud重试机制配置详解
  12. 总比特率是什么意思_新基金初始净值低于1是什么意思?什么时候开始有净值?...
  13. 暂停按钮_年报巨亏400多亿,国内钾肥龙头启动暂停上市按钮
  14. 利用python从网络上爬取图片_我用Python爬取了妹子网100G的套图
  15. RS-232与RS485通信方式区别
  16. microscan说明书_ALZET迷你渗透胶囊MODEL2002说明书中文
  17. 算法模板:归并排序【沈七】
  18. TextTranslatorOpenSource-文本翻译器开源版
  19. Slave SQL thread retried transaction 10 time(s) in vain, giving up. Consider raising the value of t
  20. 如何解决跨站点请求伪造

热门文章

  1. jQuery效果-自定义动画效果animate /王者荣耀手风琴效果案例
  2. WPA3---SAE原理介绍
  3. throw 和 throws 的区别?
  4. 排障集合——Nginx和Apache设置系统服务systemctl start时报错,Job for nginx.service failed because the control process
  5. Struts2框架安全缺陷[转贴]
  6. Makefile入门一、helloworld
  7. async awit
  8. CNN卷积神经网络之SKNet及代码
  9. 西安上计算机课英语,英语课堂单词怎么上
  10. 最详尽翻译:Rules of Machine Learning: Best Practices for ML Engineering