资源简介
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<
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 基于STM32F407ZG的监控摄像头及FATFS文件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
评论
共有 条评论