文件系统设计Word文档下载推荐.doc
- 文档编号:858825
- 上传时间:2023-04-29
- 格式:DOC
- 页数:18
- 大小:401KB
文件系统设计Word文档下载推荐.doc
《文件系统设计Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《文件系统设计Word文档下载推荐.doc(18页珍藏版)》请在冰点文库上搜索。
windows全系列平台VisualC++6.0linux环境下用g++编译C++
开发语言:
c++
(4)数据结构设计
(1)用户结构:
账号与密码结构
typedefstructusers
{
char
name[8];
pwd[10];
}users;
本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。
usersusrarray[8]=
"
usr1"
"
usr2"
usr3"
usr4"
usr5"
usr6"
usr7"
usr8"
};
(2)数据结构说明
a)文件结构链表
structfnode
charfilename[FILENAME_LENGTH];
int
isdir;
intisopen;
charcontent[255];
fnode*parent;
fnode*child;
fnode*prev;
fnode*next;
b)函数介绍
fnode*initfile(charfilename[],intisdir);
//初始化文件或目录
voidcreateroot();
//建立系统根目录
intrun();
系统运行
intfindpara(char*topara);
对参数进行处理
boolchklogin(char*users,char*pwd);
检查账号与口令
voidhelp();
命令列表
intmkdir();
建立目录
intcreate();
建立文件
intread();
读取文件
intwrite();
写入文件
intdel();
删除文件
intcd();
切换目录
intdir();
文件与目录列表
(3)各模块流程图
系统的详细设计
确定程序设计的各个模块的算法及内部的数据组织,包括主要代码并描述各种算法
系统的主要源代码
#include"
stdio.h"
iostream.h"
string.h"
iomanip.h"
#defineFILENAME_LENGTH10//文件名称长度
#defineCOMMAND_LENGTH10//命令行长度
#definePARA_LENGTH30//参数长度
//账号结构
typedefstructusers
charname[8];
charpwd[10];
//文件结构
charfilename[FILENAME_LENGTH];
intisdir;
intisopen;
charcontent[255];
fnode*parent;
fnode*child;
fnode*prev;
fnode*next;
//账号
"
fnode*initfile(charfilename[],intisdir);
voidcreateroot();
intrun();
intfindpara(char*topara);
boolchklogin(char*users,char*pwd);
voidhelp();
intmkdir();
intcreate();
intread();
intwrite();
intdel();
intcd();
intdir();
fnode*root,*recent,*temp,*ttemp;
charpara[PARA_LENGTH],command[COMMAND_LENGTH],temppara[PARA_LENGTH],recentpara[PARA_LENGTH];
//创建文件与目录结点
fnode*initfile(charfilename[],intisdir)
fnode*node=newfnode;
strcpy(node->
filename,filename);
node->
isdir=isdir;
node->
isopen=0;
parent=NULL;
child=NULL;
prev=NULL;
next=NULL;
returnnode;
}
//创建文件存储结点
voidcreateroot()
recent=root=initfile("
/"
1);
root->
prev=root->
strcpy(para,"
);
}
intmkdir()
{
temp=initfile("
cin>
>
temp->
filename;
if(recent->
child==NULL)
{
temp->
parent=recent;
temp->
recent->
child=temp;
prev=temp->
else
ttemp=recent->
child;
while(ttemp->
next)
{
ttemp=ttemp->
next;
if(strcmp(ttemp->
filename,temp->
filename)==0&
&
ttemp->
isdir==1)
{
printf("
对不起,目录已存在!
return1;
}
}
ttemp->
next=temp;
temp->
prev=ttemp;
return1;
intcreate()
0);
content;
cout<
<
文件建立成功!
endl;
isdir==0)
对不起,文件已存在!
cout<
}
intdir()
inti=0,j=0;
temp=newfnode;
temp=recent;
if(temp!
=root)
{cout<
<
DIR>
"
.."
i++;
if(temp->
child==NULL)
cout<
Total:
directors"
<
i<
files"
j<
return1;
temp=temp->
while(temp)
if(temp->
isdir)
{cout<
"
filename<
else
FILE>
"
j++;
temp=temp->
cout<
intread()
charfilename[FILENAME_LENGTH];
cin>
if(recent->
文件不存在!
return1;
if(strcmp(recent->
child->
filename,filename)==0)
recent->
content<
return1;
temp=recent->
while(temp->
if(strcmp(temp->
next->
{cout<
intwrite()
recent->
isopen=1;
//设置文件标记为打开
cin>
//设置文件标记为关闭
文件写入成功!
cin>
intcd()
{chartopara[PARA_LENGTH];
topara;
if(strcmp(topara,"
)==0)
inti;
while(recent->
prev)
recent=recent->
prev;
parent)
parent;
i=strlen(para);
while(para[i]!
='
/'
&
i>
0)i--;
if(i!
=0)
para[i]='
\0'
;
else
para[i+1]='
else
findpara(topara);
intfindpara(char*topara)
inti=0;
intsign=1;
recent=root;
strcpy(para,"
temp=recent;
strcpy(temppara,para);
if(topara[0]=='
)
recent=root->
i++;
if(recent!
=NULL&
recent!
strcat(para,"
if(recent&
recent->
child)
{
recent=recent->
else
printf("
路径错误!
\n"
while(i<
=strlen(topara)&
recent)
intj=0;
if(topara[i]=='
if(recent->
recent=recent->
else
{printf("
路径错误\n"
return0;
strcat(para,"
while(topara[i]!
i<
=strlen(topara))
recentpara[j]=topara[i];
i++;
recentpara[j]='
while((strcmp(recent->
filename,recentpara)!
=0||(recent->
isdir!
=1))&
next!
=NULL)
recent=recent->
filename,recentpara)==0)
{strcpy(para,temppara);
recent=temp;
printf("
是文件不是目录。
return0;
strcat(para,recent->
filename);
=0||recent==NULL)
strcpy(para,temppara);
recent=temp;
printf("
输入路径错误\n"
return0;
intdel()
charfilename[FILENAME_LENGTH];
cin>
temp=newfnode;
if(recent->
temp=recent->
while(temp->
next&
(strcmp(temp->
filename,filename)!
=0||temp->
=0))
temp=temp->
if(strcmp(temp->
不存在该文件!
else
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件系统 设计