计算机操作系统课程设计实践报告-Read

《计算机操作系统》课程设计实践报告

班级:计科31班第二组 组长:吕岭 小组成员:邢自成、叶林、张鹰

【问题描述】

模拟二级以上的多级文件目录管理,设计一个支持n个用户的文件系统,每个用户可拥有多个文件;并有如下:建立文件、创建目录、查询目录、查询文件、打开文件、关闭文件、针对不同的用户设置共享的功能,应提供良好的用户界面。(难度:★★★★)

【实验目的】

通过模拟操作系统中的文件管理系统,更好的理解掌握常用OS的重要部分:文件管理。归纳学习方法和思考方法,做到理论联系实际,培养分析问题、解决问题和具备较强的软件设计能力和较严密的思维能力

【人员安排】

吕岭:搭建程序框架,编写主要数据结构,整合程序。

叶林:编写部分数据结构,调试完善程序。

邢自成:编写部分函数,调试完善程序。

张鹰:编写部分函数,调试完善程序。

【进度安排】

星期一:小组成员集中讨论实验路线,核心技术,实现功能

星期二:做幻灯片汇报,明确实验流程,小组成员分工

星期三:各成员完成各自任务,并分别调试

星期四:各模块组合,调试,完善程序

星期五:组间测试,写实验报告,汇报

【基本功能】

(1)多用户

(2)多级目录:可有多级子目录;

(3)用户登录

(4)系统初始化(建文件卷、提供登录模块)

(5)文件的创建,打开,读,写,关闭,删 除。

(11)创建目录(建立子目录)

(12)改变当前目录

(13)列出文件目录

(14)共享目录,文件

(15)退出

【技术路线】

本程序主要是虚拟文件系统,不涉及实际磁盘操作

用内存模拟磁盘

初始化用户(3个)

用户可以创建删除查找目录,文件

可以设置共享文件

用户可以对文件进行读写修改等操作

用位视图法管理内存模拟的磁盘块

用一个二维数组模拟磁盘块

用树型结构保存目录文件

用单级索引分配法为文件分配磁盘空间

目录的保存与读取:把目录树转化为二叉树,并将这个二叉树保存到磁盘,下次从磁盘读出并还原成目录树的结构。

文件查找:从目录树的根结点开始深度优先遍历这棵树,直到找到文件。

文件共享:用符号链实现多用户间的文件共享。

【数据结构】

程序对多级目录结构的模拟采用树型目录结构。

树型结构具有多种存储结构,如:双亲表示法、孩子表示法、孩子兄弟表示法等,本程序用孩子兄弟表示法来作为树型结构的存储结构。

即以二叉链表作为树的存储结构链表中的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点,分别命名为firstChild域和nextSibling域。

文件控制块

typedef struct FCB {

stringname;//文件名

int type;//标致:0表示目录,1表示文件

int size;//如果是文件则表示文件大小

structFCB *firstchild;//指向第一个孩子结点

struct FCB *nextsibling;//指向下一个兄弟结点

struct FCB *parent;//指向父结点

}FCB, *FCBnode;

用户当前数据结构

typedef struct USER {

stringusername;//用户名

FCBnodeworkdir;//当前工作目录或文件指针

stringpath;//当前路径

}USER, *USERnode;

将目录树保存到文件

void SaveTree(FCBnode root,FILE *fp) {

if (root) {

fwrite(root,sizeof(struct FCB),1,fp);

SaveTree(root->firstchild,fp);

SaveTree(root->nextsibling,fp);

}

}

void Save(FCB *root) {

FILE *fp;

if((fp=fopen("user","wb+"))==NULL) {

cout<

}

SaveTree(root,fp);

fclose(fp);

}

将目录树从文件中读出来

void LoadTree(FCBnode p,FILE *fp) {

FCB q;

if (p->firstchild) {

fread(&q,sizeof(struct FCB),1,fp);

p->firstchild=&q;

LoadTree(&q,fp);

}

if (p->nextsibling) {

fread(&q,sizeof(struct FCB),1,fp);

p->nextsibling=&q;

LoadTree(&q,fp)

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

  1. 计算机辅助设计课程描述,计算机辅助设计课程教学的现状与方法

    计算机辅助设计课程教学的现状与方法 近年来,随着计算机辅助设计在艺术设计领域中的应用越来越广泛,计算机辅助设计课程已成为高等院校的一门专业基础课程.下面YJBYS小编为大家搜索整理了关于计算机辅助设计 ...

  2. 计算机操作基本知识公务员,公务员计算机类操作系统知识.pdf

    软件设计师 (原高级程序员 ) 复习资料 专题三:操作系统知识 1.操作系统知识: 1.1 基本概述 操作系统是一个大型的软件系统,是为了提高计算机系统资源(硬件和软件资源)的利用效率并方便 用户使用 ...

  3. 计算机控制系统课程设计中期报告,课程设计中期报告模板.doc

    课程设计中期报告模板概要 新疆大学 信息科学与工程学院 <程序设计>课程设计中期报告 题目: 专 业 计算机科学与技术 学 生 姓 名 学 号 联 系 方 式 班 级 计算机15-班 组 ...

  4. 计算机操作系统模拟试题,最新考研计算机-操作系统模拟试题.doc

    最新考研计算机-操作系统模拟试题.doc 考研计算机操作系统模拟试题(一)一.选择题23 在分时系统中,当用户数为100时,为保证响应时间不超过2s,系统设置的时间片长度应为().A 10msB 20 ...

  5. 计算机操作知识 p?p?t,计算机初级基本操作

    计算机的初级基本操作包括基本信息栏.计算机的基础知识.五笔字型基础.国际互联网的操作.常用办公外设的使用.计算机硬件的日常维护与保养和office办公工具的应用. 中文名 计算机初级基本操作 外文名 ...

  6. 计算机操作与使用教学总结,计算机操作员工作总结.docx

    计算机操作员工作总结 计算机操作员工作总结 计算机高级操作员 工种定义:使用电子计算机微机从事文字.图形.图像等信息处理工作及计算机系统操作.维护与管理的人员.技术等级:初.中.高. 基本文化程度:初 ...

  7. 计算机操作基本知识题库,计算机操作基础知识题库.doc

    计算机网络考试 计算机操作基础知识题库 一. 单选题(共 59 题) 1. 在 Excel 工作窗口上, " 状态栏" 是在屏幕的( ). A.上面 B. 下面 C. 左面 D. ...

  8. 计算机操作基础知识考试试题,计算机操作基础知识试题库完整.doc

    . . . . . . . 计算机操作基础知识题库 一.单选题(共59题) 1.在 Excel 工作窗口上,"状态栏"是在屏幕的( ). A.上面 B.下面 C.左面 D.右面,, ...

  9. 计算机操作基础知识考试试题,计算机操作基础知识试题库完整

    计算机操作基础知识试题库完整 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 . .计算机操作基础知识题库一.单选题(共59题)1 ...

最新文章

  1. mmap 内存映射详解
  2. java queue源码_java源码解读--queue
  3. hadoop fs命令无法使用_Hadoop从入门到入土(三)HDFS集群简单维护及JAVA客户端连接HDFS...
  4. 小记一次考题:生成包含大写字母、小写字母、数字的8位密码
  5. java虚拟机标志_《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合...
  6. 超详细简单解决git的上传和下载
  7. opencv给视频打马赛克
  8. DMA(direct memory access)直接内存访问
  9. ASP.NET错误处理的方式(一)
  10. Machine Learning lectures- 机器学习课程
  11. 拓端tecdat|R语言投资组合优化求解器:条件约束最优化、非线性规划求解
  12. android pickerview 多行,Android仿ios条件选择器pickerview
  13. 由公式抽样检查所想到的...
  14. 微信小程序怎么实现收藏功能
  15. ROS基础学习笔记(五):自定义消息练习以及订阅者发布者节点代码简介
  16. 详解@Resource解析过程
  17. Vue3中Compositions API的使用(二)
  18. Tomcat 5.5 配置
  19. 饥荒机器人雷击_饥荒机器人怎么被雷劈
  20. 台式计算机连接,台式电脑连接网络步骤

热门文章

  1. 管理后台布局-左菜单-右侧内容宽度控制(使用ant design vue)
  2. 【记一次kafka启动报org.apache.zookeeper.KeeperException$NoAuthException:=Noauth for/consumers】
  3. c语言 mysql触发器_数据库触发器 @符号
  4. php代码审计之bluecms
  5. VMware云管平台运维管理
  6. 云管平台可以应用于哪些行业?传统行业可以吗?
  7. 「建议收藏」推荐给软件测试员的10本书
  8. index.php 被替换,中间人恶搞替换图片
  9. FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社
  10. Timestamp Encoding FEDformer_ Frequency Enhanced Decomposed Transformer for Long-term Series Forecas