操作系统课程设计-模拟文件系统

  • 格式:doc
  • 大小:168.00 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

~

目录

第1章需求分析 (1)

第2章概要设计 (1)

系统的主要功能 (1)

系统模块功能结构 (1)

运行环境要求 (2)

数据结构设计 (2)

第3章详细设计 (3)

模块设计 (3)

算法流程图 (3)

第4章系统源代

码 (4)

第5章系统测试及调试 (4)

运行结果及分析 (4)

系统测试结论 (5)

第6章总结与体会 (6)

第7章参考文献 (6)

附录 (7)

第1章需求分析

通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实

现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。

模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。^

第2章概要设计

系统的主要功能

1) 系统运行时根据输入的用户数目创建主目录

2) 能够实现下列命令:

Login 用户登录

\

Create 建立文件

Read 读取文件

Write 写入文件

Delete 删除文件

Mkdir 建立目录

Cd 切换目录

Logout 退出登录

!

系统模块功能结构

运行环境要求

操作系统windows xp ,开发工具vc++

数据结构设计

用户结构:账号与密码结构

typedef struct users

!

{

char name[8];

char pwd[10];

}users;

本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。

users usrarray[8] =

{

"usr1","usr1",

>

"usr2","usr2",

"usr3","usr3",

"usr4","usr4",

"usr5","usr5",

"usr6","usr6",

"usr7","usr7",

"usr8","usr8",

};

'

(3)数据结构说明

a)文件结构链表

struct fnode

{

char filename[FILENAME_LENGTH];

int isdir;

int isopen;

char content[255];

·

fnode *parent;

fnode *child;

fnode *prev;

fnode *next;

};

b)函数介绍

fnode *initfile(char filename[],int

isdir);

模拟二级文件系统

&

{

退

del"<

if(temp->child==NULL)

{

cout<<"Total: "<<" directors" <

return 1;

}

temp=temp->child;

while(temp)

~

{

if(temp->isdir)

{cout<<"

\ "<filename<

else

{cout<<" "<filename<

temp=temp->next;

}

cout<<"Total: "<<" directors" <

,

}

int read()

{

char filename[FILENAME_LENGTH];

cin>>filename;

if(recent->child==NULL)

{

cout<<"文件不存在!"<

return 1;

}

if(strcmp(recent->child->filename,filename)==0) {

cout<child->content<

return 1;

}

^

else

{

temp=recent->child;

while(temp->next)

{

if(strcmp(temp->next->filename,filename)==0)

{cout<next->content<

return 1;}

}

cout<<"文件不存在!"<

}

}

int write()

{

char filename[FILENAME_LENGTH];

cin>>filename;

if(recent->child==NULL)

{

cout<<"文件不存在!"<

return 1;

}

if(strcmp(recent->child->filename,filename)==0) {

*