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

代码片段和文件信息
#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
- 上一篇:Labview三次样条拟合轨迹规划
- 下一篇:易语言写彩票软件教程
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- STM32基于rt_thread操作系统的SDHC卡文件
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- 模拟段页式虚拟存储管理中地址转换
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- 操作系统实验——虚存管理实验
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
评论
共有 条评论