没有合适的资源?快使用搜索试试~ 我知道了~
文件系统模拟设计c++.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 88 浏览量
2021-10-04
22:36:30
上传
评论
收藏 36KB DOC 举报
温馨提示
试读
11页
文件系统模拟设计c++.doc
资源推荐
资源详情
资源评论
.
#include "stdio.h"
#include "iostream.h"
#include "string.h"
#include "iomanip.h"
#dene FILENAME_LENGTH 10 //文件名称长度
#dene COMMAND_LENGTH 10 //命令行长度
#dene PARA_LENGTH 30 //参数长度
//账号结构
typedef struct users
{
char name[8];
char pwd[10];
}users;
//文件结构
struct fnode
{
char lename[FILENAME_LENGTH];
int isdir;
int isopen;
char content[255]; //我是目录/我是文件
fnode *parent;
fnode *child;
fnode *prev;
fnode *next;
};
//账号
users usrarray[8] =
{
"usr1","usr1",
"usr2","usr2",
"usr3","usr3",
"usr4","usr4",
"usr5","usr5",
"usr6","usr6",
"usr7","usr7",
"usr8","usr8",
};
fnode *initle(char lename[],int isdir);
void createroot();
1 / 11
.
int run();
int ndpara(char *topara);
bool chklogin(char *users, char *pwd);
void help();
int mkdir();
int create();
int read();
int write();
int del();
int cd();
int dir();
fnode *root,*recent,*temp,*ttemp;
char
para[PARA_LENGTH],command[COMMAND_LENGTH],temppara[PARA_LENGTH]
,recentpara[PARA_LENGTH];
//创建文件与目录结点
fnode* initle(char lename[],int isdir)
{
fnode *node=new fnode;
strcpy(node->lename,lename);
node->isdir=isdir;
node->isopen=0;
node->parent=NULL;
node->child=NULL;
node->prev=NULL;
node->next=NULL;
return node;
}
//创建文件存储结点
void createroot ()
{
recent=root=initle("/",1);
root->parent=NULL;
root->child=NULL;
root->prev=root->next=NULL;
strcpy(para,"/");
}
int mkdir()
{
temp=initle(" ",1);
cin>>temp->lename;
if(recent->child==NULL)
2 / 11
.
{
temp->parent=recent;
temp->child=NULL;
recent->child=temp;
temp->prev=temp->next=NULL;
}
else
{
ttemp=recent->child;
while(ttemp->next)
{
ttemp=ttemp->next;
if(strcmp(ttemp->lename,temp->lename)==0&&ttemp->isdir==1)
{
printf("对不起,目录已存在!");
return 1;
}
}
ttemp->next=temp;
temp->parent=NULL;
temp->child=NULL;
temp->prev=ttemp;
temp->next=NULL;
}
return 1;
}
int create()
{
temp=initle(" ",0);
cin>>temp->lename;
cin>>temp->content;
if(recent->child==NULL)
{
temp->parent=recent;
temp->child=NULL;
recent->child=temp;
temp->prev=temp->next=NULL;
cout<<"文件建立成功!"<<endl;
}
else
{
ttemp=recent->child;
3 / 11
剩余10页未读,继续阅读
资源评论
huayuya123
- 粉丝: 26
- 资源: 31万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功