ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:467.04KB ,
资源ID:11722026      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11722026.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(文件管理系统课程设计.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

文件管理系统课程设计.doc

1、 课 程 名称:操作系统 实验题目:文件管理系统 1、课程设计选题 ….3 1.1主要设计内容 3 1.2主要设计思路 3 2、课程设计需求分析 3 3、概要设计

2、 ………….4 3.1整体设计框架 4 3.2各模块的基本功能 4 4、系统实现 5 4.1原理 6 4.2各模块算法思想

3、 6 4.3流程图描述 9 4.4代码描述 10 5、系统测试 11 5.1系统主界面 11 5.2子系统功能测试

4、 11 6、总结 19 7、参考文献样式 19 1、课程设计选题 1.1主要设计内容 本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 1.2主要设计思路 首先系统要完成初始化的任务,建立起整个系统,等待用

5、户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求,用户退出后,系统转入登录模块,等待下一位用户的登录。 2、课程设计需求分析 本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登陆来对文件或是文件进行操作。多用户功能可以满足不同用户不同的需求,同时也起到了很好的保密作用。 文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文件。为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。

6、另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。 模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文件。对于用户名下的文件,用文件目录树的分枝来存贮。 采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 因为存在着同一个目录下不能有同名文件的问题。所以在进行文件的基本操作时要考虑到在已经有的文件中是否有同名文件,有的话则输出提示信息。 3、概要设计 3

7、1整体设计框架 系统初始化界面是由用户注册,用户登录,退出系统三个模块组成。用户登录模块再由创建用户,进入目录,删除用户,显示所有用户,显示位示图,修改用户资料几大模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 3.2各模块的基本功能 3.21系统初始化 系统的初始化包括初始化了磁盘的空间即位示图、一个管理员用户 3.22用户注册模块 用户可以在这里注册,用户名和密码的最大长度都为10个字节,如果用户名不重复的话,则注册成功,用户的权限默认为一般用户。 3.23用户登陆模块 用户名就是每个用户进入用户目录的

8、通行证。如果用户名存在的话,则可进入,否则提示用户名不存在,但不退出系统。 3.24创建用户模块 此功能只支持管理员操作,在这里可以一次性创建多个用户,设置其用户名、密码、权限,系统同时为每个用户创建个根目录。 3.25删除用户模块 此功能只支持管理员操作,并且只能删除根目录为空的用户。用户不能删除自己。 3.26修改用户资料模块 在这里可以修改用户名、用户密码。 3.27创建文件模块 只支持在当前目录下创建文件,一次可以创建多个文件,设置文件名,文件所需盘块(所需盘块大于空闲盘块将不能分配),文件的权限,文件内容,根据位示图找到未使用的盘块将其分配。 3.28打开文件模块

9、 只支持在当前目录下操作,一次可以打开多个文件,将文件标志为运行,如果文件的执行权限是不允许的话,将不能进行此操作。 3.29关闭文件模块 只支持在当前目录下操作,将文件标志为没运行。 3.210文件读写模块 只支持在当前目录下操作,如果其读写权限是不允许的话,将不能进行相应操作。 3.211删除文件、目录模块 只支持在当前目录下操作,删除文件释放磁盘空间,并修改位示图。只能删除空目录。 3.212创建子目录模块 只支持在当前目录下操作,一次可以创建多个,目录不占磁盘空间。 3.213改变当前目录模块 支持进入到下一个文件夹、返回父目录、返回根目录。实现方式是依据当前目录的

10、指向其子目录的指针和指向其父目录的指针实现。 3.214列出当前目录内容模块 显示出当前目录的所有子目录,以及子目录的情况,如是否为空;显示当前目录的所有文件,以及文件的相关信息。 4、系统实现 4.1原理 本系统在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。磁盘空闲空间的管理选择了位示图,用0表示未使用,1表示已使用。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。 4.2各模

11、块算法思想 4.21用户结构 用来描述一个登录用户的信息,包含用户的名称、用户的密码、用户的权限(从而进入不同的用户界面)、用户所属的根目录的指针。用一条链把所有用户链接起来。 struct MFD { char name[10]; //用户名 char password[10]; //用户密码 char right; //用户权限,1表示管理员,0表示一般用户 struct MFD *next; //指向用户的后继结点 struct MULU *link; //指向用户根目录 }; 4.22目录结构 用来描述用户的目录,包含

12、目录的名称、目录里的子目录指针、目录里的文件指针、目录的父目录指针。用一条链把与该目录同一父目录的目录链接起来。用一指向父目录指针来记录当前目录的路径。 struct MULU { char name[10]; //目录名 struct MULU *next; //指向目录的后继结点 struct MULU *link; //指向目录的子目录 struct MULU *pre; //指向目录的父目录 struct UFD *link1; //指向目录的文件 }; 4.23文件结构 用来描述用户的文件,包含文件的名称、文件详细情况的指针。

13、用一条链把与该文件同一目录的文件链接起来。索引结点包括文件大小、文件的内容、文件的存取权限、文件的物理地址连接。 struct UFD { char name[10]; //文件名 struct UFD *next; //指向文件的后继结点 struct AFD *link; //指向文件信息 }; struct AFD { int size ; //文件大小 char context[118]; //文件内容 char state[3];//3个状态分别代表:读、写、执行;1代表允许,0代表不允许 bool Open_flag; /

14、/文件运行标识位 struct DISK *link; //指向所占盘块链指针 }; 4.24 文件在外存的分配方式 文件采用链接方式,每个链接结点均存有盘块号和连接指针,即指向下一盘块号,凡是一文件的第一个盘号,均作为文件地址入口链接至文件。 struct DISK //盘块结构体 { int disk; //盘块号 struct DISK *next; //指向下一个盘块 }; 4.25文件存储空间 文件的存储管理采用位示图方法,用一个二维数组表示。0为空闲,1为己分配。 盘块的分配可分四步: 顺序描位示图,从中找出一个或一

15、组其值为0的。 找到其值为0的,则其盘块号计算式如下: B=n*i+j; 修改位示图,令map[i][j]=1; 将盘块后放入文件盘块的链接结点 盘块回收分三步: (1) 从文件的盘块链接中依次获得结点的盘块号 (2) 将回收的盘块号转换成位示图的行号和列号 I=(b-1) DIV n +1; J=(b-1) MOD n+1; 修改位示图:令map[i][j]=0; 4.26结构图 USER MFD① ② ③ …… next next next link root link root link root 根

16、目录 link Link1 Mulu① ② next …… next Ufd① next ② next …… 第1级 Mulu① next …… 第2级 …… Afd Disk① link link next ② next …… 子目录 子文件 4.3流程图描述 开始 初始化 用户登陆 登陆成功? N Y 接收命令 实现命令 结束 解析命令 退出? N Y 进入目录 改变路径 新建文件 删除文件 注销 显示目录 新建文件夹 删除文件夹 关闭文

17、件 打开文件 写文件 读文件 用户界面区 显示用户 删除用户 创建用户 修改用户 磁盘空间 注销 用户注册 用户登陆区 结束 退出 返回用户界面区 4.4代码描述 void main();//主函数 //初始化 void initdisk();//位示图处始化函数 void inituser();//创建1个管理员函数字 //登陆区 void loginmenu();//登陆菜单函数 void Userregister();//用户注册函数 void LoginMFD();//用户登陆函数 void exitMFD();//退出系统

18、函数 //用户界面区 void MFDmenu();//用户界面函数 void CreateMFD();//创建新用户函数 void linkMFD(); //用户按创建先后进行排列函数 void DeleteMFD();//删除用户函数 void EnterMULU();//进入用户根目录函数 void DisplayMFD();//显示用户资料函数 void ModifyMFD();//修改用户资料函数 void Showdisk();//位示图情况显示函数 void exitMULU();//用户注销函数 //用户操作目录区 void MULUmenu();

19、//用户操作目录区显示函数 void MULUpath();//当前目录路径显示函数 void MULUorder();//命令输入函数 void CreateUFD();//创建文件函数 void linkUFD();//用户文件按创建时间先后排序 void Assigndisk();//为文件分配盘块函数 void linkDISK();//盘块链函数 void OpenUFD();//打开文件函数 void CloseUFD();//关闭文件函数 void ReadUFD();//读取文件函数 void WriteUFD();//文件写函数 void Deletem

20、unu();//删除选项界面函数 void Delete();//删除函数 void DeleteUFD();//文件删除函数 void Recoverdisk();//回收盘块函数 void DeleteMULU();//删除目录函数 void CreateMULU();//创建子目录函数 void CdMULU();//改变当前目录函数 void Dir();//当前目录内容显示函数 5、系统测试 5.1系统主界面 5.2子系统功能测试 5.21登陆区 这里用管理员帐号登陆用户界面区 5.22

21、退出系统 5.23用户界面区 在这里可以进行相应选择。现在演示“创建用户” 5.24创建用户 创建后,显示所有用户 5.25删除用户 5.26显示所有用户 5.27位示图 5.28修改用户资料 5.29用户目录操作区 选择“2”进入目录操作区 5.30创建文件 输入命令”create”,然后回车 所需盘块数不能大于可用盘块数,否则不能分配,同一目录文件名不能重复。其他功能的操作类似,这里不在演示,下面演示“创建目录”。 5.31打开文件

22、 5.32创建目录 5.34删除内容 输入命令”delete”,然后回车 选择“1”,删除文件a 删除目录也是同样的操作,但删除目录功能只能删除空的目录。 更换目录 输入命令”cd”,然后回车,进入更换目录区 选择“3”,进入p目录 其他操作类似,这里不再演示。 6、总结 对这次的这个多用户多目录文件管理系统,总体来说,还算满意,基本上实现了设计任务的要求,并且还添加了一些功能,使整个系统更实用,但也有几个不足的地方,如不能删除非空目录,主要原因是我一直没有理顺它们之间的递归关系

23、由于时间的关系,也没能继续深入进去,其次,就是我初始化了一个二唯数组的位示图,里面有一、两个元素显示不正常,感觉好象是出现随机数,但都给其赋值,而且中间也没发现什么错误的更改,但整个位示图都能正常运行,即可以正常的分配与回收,就是显示有点问题,至今也没找到结果,这是我最大的遗憾。 这次的设计给我感触还是挺深的。特别是当自己经过辛勤努力,得到正确运许的那一刻,真是有无比的成就感。虽然这个很简单,但这是收获,凝集着自己的辛勤的汗水,这是值的自豪的。从理论到实践,给我颇为深刻的感觉就是我们不能只学书本知识,应该多联系实际,多接触些这样有意义、实际性的操作课程,这样才能培养人的兴趣,从而更好的巩固书本上的知识。 经过这次的设计,我不仅巩固了书本知识,更重要的是我从中学到了很多。真是收益非浅。 7、参考文献样式 [1] 计算机操作系统(修订版), 汤子瀛等 ,西安电子科技大学出版社, 2001 [2] 计算机操作系统教程 ( 第二版 ), 张尧学、 史美林,清华大学出版社,2000 [3] 现代操作系统,A.S.Tanenbaum 著,陈向群等译机械工业出版社,2002 年 23

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服