教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

模拟磁盘文件管理系统

来源:网络收集 时间:2025-12-20
导读: 操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。 模拟磁盘文件管理系统 一、任务描述 模拟实现一个文件管理系统 开发语言:C++、C语言、java 开发工具:自选 要求 1、可以实现一下命令(以下命令至少实现5条): ●login 用户登录 ●dir 列文件目录

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

模拟磁盘文件管理系统

一、任务描述

模拟实现一个文件管理系统

开发语言:C++、C语言、java

开发工具:自选

要求

1、可以实现一下命令(以下命令至少实现5条):

●login 用户登录

●dir 列文件目录

●create 创建文件

●delete 删除文件

●open 打开文件

●close 关闭文件

●cd 改变目录

●mkdir 创建目录

●rddir 删除目录

●halt 退出系统

2、列目录要求列出文件名、物理地址、文件大小、读写标识

二、任务完成情况

⑴自定义磁盘文件管理的数据结构;

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

⑵能够自由创建、修改、删除文件;

⑶文件具有一定自定义的属性;

⑷能够显示当前系统文件的状态;

(5)能够完成任务后退出系统。

三、系统流程图与函数调用关系

1、类和主要函数

程序中定义了两个类:

(1)class file //文件类

主要功能是对文件属性的定义,文件在虚拟磁盘地址块的定位。

(2)class fdatabase //文件操作类

主要功能是对创建、删除、修改等方法的具体实现。

程序中的主要函数及说明:

char *getname( ) //获取文件名

int gettag( ) //获取删除标记

int getlength() //获取文件大小

int getblocknum() // 磁盘块数

int getblocksum1() //磁盘块号的始点

int getblocksum2() //磁盘块号的终点

void setname(char na[ ] )//设置文件名

void delwenjian()

{ tag=1; } //设置删除标记 1:已删 0:未删

void creatfile(char *na,int L,int num,int s1,int s2) //创建文件

void deltefile(char *na) {tag=1; strcpy(name,na);} //删除文件

void disp( ) //输出文件信息

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

int search(char *fname) //按文件名查找

int creatfile(char *na,int L,int num,int s1,int s2)

//创建文件时先查找是否存在

int deltefile(char *na) //删除文件时先查找是否存在

2、函数流程图

(1)整体流程图

(2)创建文件流程图

3、删除文件流程图

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

4、输出文件流程图

四、系统使用说明与界面设计

(1)、课程设计的模板说明

1、初始化,建立文件系统

输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位

输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

2、循环选择执行以下功能

1、存储文件

输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数

为其分配足够多的磁盘块,并记录下来

输出所占用的磁盘块号

2、删除文件

输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,

否则收回该文件所占用的磁盘块

删除该文件名

3、显示位示图情况

显示位示图的情况

显示剩余磁盘块的数目

4、显示文件列表

显示文件名,文件大小,占用的磁盘块数目和磁盘块号这样,初始化,建立文件系统完成。运行结果:

(3)程序再输出位示图的剩余盘块数,行数,以及行号、列号与磁盘块号的转换公式(行列皆从0开始编号);

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

2、选择执行:存储文件,删除文件,显示位示图情况,显示文件列表

显示文件系统管理列表,并提示输入信息1——4。用户输入文件操作命令1(存储文件),2 (删除文件)、3(显示位示图情况)、4(显示文件列表);

格式如下:键入1,创建文件名为fname,大小为L(MB)的文件;

键入2,删除文件名为fname的文件;

键入3,显示位示图情况;

键入4,显示所有文件信息。

运行结果:

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

(2)、存储文件

建立文件名为jike大小为200(MB)的文件:

再建立文件名为wo大小为20(MB)的文件后显示文件列表:

显示位示图情况:

(3)、删除文件

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块,删除该文件名

文件名不存在时:

成功删除jike文件:

显示删除后剩余磁盘块的数目:

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

(4)、退出系统

五、结论与体会

在本次课程设计刚刚开始时,不知道怎么设计。后来认真阅读课本有关的知识,知道怎样设计才方便文件操作。知道怎样设计后,写程序时也遇到很多的障碍,特别是出错处理。此时深感自己编程能力的不足,经过多次修改,终于设计好了该设计。自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对操作系统应用有了更深入的认识与掌握。

通过该课程设计,使我们更了解了课本知识,巩固了课本知识,同时也使我们的编程能力有了一定的提高,我认实到学好计算机要重视实践操作,不仅仅是学习c++语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

六、附录

出现源代码

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

#include<iostream.h>

#include <math.h>

#include<iomanip.h>

#include<string.h>

#include<fstream.h>

#include <stdio.h>

#include <stdlib.h>

int i=0,j=0,sum=0,tt=0,r,ii,k,g,m;

int a[100][32];

class file//文件类

{private:

int no; //文件编号

char name[10]; //文件名

public:

int tag; //删除标记 1:已删 0:未删

file( ){ }

char *getname( ){return name;} //获取姓名

int gettag( ){return tag;} //获取删除标记

int getno() {return no;} //获取文件编号

int getlength() {return length;} //获取文件大小int getblocknum() {return blocknum;} // 磁盘块数

int getblocksum1()//磁盘块号的始点

{ return blocksum1; }

int getblocksum2()//磁盘块号的终点

{ return blocksum2;}

int length; //文件大小

int blocknum;//盘块数

操作系统课程设计,模拟磁盘文件管理系统,后含完整代码。

int blocksum1;//所占盘块 …… 此处隐藏:4854字,全部文档内容请下载后查看。喜欢就下载吧 ……

模拟磁盘文件管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/2326197.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)