资源简介

操作系统 课程设计 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<

评论

共有 条评论