资源简介
操作系统 课程设计 C++ 模拟文件系统 源代码,写实验报告必备良品,代码无错,直接运行VC
代码片段和文件信息
#include “stdafx.h“
#include “stdafx.h“
#include “stdio.h“
#include “string.h“
#include “iostream.h“
#include “math.h“
#include “stdlib.h“
#include “iomanip.h“
// ******************目录和文件的结构定义******
typedef struct node{
char name[50]; /*目录或文件的名字*/
int type; /*0代表目录,1代表普通文件*/
struct node *next; /*指向下一个兄弟结点的指针*/
struct node *sub; /*指向第一个子结点的指针*/
struct node *father; /*指向父结点的指针*/
int size; /*如果是文件则表示文件的大小*/
}dirNode;
dirNode *workDir; //定义当前工作目录
dirNode root; //定义根目录
char path[100]; //定义路径信息
//初始化函数
void initial()
{
strcpy(root.name“root“);
root.type=0;
root.next=NULL;
root.sub=NULL;
root.father=NULL;
root.size=0;
workDir=&root;
strcpy(path“root“);
}
//初始化新结点函数
dirNode *init()
{
dirNode *p;
p=new dirNode;
strcpy(root.name““);
root.type=0;
root.next=NULL;
root.sub=NULL;
root.father=NULL;
root.size=0;
return p;
}
//改变目录
void CD(char dirName[])
{
dirNode *p;
int flag=0;
p=workDir->sub;
if(p==NULL)
{
cout<<“错误\““< }
else
{
while(p)
{
if(p->type==0)
{
if(!strcmp(p->namedirName))
{
flag=1;
break;
}
}
p=p->next;
}
if(flag==1)
{
workDir=p;
strcat(path“\\ “);
strcat(pathp->name);
cout<<“工作目录已进入\““< }
else
{
cout<<“错误\““< }
}
}
//创建文件
void CREATE(char fileName[]int fileSize)
{
int flag;
dirNode *p*q;
q=new dirNode;
strcpy(q->namefileName);
q->sub=NULL;
q->type=1;
q->next=NULL;
q->father=workDir;
q->size=fileSize;
p=workDir->sub;
if(p==NULL)
{
workDir->sub=q;
cout<<“\““< }
else
{
flag=0;
while(p)
{
if(p->type==1)
{
if(!strcmp(p->namefileName))
{
flag=1;
cout<<“错误\““< }
}
p=p->next;
}
if(flag==0)
{
p=workDir->sub;
while(p->next)
{
p=p->next;
}
p->next=q;
cout<<“\““< }
}
}
//删除文件
void DEL(char fileName[])
{
dirNode *p*q;
int flag=0;
p=workDir->sub;
if(p==NULL)
{
cout<<“错误\““< }
else
{
while(p)
{
if(p->type==1)
{
if(!strcmp(p->namefileName))
{
flag=1;
break;
}
}
p=p->next;
}
if(flag==1)
{
if(p==workDir->sub)
{
workDir->sub=p->next;
}
else
{
q=workDir->sub;
while(q->next!=p)
{
q=q->next;
}
q->next=p->next;
delete p;
}
cout<<“\““< }
else
{
cout<<“错误\““< }
}
}
//显示所有目录
//显示本目录下所有兄弟目录和文件
void dir(dirNode *p)
{
while(p)
{
if(p->type==0)
{
cout.setf(2);
cout<name<“< }
else
{
cout.setf(2);
cout<name<
相关资源
- 操作系统 课程设计 C++ 读者写着问题
- c++ http
- c++ http并保存到本地
- C++ HTTP GET,POST的简单
- 数据压缩LZW编码c++程序
- 数据压缩 算术编码 c++ 程序
- C/C++/STL帮助手册 chm完整离线版
- ECC算法 C++实现 加解密
- 高斯投影正算C++源代码
- C++课程设计——学生学籍管理系统
- 清华大学C++内部题库 绝对好题
- Windows课程设计报告与源码
- VC++ MFC的餐厅点餐系统
- 用c++解决金刚坐飞机问题
- C++景区旅游信息管理系统
- 文件同步与异步读写
- hiredis的c++封装, 线程安全
- C++实现Apriori算法,频繁模式数据挖掘
- C++获取windows系统服务
- 矩阵算法相关代码
- 点扩散函数PSF
- 潮流计算 高斯赛德尔法
- RPP算法-RobustPlanarPose-C++
- PnP solvers C++版本,包括P3Pf,Epnp等
- 道格拉斯算法C++实现
- c++获取cpu使用率包含系统和单进程
- C++封装的一个跨平台的线程类和锁类
- C++信号量实现互斥爸爸女儿儿子苹果
- grpc c++
- 学生成绩管理系统(MFC)
评论
共有 条评论