课程设计—文件管理系统设计

  • 格式:doc
  • 大小:174.00 KB
  • 文档页数:19

下载文档原格式

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

**大学

计算机科学与技术学院课程设计报告

(2006 ~2007 学年度第2 学期)课程名称操作系统课程设计项目名称文件管理系统设计姓名学号

专业班级

地点教师

1.题目内容:

文件管理系统设计:

设计和调试一个简单的文件系统,通过模拟文件操作命令的执行,来模拟文件管理,对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法. 2.设计任务及主要技术:

设计任务:

1.设计一个支持n个用户的文件系统,每个用户可拥有多个文件.

2.采用二级或二级以上的多级文件目录管理.

主要技术:

1.对文件应设置存取控制保护方式,如“允许读”、“允许写”等.

2.系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、修改

属性、删除文件、读文件、写文件、复制文件、查询目录.

3.通过键盘使用该文件系统,系统应显示操作命令的执行结果.

3.设计方案及论证结果

设计方案:

本系统一共建立了Administrator 和Guest两个用户,每个用户拥有一个结构体数组为struct Flie fa[8]和struct Flie fg[8]每个用户最多可一建立8个文件,每个文件对应一个文件模块;

文件模块:

struct Flie

{

int ed; //判断是否正存放文件

char f_name[8]; //文件名

char f_c[8]; //存放文件内容

int att ; // 文件属性0为只读1为只写

};

文件模块示意图:

函数设计和功能分析:

Main()函数的流程图:

4.系统的原理框图:

5.设计程序:

#include

#include /*不容易归类的标准函数库*/

#include

struct Flie

{

int ed; //判断是否正存放文件

char f_name[8]; //文件名

char f_c[8]; //存放文件内容

int att ; // 文件属性 0为只读 1为只写 //用于指向文件内容模块

}fa[8],fg[8];

int x; //全局钥匙

void check() //密码认证

{

int check,a=1;

char pin1[]="admin"; //此处设定用户口令

char pin[20];

while(a)

{

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");

printf(" * 文件管理系统用户登录*\n");

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");

printf("请选择用户:\n");

printf(" 1.Administrator 2.Guest 3.退出系统\n");

scanf("%d",&x);

getchar();

if(x==3)

{

system("cls");

break;

}

printf("密码:");

scanf ("%s",pin);

check=strcmp(pin,pin1);

if (check!=0)

{

system("cls");

printf("\n密码错误! 请重新输入:\n");

}

else

{

system("cls");

a=0;

}

}

}

void createfile() /*创建文件操作*/

{

int handle=1,a,check,i,j,h;

char name[8],pin[8];

while(1)

{

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");

printf(" * 创建文件*\n");

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");

printf("请输入所要创建的文件名称:\n");

scanf("%s",name);

if(x==1)

{

for( i=0;i<8;i++)

{

for(j=0;j<8;j++)

pin[j]=fa[i].f_name[j];

check=strcmp(pin,name);

if (check!=0){}

else

{

printf("\n创建错误!文件已经存在!");

handle=0;

getchar();

break;

}

}

if(handle==1)

{

for(h=0;h<8;h++)

if(fa[h].ed==0)

{

strcpy(fa[h].f_name,name);

while(1)

{

printf("\n请选择文件属性(0.只读- 1.只写):");

scanf("%d",&a);

getchar();

if(a==0||a==1)

{

fa[h].att=a;

printf("\n创建文件成功.\n");

fa[h].ed=1;

break;

}

else

printf("错误! 请重新输入:\n");

}

break;

}

}

getchar();

break;

}

if(x==2)

{

for( i=0;i<8;i++)

{

for(j=0;j<8;j++)

pin[j]=fg[i].f_name[j];

check=strcmp(pin,name);

if (check!=0){}

else

{

printf("\n创建错误!文件已经存在!");

handle=0;

break;

}

}

if(handle==1)

{

for(h=0;h<8;h++)

if(fa[h].ed==0)

{

strcpy(fg[h].f_name,name);

while(1)

{

printf("\n请选择文件属性(0.只读- 1.只写):");

scanf("%d",&a);

g etchar();

if(a==0||a==1)