• 大小: 1001KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-11
  • 语言: 其他
  • 标签:

资源简介

1 概述 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。 本次实验我们实现了多级目录下的文件管理系统,具备文件系统的文件创建、删除、读写以及目录的创建、删除等操作,并在内存中开辟一块空间,模拟虚拟磁盘,成功地展示出文件系统的功能和属性。 2 课程设计的任务和要求 2.1 设计任务 在下列内容中任选其一: 1、多用户、多级目录结构文件系统的设计与实现; 2、WDM驱动程序开发; 3、存储管理系统的实现,主要包括虚拟存储管理调页、缺页统计等; 4、进程管理系统的实现,包括进程的创建、调度、通信、撤消等功能; 5、自选一个感兴趣的与操作系统有关的问题加以实现,要求难度相当。 2.2 设计要求 1、在深入理解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案; 2、设计系统的数据结构和程序结构,设计每个模块的处理流程。要求设计合理; 3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反映出系统的运行结果; 4、确定测试方案,选择测试用例,对系统进行测试; 5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问; 6、提交课程设计报告。 集体要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。 4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作: (1)具有login (用户登录) (2)系统初始化(建文件卷、提供登录模块) (3)文件的创建: create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout ................................................

资源截图

代码片段和文件信息

//************************disk.cpp********************************
# include “disk.h“
#include
#include
#include
#include
#include
using namespace std;

Cdisk::Cdisk() //管理磁盘的类,构造函数
{
    int i=0;
    char code1[10]=“201208“;
     char name1[10]=“admin“;
     strcpy(codecode1);
     strcpy(namename1);
    for(i=0; i<10000; i++) //初始化所有磁盘块为空闲
        disk_block[i]=‘$‘;
    //this->user[0].set_user(“student““123“);//默认一个用户char
    disk_empty=10000;
    cout.setf(ios::left); //设置输出方式
}
Cdisk::~Cdisk() //析构
{
}

int Cdisk::dele_user(int i) //Cdisk类dele_user的构造
{
    Cuse C;
    C=user[i];
    user[i].dele_user(); //调用Cuse类的成员函数 int dele_user()
    return 1;
}

int Cdisk::dis_disk() //检查磁盘信息
{
    int i=0;
    cout<    for(i=0; i<5; i++)
        if(user[i].get_status()==1) //存在的用户的信息
            cout<    cout<<“已用空间:“<<10000-disk_empty<    return 1;
}
int Cdisk::login(char b) //登陆
{
    char n[10]c[10];
    int i;
    if(b==‘1‘)
    {
       cout<<“请输入用户名:“< cin>>n;
cout<<“请输入密码:“< cin>>c;
if(!strcmp(nname))
            {
                if(!strcmp(ccode))
                {
                    cout<<“管理员登陆成功!“;
                    system(“pause“);
                    return 1;
                }
                else
                {
                    cout<<“密码错误!“<                    system(“pause“);
                    return -1;

                }

            }
            else
            {
                cout<<“没有该用户名!“;
                system(“pause“);
                return -1;
            }

    }
    else
    {
        if(!user[0].get_status()) //当前不存在用户
        {
            i=0;
            cout<<“当前用户为空,欢迎注册!“<            user[i].set_status(1); //为新用户分配权利
            cout<<“请输入用户名:“<            cin>>n;
            cout<<“请输入密码:“<            cin>>c;
            user[i].set_user(nc); //调用Cuse的成员函数,传递用户名与密码

            cout<<“恭喜,创建用户成功!“<            return i;
        }
        else
        {
            cout<<“用户名:“;
            cin>>n;
            cout<<“密码:“;
            cin>>c;
            cout<            for(i=0; i<5; i++) //查找是否存在此用户
            {
                if(user[i].get_status()) //存在方比较
                    if(!strcmp(nuser[i].get_name())) //相等时为0,此判断为匹配
                        if(!strcmp(cuser[i].get_code())) //密码匹配
                        {
                            cout<<“登陆成功!“<                            cout<<“欢迎“<                            return i;
                        }
                        else
                        {
                            cout<<“密码错误“<             

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      22151  2015-07-17 13:45  计算机1208班20124016\FS\disk.cpp

     文件       2178  2015-07-13 17:16  计算机1208班20124016\FS\disk.h

     文件       1116  2015-07-09 17:21  计算机1208班20124016\FS\FS.cbp

     文件       1551  2015-07-22 17:52  计算机1208班20124016\FS\FS.depend

     文件        687  2015-07-24 09:20  计算机1208班20124016\FS\FS.layout

     文件       4237  2015-07-17 13:36  计算机1208班20124016\FS\main.cpp

     文件       3259  2015-07-09 11:02  计算机1208班20124016\FS\menu.cpp

     文件     138240  2015-07-09 23:13  计算机1208班20124016\FS\绘图1.vsd

     文件    1015473  2015-07-17 13:46  计算机1208班20124016\FS\bin\Debug\FS.exe

     文件      10444  2015-07-15 14:23  计算机1208班20124016\FS\doxygen\doxyfile

     文件      59542  2015-07-17 13:46  计算机1208班20124016\FS\obj\Debug\disk.o

     文件      21292  2015-07-17 13:36  计算机1208班20124016\FS\obj\Debug\main.o

     文件    2346370  2015-09-16 09:16  计算机1208班20124016\20124016.doc

     目录          0  2015-07-24 09:19  计算机1208班20124016\FS\bin\Debug

     目录          0  2015-07-24 09:19  计算机1208班20124016\FS\obj\Debug

     目录          0  2015-07-24 09:19  计算机1208班20124016\FS\bin

     目录          0  2015-07-24 09:19  计算机1208班20124016\FS\doxygen

     目录          0  2015-07-24 09:19  计算机1208班20124016\FS\obj

     目录          0  2015-07-24 09:20  计算机1208班20124016\FS

     目录          0  2015-07-24 09:21  计算机1208班20124016

----------- ---------  ---------- -----  ----

              3626540                    20


评论

共有 条评论

相关资源