文件操作与管理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件操作与管理

《操作系统》 课程设计报告 任务名称: 文件操作与管理 指导教师: 专 业: 班 级: 学生姓名: 学 号: 完成日期: 一、《操作系统》课程设计的目的与要求 1、目的 随着社会信息量的不断增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个极为重要的组成部分。学生应独立地用C语言(或其它程序设计语言)编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 2、要求 设计一个有n个用户的文件系统,每个用户最多可保存m个文件。 限制用户在一次运行中只能打开l个文件。 系统应能检查输入命令的正确性,出错要显示出错原因。 对文件必须设置保护措施,如只能执行,允许读、允许写等。在每次打开文件时,根据本次打开的要求,再次设置保护级别,即可有二级保护。 对文件的操作至少应有下述几条命令: creat 建立文件。 delete 删除文件。 open 打开文件。 close 关闭文件。 read 读文件。 write 写文件。 二、简述课程设计内容、主要功能和实现环境 本任务设计一个10个用户的文件系统,每个用户最多可保存10个文件,一次运行中用户可打开5个文件。 程序采用二级文件目录,即设置主文件目录(MFD)和用户文件目录(UFD)。前者应包含文件主(即用户)及他们的目录区指针;后者应给出每个文件主占有的文件目录,即文件名,保护码,文件长度以及他们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 为了便于实现,简化对文件的读写操作,在执行读写命令时,只修改读写指针,并不进行实际文件的读写操作。 环境:vc++6.0 三、任务的分析、设计、实现和讨论 1、任务的分析 因系统小,文件目录的检索使用了简单的线性搜索,而没有采用Hash等有效算法。 文件保护简单实用了三位保护码,对应于允许读、允许写和运行执行,如下所示: 1 1 1 允许写 允许读 允许执行 如对应位为0,则不允许。 程序中使用的主要数据结构如下: 主文件目录和用户文件目录 打开文件目录 程序框图如图所示。 2、任务的设计与实现(分别给出系统总控和本人负责实现的算法流程图与说明) 整个程序运行过程如下: 输入用户名—在MFD中查找—显示UFD文件链表—初始化AFD运行文件表 —输入操作命令—执行操作命令—保存文件目录—打印文件目录—结束 void Create ( ) 创建一个文件 选择CREATE命令后,查看该用户的UFD链表内是否还有空闲结点: 若有则设置该结点的内容,然后打开、修改AFD; 若无则报错并退出。 void Read( ) 读一个文件 读文件的关键是保护码的判断。 选择了READ命令后,输入需要读的文件名,在UFD中搜索是否有该文件名: 若有,但该文件没被打开,则报错; 若有,且已被打开,此处要分两种情况: 如果保护码的读位为“0”,则不能对该文件进行读操作。 否则,就通过文件号来读文件,即通过AFD中的point指针来查找该文件。 (3) Void Nowshow( )显示当前用户目录 3操作过程和结果分析 用户验证创建文件写文件读文件显示当前用户目录关闭与删除 更改用户结束#includeiostream #includestdio.h #include memory.h #include string #include iostream #includecstring #include iomanip using namespace std; string a[10]={a,b,c,d,e,f,g,h,i,j}; string command[9]={CREATE,DELETE,OPEN,CLOSE,READ,WRITE,CHANGE,NOWSHOW,BYE}; struct UFD { string filename; int pro[3]; int codel; UFD *next; }; struct MFD { string username; UFD *file; MFD *next; }; struct AFD { int filenum; char filepro[3]; UFD *point; AFD *next; }; AFD *ope

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档