




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课课 程程 设设 计计 课程名称 计算机操作系统 题目名称 二级文件模拟管理系统 学生学院 计算机学院 专业班级 网络工程 学 号 3112006352 学生姓名 谢坤垣 指导教师 李敏 2015 年 1 月 13 日 1 设计目的 模拟文件系统实现的基本功能 了解文件系统的基本结构和文件的各种管理方法 加深理解 文件系统的内部功能及内部实现 通过用高级语言编写和调试一个简单的文件系统 模拟 文件管理的工作过程 从而对各种文件操作命令的实质内容和执行过程有比较深入的了解 2 设计内容 编程模拟一个简单的文件系统 实现文件系统的管理和控制功能 要求本文件系统采用两 级目录 即设置主文件目录 MFD 和用户文件目录 UED 另外 为打开文件设置运行文件 目录 AFD 设计一个 10 个用户的文件系统 每次用户可保存 10 个文件 一次运行用户可 以打开 5 个文件 并对文件必须设置保护措施 在用户程序中通过使用文件系统提供的 Create open read write close delete 等文件命令 对文件进行操作 3 设计步骤 1 需求分析 设计一个可以有 100 用户的文件系统 每次用户可保存 100 个文件 一次运行用户可以打 开 1 个文件 2 概要设计 文件系统管理中用到的数据结构有 1 首先应确定文件系统的数据结构 主目录 子目录及活动文件等 主目录和子目 录都以结构体数组的形式存放于磁盘 这样便于查找和修改 2 用户创建的文件 以结构体的方式存在 每次创建一个文件 用 malloc 申请一 个 file 结构体节点 用来存储改文件的信息 3 逻辑结构图为 UFDAFD 用户名文件名打开文件名 文件目录指针保护码文件内容 用户名文件长度 文件目录指针文件名 3 详细设计 1 用输入命令来模拟用户程序中调用的文件操作 系统提供的命令如下 a reg 用户名 密码 注册一个新的用户 b login 用户名 密码 默认的只有一个用户 admin 密码也是 admin c dir 列出当前用户目录下的所有文件名 文件长度 文件物理地址 d create filename 创建一个新文件 并未它分配内存 e del filename 删除一个文件 f open filename 打开文件 filename 如果该文件不存在显示错误 已经被打开 就提示已经打开 g close filename 关闭文件 filename 如果该文件没有被打开 则显示错误 h read 在已经打开文件的情况下 读取文件 显示它的文件内容 i write string 与 open filename 配合使用 将字符串 string 写入到打开的文 件中 j help 给出系统支持的命令列表 k logout 退出登录 2 程序的流程图 开始 输入用户名 在 MFD 中找到该用户 报告无效 用户文件 NO YES 显示该用户目录表 UFD 中所有的文件 初始化运行文件表 AFD 输入操作命令 是什么命令 建立文 件处理 程序 删除文 件处理 程序 打开文 件处理 程序 关闭文 件处理 程序 退出文 件处理 程序 写入文 件处理 程序 保存当前文件目录 结束 createdelopen dir closereadwrite 打印当 前目录 4 调试分析 1 开始的一个结构体没有定义清楚 检查了很长时间 2 开始本来想调用 fopen aaa txt r 和 rename char oldname char newname 来创建一个文件 后来发现行不通 就用 结构体来模拟一个文件 5 系统测试 程序运行初始界面 用户注册 用户登录 创建 ab 文件 打开 ab 文件 往 ab 文件写入内容 读取 ab 文件的文件内容 关闭 ab 文件 输出用户目录下存在的文件 删除文件 注销登录 用户未登录输入命令 密码错误 登录用户不存在 使用帮助 5 本程序使用步骤说明 1 用户若没有注册过账号 则需要进行注册 执行 reg 命令 可以注册多个用户 上限为 100 2 若不懂得如何注册 则可以执行 help 命令 使用帮助说明 3 若注册成功 则执 login 命令 进行用户登录 4 登录成功后 首先需要创建文件 即执行 create 命令 可以创建多个文件 上限 为 100 5 创建文件成功后 可以对其进行删除操作 即执行 del 命令或许打开操作 即执 行 open 命令 每次只能打开一个文件 6 若想对刚创建的文件进行读写 则需先打开文件 即执行 open 命令 7 文件打开成后 可以执行 write 命令 对文件进行写操作 也可以执行 read 操作 对文件的内容进行读取 8 当想再打开另一个文件时 需先将当前的文件关闭 即执行 close 命令 关闭后 就可以打开其它文件 9 如果不想对文件系统进行操作时 可以执行 logout 命令 退出当前的登录 3 经验与体会 a 代码的界面开始让人看上去很烦 为了养成一个良好的编程习惯 就必须耐心的 调 试代码的风格和界面风格 要知道程序不是给你一个人看的 界面也不是给自 己看的 得让他人看得明白和透彻 b 程序中有很多小的错误 因此需要进一步的改进 4 程序的重要数据结构和关键代码 数据结构数据结构 struct file char text 11000 文件内容 char filename 110 文件名 struct UFD char filename 100 用户文件目录名 file fp 文件指针 int length 文件目录长度 bool flag 标志此目录是否是空目录 struct node char username 110 用户名 char pwd 110 用户密码 int flag 用户标识 标识该项是否已经被注册 UFD arr 110 包含的用户文件目录数组 MFD 100 int a0 a 记录是第 a0 个用户 记录第 a 个打开的文件 char s 100 s1 100 s2 100 s3 100 password 100 admin 密码初始为 admin 关键函数代码 关键函数代码 void create 创建文件函数 int i 0 for i 0 i 110 i if MFD a0 arr i flag 1 return int tag 0 for i 0 i 110 i if MFD a0 arr i flag 0 判断用户文件目录是否为空 若为空 则创建文件 strcpy MFD a0 arr i filename s2 file fp file malloc sizeof file MFD a0 arr i fp fp MFD a0 arr i length 0 MFD a0 arr i flag 1 将其标识改为不为空 tag 1 break if tag 1 printf n t t 新文件 s 创建成功 n s2 else printf n t t 系统资源不够 创建失败 n void dir 输出用户文件的所有文件 int tag 0 用来标识是否已找到文件 for int i 0 i 100 i if MFD a0 arr i flag 1 判断是否为空 printf t t 文件名 s t n MFD a0 arr i filename printf t t t 长度 d t MFD a0 arr i length printf 物理地址 x n MFD a0 arr i fp tag 1 if 0 tag 目录下没有文件 printf n t t 该目录下还没有文件哦 n void del 删除文件 char temp 100 int tag 0 for int i 0 i 100 i if MFD a0 arr i flag 1 memset MFD a0 arr i filename 0 sizeof MFD a0 arr i filename free MFD a0 arr i fp 释放内存 将目录信息初始化 MFD a0 arr i fp NULL MFD a0 arr i length 0 MFD a0 arr i flag 0 tag 1 break if 1 tag printf n t t 删除文件 s 成功 n temp else printf n t t 删除文件失败 您所删除的文件 s 不存在 n s2 void open 打开文件 if a 1 判断是否已有文件被打开 printf n t t 一次只能打开一个文件或者不能再次用 open 打开已经打开 的文件 n printf n t t 请关闭已经打开的文件后重试 n return 遍历用户文件目录 查找文件 for int i 0 itext void write 写文件 即往文件写内容 if a 1 判断该文件是否已经打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融衍生品财产抵押合同
- 汽车4S店场地租赁及三方联营管理协议
- 高端仓储租赁与智能化物业管理服务协议
- 车辆维修与汽车租赁一体化承包协议
- 高端餐饮企业员工职业发展合同
- 餐馆加盟店开业筹备合同参考
- 展会参展商现场活动策划及执行合同
- 高尔夫球场草坪维护与管理全面合作协议
- 拆除作业安全协议书范本
- 2025年酒店前台工作总结
- 绿色施工管理体系及管理制度(土木)
- 护理与风险防范课件
- 2025年高考安徽卷物理真题(解析版)
- 标准件项目管理制度
- 十五五智慧校园建设发展规划
- 中医眼科学绿风内障课件
- 暑假安全家长会课件
- 2025年中小学生安全知识竞赛试题及答案
- 2024年山西烟草专卖局考试真题试卷及答案
- SOP-15天视频起号流程图
- 出口原产地管理制度
评论
0/150
提交评论