• 大小: 312KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: C++  操作系统  广工  

资源简介

编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。文件系统源代码流程图齐全~可用

资源截图

代码片段和文件信息

#include
#include
using namespace std;
//TEXTLOG为0时不输出记录文件,否则输出记录文件RunlogFS1.txt
#define TEXTLOG 1

const int MAXUSERNUM = 10; //最大用户数
const int MAXUSERFILE = 10; //每个用户最大保存文件数
const int MAXOPENFILE = 5; //每个用户最大打开文件数
const int MAXFILENAME = 10; //文件名最大长度
const int MAXUSERNAME = 15; //用户名最大长度

struct UFD //用户文件目录
{
char filename[MAXFILENAME + 1]; //文件名
int sign; //保护码 只用最低3位 由高位到低位分别为:可读 可写 可执行
int size; //文件长度
int maxsize; //文件最大长度
};

enum STAUS {HOLD FREE}; //状态:占用和空闲

struct AFD //运行文件目录
{
char filename[MAXFILENAME + 1]; //文件名
int sign; //保护码
int readpointer; //读指针
int writepointer; //写指针
STAUS state; //AFD状态
};

struct MFD //主文件目录
{
char username[MAXUSERNAME + 1]; //用户名
UFD *ufd; //用户文件目录(当数组用)
int ufdnum; //用户文件数量
AFD *afd; //用户打开文件目录(当数组用)
int afdnum; //用户打开文件数量
};

MFD user[MAXUSERNUM];
int usernum = 0; //用户数目
char username[MAXUSERNAME + 1]; //当前操作用户名
int id; //当前操作用户的下标
char filename[MAXFILENAME + 1]; //当前操作文件名
int pos; //当前操作文件的下标
int afdpos; //当前文件afd下标
int ch;

#if TEXTLOG
FILE *txtlog; //文本文档形式输出日志文件指针
#endif

bool Checkinmfd(); //检查用户名是否存在mfd中
bool Checkinufd(); //检查文件名是否存在ufd中
bool Checkinafd(); //检查文件名是否存在afd中
void Createuser(); //创建用户
void Deleteuser(); //删除用户(忽略保护码作用)
void Oprmenu(); //操作菜单
void Create(); //创建文件
void Delete(); //删除文件
void Open(); //打开文件
void Close(); //关闭文件
void Read(); //读文件
void Write(); //写文件
void Print(); //打印文件状态

int main()
{
bool firsttime = true;
#if TEXTLOG
txtlog = fopen(“RunlogFS1.txt“ “w“);
fprintf(txtlog “##############################################################\n“);
fprintf(txtlog “File management system\n“);
fprintf(txtlog “Programmer: Jobs Peng\n“);
fprintf(txtlog “Date: 1 / 6 / 2012\n“);
fprintf(txtlog “Note: The program has no input-error-debugger.\n“);
fprintf(txtlog “##############################################################\n\n“);
#endif

printf(“##############################################################\n“);
printf(“File management system\n“);
printf(“Programmer: Jobs Peng\n“);
printf(“Date: 1 / 6 / 2012\n“);
printf(“Note: The program has no input-error-debugger.\n“);
printf(“##############################################################\n\n“);

while (true)
{
Print();
while (true)
{
if (!firsttime)
{
while ((ch = getchar()) != ‘\n‘);
}
else
{
firsttime = false;
}

printf(“1.Create user  2.Delete user  3.Operate  4.Exit  You want: “);
ch = getchar();
if (ch >= ‘1‘ && ch <= ‘4‘)
{
break;
}
else
{
printf(“Input Error!

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

     文件      21093  2012-05-23 00:39  实验4\1文件系统.cpp

     文件     278620  2012-05-23 00:40  实验4\1文件系统.exe

     文件      59083  2012-05-23 00:41  实验4\sample RunlogFS1.txt

     文件      50176  2010-11-16 23:24  实验4\流程图1.0.vsd

     文件      51200  2010-11-21 16:08  实验4\流程图1.1.vsd

     文件      44544  2010-11-21 16:09  实验4\流程图1.2.vsd

     文件      56832  2010-11-21 16:10  实验4\流程图1.3.vsd

     文件      51200  2010-11-21 16:07  实验4\流程图2.1.vsd

     文件      56320  2010-11-21 16:18  实验4\流程图2.2.vsd

     文件      59392  2010-11-21 16:29  实验4\流程图2.3.vsd

     文件      54784  2010-11-21 16:32  实验4\流程图2.4.vsd

     文件      59392  2010-11-21 16:36  实验4\流程图2.5.vsd

     文件      59392  2010-11-21 16:38  实验4\流程图2.6.vsd

     目录          0  2012-05-23 22:18  实验4

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

               902028                    14


评论

共有 条评论