| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

操作系统课程设计报告树型目录文件系统

文***享

贡献于2020-12-29

字数:7258



操作系统课程设计报告


题目树型目录文件系统


学 院 计算机学院
专 业 网络工程
年级班 班
学 号
学生姓名
指导教师
成 绩


200 7年 1月






树型目录文件系统
设计思想:
课程设计目实现树型目录结构文件系统实现程中利二叉树
中节点父指针子指针兄弟指针中子指针指该目录第子节点该子节点父指针指级目录目录子节点兄弟指针连接起
文件夹开文件夹名称址压入开文件夹栈文件关闭文件夹名称址开文件夹栈中抛出
文件开文件名称父指针写文件列表时置文件开标志1文件关闭文件开列表中删时置文件开指针0文件读取写入检查文件否文件开列表中未开文件读写读文件写写文件读
文件夹文件创建文件夹文件创建首先检验目录否空空文件夹文件连接该目录空检查目录否名文件夹文件提示创建成功没文件夹文件连接该目录子节点作兄弟节点
文件夹文件删文件夹没开文件文件没开删否删失败删文件夹时利中序历遍删子树

二 系统结构说明
系统结构图:

root根结点root五户户文件夹文件系统初始化时户创建file1文件文件夹容名称开标志文件名称开标志文件访问权限文件类型文件长度中文件访问权限文件类型文件长度单独作结构体文件夹结构体相结构体
开文件列表结构体包括文件名文件父节点址开文件夹栈中包括文件夹名称址


三 数结构说明
普通文件结构体
struct file{
char type 文件类型0文文件 1执行文件 2记录型文件
char right 文件权限0-读 1-写 2-读写
int f_length 文件长度
}
typedef struct file File

文件夹文件结构体
struct FCB {
char kind kind'1'文件夹 kind'2'文件
char name[20] 文件夹文件名称
bool open
File if_file
struct FCB *parent
struct FCB *brother
struct FCB *child
}
typedef struct FCB Ff

rootfcp全局变量
Ff *root根节点
Ff *fcpnull判断否拷贝文件

开项结构体
typedef struct{
char name[20]名称
Ff *node 指针开文件夹记录文件夹址文件记录文件父节点
}opened
int OPFO0 记录文件夹开数目20
opened folderopened[20]记录文件开文件夹

int OPFI0 记录文件开数目20
opened fileopened[20]记录开文件

四 函数清单部分函数流程图
函数声明
void init()初始化创建根节点
void initopen()初始化开文件列表开文件夹文件列表
Ff* creat(Ff *parentchar name[20]char kind)创建文件文件夹
void delet(Ff *parentchar delname[20]char kind)删文件文件夹
void delSub(Ff *delp) 删子树(配合删文件夹)
void openfolder(Ff *parent char name[20])开文件夹
void openfile(Ff *parent char name[20])开文件
void closefo() 关闭文件夹
void closefile(char name[20]) 关闭文件
void read(Ff*parentchar name[20]) 读文件
void write(char name[20]) 写文件
void show() 显示初始界面
void initfile() 初始化户户创建file1文件
int ishaveopen(Ff *bedel) 判断文件夹否开文件文件夹
void filecpy(Ff *parentchar name[20])文件复制函数
void pastefile(Ff *parent) 文件粘贴

函数流程图:

函数开始执行时先初始化初始化包括创建root根目录创建user0~user4五户户创建file1文件
初始化完毕显示选择户退出系统两操作列出户选择1进入选择户界面选择户列出户目录容时显示操作界面选择操作执行相应操作执行完毕回选择操作界面

创建文件夹文件函数流程图(creat()):

创建文件文件夹首先通函数选择操作传递参数kind=1创建文件夹kind=2创建文件文件文件夹名称户输入文件文件夹父节点folderopened[OPFO1]node传递
果前目录名文件名文件夹创建文件创建文件夹成功
前目录空目录创建文件文件夹前目录首子节点Parent指针指前目录前目录child指针指文件文件夹
前目录空文件文件夹连接前目录子节点面作兄弟节点
删文件文件夹函数delet()流程图:
样删文件文件夹类型参数户选择操作时传递Kind1删文件夹kind=2删文件名称户输入
文件开列表文件夹中开文件文件文件夹删目录没该文件文件夹删失败删失败时返回相应信息
果目录该文件文件夹文件没开文件夹中没开文件删该释放该节点该子树返回删成功信息
流程图:
文件开函数流程图openfile():
文件开开前目录文件首先查找文件否开文件列表中返回文件已开文件列表中信息查前目录没该文件开时文件名父节点址写文件队列中置文件开标志1返回开成功信息
文件开返回层目录目录文件会开文件列表中删非文件目录执行关闭文件操作关闭文件文件开文件列表中删
流程图:


文件删函数说明流程图:
文件删前目录文件进行操作文件开队列中关闭失败返回提示信息开列表中关闭文件置文件开标志0
流程图:



文件夹开关闭函数说明:
文件夹开开前目录文件夹开文件夹名称节点址写文件夹堆栈中(果开目录写开文件夹堆栈)时列出文件夹目录容关闭文件夹(返回级目录)前目录开文件夹堆栈中抛出时开级目录
开文件夹关闭文件夹函数源程序:
开文件夹:
void openfolder(Ff *parent char name[20])
{
Ff *select*beopen
if(parent>child) 目录空
{
printf(没文件)
return
}


beopenparent>child

while(beopen) 寻找开文件夹
{
if(beopen>kind'1')
{
if(strcmp(beopen>namename)0) 文件夹找
{
break
}
}
if(beopen>brother)
{
printf(文件夹存\n)
return
}
beopenbeopen>brother
}
while end
if(beopen>child)
{
printf(该文件夹空\n)
if(OPFO>2)
{
if(folderopened[OPFO2]nodeparent)
{
if(strcmp(folderopened[OPFO1]namename)0)
return
}
}
folderopened[OPFO]nodebeopen
strcpy(folderopened[OPFO]namebeopen>name)
OPFO++
return
}
if(beopen>child)
{
selectbeopen>child
while(select) 列出文件夹容
{
for(int i0i<3&&selecti++)
{
printf(sselect>name)
if(select>kind'1')
{
printf((文件夹)\t)
}
if(select>kind'2')
{
if(select>if_filetype'0')
{
printf((文文件 dk)\tselect>if_filef_length)
}
if(select>if_filetype'1')
{
printf((执行文件 dk)\tselect>if_filef_length)
}
if(select>if_filetype'2')
{
printf((记录型文件 dk)\tselect>if_filef_length)
}
}
selectselect>brother
}
printf(\n)
}
if(OPFO>2)
{
if(folderopened[OPFO2]nodeparent) 开文件夹堆栈中已写堆栈
{
if(strcmp(folderopened[OPFO1]namename)0)
return
}
}
folderopened[OPFO]nodebeopen 开文件夹堆栈写堆栈
strcpy(folderopened[OPFO]namebeopen>name)
OPFO++
return
}

}


关闭文件夹源程序:
文件夹关闭
void closefo()
{
if(OPFO2) 返回根结点执行返回操作
{
printf(里根节点\n)
show()
OPFO
return
}
OPFO
openfolder(folderopened[OPFO2]nodefolderopened[OPFO1]name)
folderopened[OPFO]nodenull
}

删子树函数(void delSub())判断文件夹否文件开函数(int ishaveopen())

两函数辅助删文件夹函数删子树函数序历遍树方法 删子树递函数Ishaveopen()函数利先序历遍树方法判断文件夹否开文件递函数开文件返回1否返回0
删子树函数源程序:
删子树
void delSub(Ff *delp)
{
if(delp>brother) delSub(delp>brother)历遍brother子树
if(delp>child) delSub(delp>child)历遍child子树
free(delp)释放节点
}

判断文件夹否开文件函数源程序:
辅助del函数中删文件夹
int ishaveopen(Ff *bedel)
{
if(bedel>opentrue)
{
return 1
}

if(bedel>brother)
ishaveopen(bedel>brother)
if(bedel>child)
ishaveopen(bedel>child)
else
return 0
}

文件复制粘贴函数说明:
文件复制前目录查找复制文件查找返回信息拷贝失败
查找创建新节点复制文件信息写道新节点相应项里
文件粘贴首先判断fcp否空空表明没复制文件执行粘贴操作
空查找前目录否名文件询问户否覆盖已存文件
复制代覆盖文件释放覆盖文件资源否退出没复制文件名文件文件连目录子节点
粘贴文件源程序:
粘贴文件
void pastefile(Ff *parent)
{
Ff *select*cover
char opt
if(fcp)
{
printf(没拷贝文件请先拷贝文件\n)
return
}
if(parent>child) 目录空目录
{
fcp>childparent
parent>childfcp
fcpnull
printf(粘贴成功\n)
return
}
selectparent>child
if(select>kind'2')覆盖文件目录第子节点
{
if(strcmp(select>namefcp>name)0)
{
printf(该目录已文件否覆盖(yn))
getchar()
scanf(c&opt)
if(opt'Y'||opt'y')
{
fcp>brotherselect>brother
fcp>childselect>child
fcp>parentselect>parent
parent>childfcp
select>brothernull
select>childnull
select>parentnull
free(select)
printf(覆盖成功\n)
fcpnull
return
}
else
return
}
}

while(select>brother)查找目录否名文件
{
if(select>brother>kind'2')
{
if(strcmp(select>brother>namefcp>name)0)
{
printf(该目录已文件否覆盖(yn))
getchar()
scanf(c&opt)
if(opt'Y'||opt'y')覆盖名文件
{
coverselect>brother
fcp>brothercover>brother
fcp>childcover>child
fcp>parentcover>parent
select>brotherfcp
free(cover)
printf(覆盖成功\n)
fcpnull
return
}
else
return
}

}
selectselect>brother
}
select>brotherfcp目录没名文件
fcpnull
return
}


五程序运行效果:
初始界面:

选择1进入界面:

选择户进入界面:

户1文件file1

建立文件成功失败图示:

建立名文件时创建出错名文件创建成功


删文件成功失败图示:
1 删文件file1file1没开删成功:



目录剩file2

2 删ff文件目录没文件删失败:



3 文件file2开删删失败:

创建文件夹成功失败图示:
创建文件夹new目录中没new文件夹创建成功:


创建文件夹new目录中文件夹new创建失败:


删文件夹成功失败图示:
首先建立文件夹folderfolder里创建文件new开文件new
时提示删失败:

关闭文件new删成功:



时户少文件夹folder

文件拷贝粘贴:
首先new文件夹创建hello文件拷贝hello文件

拷贝成功:


回层目录useer1文件粘贴目录粘贴成功:

时user1文件hello

写读文件成功失败图示:
读文件file2file2没开读失败:



开文件file2然读取读取成功:


写文件写file2file2已开写成功:

关文件file2写文件file2成功:


显示路径

进入文件夹:
进入文件夹new更清楚路径进入文件夹news命令显示前路径:


返回操作返回user1目录更清楚路径返回s命令显示前路径:


六 说明书(程序运行时已明显提示提示操作)
七 体会心:
次课程设计选择树型结构文件系统设计题目刚刚开始时知道设计知道概结构认真阅读课关知识知道样设计结构体方便文件操作知道样设计写程序时遇障碍特指针改接指出错处理时深感编程力足次修改终设计该设计
通该课程设计更解课知识巩固课知识时编程力定提高
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

linux操作系统目录结构及主要内容

Linux操作系统目录结构及主要内容   “/”根目录部分有以下子目录:     /usr(unix software resource) 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。     /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时

t***1 5年前 上传1342   0

驱动程序实验报告操作系统课程设计报告

操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学

文***享 1年前 上传301   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传620   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传558   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传697   0

哲学家进餐问题操作系统课程设计报告

XX学院 《操作系统》课程设计报告题 目: 哲学家进餐问题 班 级: 学 号: 作者姓名: 指导教师: 2011年X月X日目 录1.

z***u 2年前 上传780   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传643   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传586   0

操作系统课程设计磁盘调度算法

操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 题目分析…………………………………………………………………24 概要设计…………………………………………………………………2 4.1 先来先服务(FCFS)的设计思想………

文***享 3年前 上传549   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传687   0

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传462   0

操作系统课程设计动态分区分配存储管理

操作系统课程设计设计题目 动态分区分配存储管理学生姓名号学 号指导教师专业班级计算机班 第一章 课程设计概述1.1 设计任务:动态分区分配存储管理1.2 设计要求建立描述内存分配状况的数据结构;l建立描述进程的数据结构;l使用两种方式产生进程:(a)自动产生, (b)手工输入;l 在屏幕上显示内存的分配状况、每个进程的执行情况

文***品 2年前 上传422   0

可研报告(目录)

 目 录 第一章 总 论……………………………………………1 一、项目提要 ………………………………………1 二、编制依据 ………………………………………2 三、综合评价和论证结论……………………………3 四、存在问题与建议………………………………6 第二章 项目背景与必要性……………………………6 一、项目建设背景…………………………………6 二、项目区农业产业化

w***n 9年前 上传17123   0

数据结构课程设计报告最小生成树Kruskal算法

计算机科学与技术系课程设计报告 2014-2015学年第二学期课程数据结构课程设计名称Kruskal算法求最小生成树学生姓名 学号 专业班级 软件工程指导教师 2014年X月题目:设计程序完成如下功能:对给定过的网和起点,用kruskal算法的基本思想求解其所有的最小生成树1、问题分析和任务定义根据课设题目要求,拟将整体程序分为三大模块

文***品 1年前 上传209   0

哈夫曼树应用数据结构课程设计报告

数据结构课程设计报告设计题目:哈夫曼树应用 专 业 : 软件工程 班 级 : 软件 学 生 : 学 号 : 指导教师 : 起止时间 :2011-07-04—2011-07

文***品 2年前 上传473   0

操作系统实习报告样本

操作系统实习报告样本  1 操作系统实习报告内容(1)    基本信息:完成人姓名、学号、报告日期(2)    实习内容(3)    实习目的(4)    实习题目(5)    设计思路和流程图(6)    主要数据结构及其说明(7)    源程序并附上注释(8)    程序运行时的初值和运行结果(9)    实习体会:实习中遇到的问题及解决过程、实习中产生的错误及原因分析、实习的体会及收获

q***9 9年前 上传576   0

操作系统实践报告

学 号: 实践课设计报告课程名称计算机操作系统题 目模拟设计存储管理的分配与回收学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师年月日模拟设计存储管理的分配与回收一、 需求分析 本次实验主要是要求实现动态的页式存储管理。根据本次实验的要求,可以分析出本次实验需要实现

文***享 1年前 上传464   0

用多线程同步方法解决生产者消费者问题操作系统课程设计

题 目用多线程同步方法解决生产者-消费者问题(Producer-Consumer Problem)学 院计算机科学与技术学院专 业软件工程班 级姓 名 指导教师 年月日 目 录目 录 1课程设计任务书 1正 文 21.设计

文***享 3年前 上传490   0

操作系统课程设计编程序模拟银行家算法

课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: 软件 姓 名: 学 号:

文***品 3年前 上传726   0

投资分析报告书目录

目录目录 2第1章 项目总论 7§1.1 项目背景 7§1.1.1 项目名称 7§1.1.2 项目承办单位 7§1.1.3 项目主管部门 7§1.1.4 项目拟建地区、地点 7§1.1.5 承担可行性研究工作的单位和法人代表 8§1.1.6 研究工作依据 8§1.1.7 研究工作概况 8§1.2 可行性研究结论 8§1.2.1 市场

l***g 10年前 上传704   0

大叶工可报告目录

目 录 第一章 概 述 §1.1 工程项目背景…………………………………………… 1 §1.2 编制依据………………………………………………… 2 §1.3 研究过程………………………………………………… 2 §1.4 研究范围和内容………………………………………… 3 §1.5 对专家评审意见的考虑………………………………… 3 §1.6 主要研究

p***s 8年前 上传12759   0

操作系统课外实践报告Linux进程管理

操作系统课外实践报告项 目 名 称: Linux 进程管理 所 在 班 级: 软件工程(10.Net) 小 组 成 员: 指 导 教 师:

z***u 1年前 上传319   0

操作系统进程管理实验报告

操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;(4)了解Linux系统中进程通信的基本原理。2.实验预备内容(1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解;(2)阅读Linux的fork()源码文件,分析进程的

文***享 1年前 上传365   0

培养选树党内典型的调查与思考—实习报告

培养选树党内典型的调查与思考—实习报告 培养选树党内典型的调查与思考   几年来,*区在培养选树党内典型上,形成了一套比较完整、清晰的工作思路和工作方法。一是围绕大局,选好典型。根据不同时期、不同阶段的工作任务和要求,有针对性地推出了一大批具有时代特征的先进典型。如优秀党员个人典型——***,先进党组织典型——*村村党支部,他们的先进事迹和成功经验,对激发全区广大党员干部更好地践行“

h***4 11年前 上传402   0