• 大小: 12KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: C/C++
  • 标签: C++  文件系统  

资源简介

1)用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 (2)要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
//下述频繁判断,提高代码复用,减少代码量,定义为宏
#define ifso  if(command == “yes“)
#define  ifContainUser   if(mfd.ufd_count == 0)\
                          {                    \
                            cout<<“请至少创建一个用户“<                            return;\
                          }
#define  ifContainMFD    if(mfd.ufd_count == 0)\
                          { return;}
using namespace std;
string command; //频繁命令输入,不妨声明为全局变量
int system_MFD_count = 0;//全局变量,是否含有主目录
vector v_user_name; //将用户的名字装入容器

class File{
public:
      string file_name;
      string user_name;
      string content;
      bool state; //文件为打开状态还是关闭状态
public:
      File(){
      file_name = ““;
      user_name = ““;
      content = ““;
      state = false;
      }
      void setFile(string fstring u){
      file_name = f;
      user_name = u;
      }
      void setContent(string c){
       content = c;
      }
      void showInfo(){
        cout<<“文件名\t文件所有者\t文件状态“;
        cout<        if(state = false)
        cout<<“关闭“<        else
        cout<<“打开“<      }
      void showContent(){
        cout<      }
};

class AFD{   //运行文件目录
public:
      int runing_file_number;
      vector v_file; //为了增删方便,用容器储存
public:
      AFD(){
        runing_file_number = 0;
      }
      bool addFile(File f){   //文件打开时加进运行文件容器
        if(runing_file_number == 5)
        {
            cout<<“已达到最大运行数量“<            return false;
        }
        v_file.push_back(f);
        runing_file_number++;
        return true;
      }
      void deleteFile(File& f){ //关闭文件时从运行文件容器删除
        vector::iterator it = v_file.begin();
        while(it != v_file.end())
        {
            if(it->file_name == f.file_name)
            {
                v_file.erase(it);
                cout<<“文件关闭成功!“<                f.state = false;  //引用传递,将文件置为关闭状态
                runing_file_number--;
                return;
            }
            it++;
        }
      }
      void showRunFile(){
        cout<<“运行文件:“<        vector::iterator it = v_file.begin();
        while(it != v_file.end())
        {
            cout<file_name<            it++;
        }
      }
};
AFD afd;
class UFD{
public:
      string user_name;
      File file[10];
      int file_count;
      string password;
public:
      void setUFD(string ustring p){
      user_name = u;
      password = p;
      }
      void setFile(File f[]){
      for(int i = 0;i < file_count;i++)
      {
          file[i] = f[i];
      }
      }
      void showInfo()
      {
          cout<<“用户名\t文件列表“<          cout<          for(int i = 0;i < file_count;i++)
          cout<          cout<    

评论

共有 条评论