操作系统文件系统管理实验.docx

上传人:b****2 文档编号:12898965 上传时间:2023-04-22 格式:DOCX 页数:29 大小:230.33KB
下载 相关 举报
操作系统文件系统管理实验.docx_第1页
第1页 / 共29页
操作系统文件系统管理实验.docx_第2页
第2页 / 共29页
操作系统文件系统管理实验.docx_第3页
第3页 / 共29页
操作系统文件系统管理实验.docx_第4页
第4页 / 共29页
操作系统文件系统管理实验.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

操作系统文件系统管理实验.docx

《操作系统文件系统管理实验.docx》由会员分享,可在线阅读,更多相关《操作系统文件系统管理实验.docx(29页珍藏版)》请在冰豆网上搜索。

操作系统文件系统管理实验.docx

操作系统文件系统管理实验

昆明理工大学信息工程与自动化学院学生实验报告

(2010—2011学年第二学期)

课程名称:

操作系统开课实验室:

信自楼4442011年5月28日

年级、专业、班

学号

姓名

成绩

实验项目名称

文件系统管理实验

指导教师

教师评语

 

教师签名:

年月日

一、实验目的

通过编写文件管理系统的算法,设计多用户,以密码进入。

在每个用户下建立文件,根据其结构体的元素有属性,名字,内容。

利用这些元素去模拟文件的创建,删除,打开,修改属性。

达到提高编程能力的目的。

二、实验原理及基本技术路线图(方框原理图)

用C语言或C++语言开发。

在设计该文件管理系统时,设计多用户,以密码进入。

在每个用户下建立文件,根据其结构体的元素有属性,名字,内容。

利用这些元素去模拟文件的创建,删除,打开,修改属性。

系统设计

voidcheck()//密码认证

voidcreatefile()/*创建文件操作*/

voiddeletefile()//删除文件

voidopenfile()//打开文件

voidmodifyfile()/修改文件

voidcopyfile()//复制

voidcatalogue()/*目录管理子程序*/

intinit()/*初始化操作界面函数*/

数据结构说明

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

文件模块:

structFlie

{

inted;//判断是否正存放文件

charf_name[8];//文件名

charf_c[8];//存放文件内容

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

}fa[8],fg[8];

各核心模块设计及实现主函数

通过switch(i),

当case1:

/*创建文件*/case2:

/*删除文件*/

case3:

//打开文件

case4:

//修改文件

case5:

//复制、粘贴文件

case6:

/*文件目录管理*/

三、所用仪器、材料(设备名称、型号、规格等)。

所用仪器:

计算中心201;操作系统:

MicrosoftVisualC++;软件平台:

MicrosoftVisualC++

四、实验方法、步骤

#include

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

#include

#include

#include

structFlie{

inted;//判断是否正存放文件

charf_name[8];//文件名

charf_c[8];//文件内容模块

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

}fa[8],fg[8];

intx,k=0;//全局钥匙

voidcheck()//密码认证

{

intcheck,a=1;

charpin1[]="wangji";//此处设定用户口令

charpin[20];

while(a)

{

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

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

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

printf("请选择用户:

\n");

printf("1.Administrator2.Guest3.退出系统\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;

}

}

}

voidcreatefile()/*创建文件操作*/

{

inthandle=1,a,check,i,j,h;

charname[8],pin[8];

while

(1)

{

printf("不能超过个文件!

\n");

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

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

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

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

");

scanf("%s",name);

if(x==1)

{

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

{

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

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

check=strcmp(pin,name);

if(check!

=0){}

else

{

printf("\n创建错误!

..........................文件已经存在!

\n");

Sleep(1000);

handle=0;

getchar();

}

break;

}

if(k>=8)

{printf("已经超过8个文件!

");

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;

k=k+1;

printf("K=%d\n",k);

break;

}

else

printf("错误!

请重新输入:

\n");

}

printf("请输入文件内容:

");

scanf("%s",fa[h].f_c);

printf("输入内容成功!

\n");

break;

}

}

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);

getchar();

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

{

fg[h].att=a;

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

fg[h].ed=1;

k=k+1;

printf("K=%d\n",k);

break;

}

else

printf("错误!

请重新输入:

\n");

}

printf("请输入文件内容:

");

scanf("%s",fg[h].f_c);

printf("输入内容成功!

");

break;

}

}

break;

}

}

}

voiddeletefile()//删除文件;

{

charname[8],same[8];

inti,check,h;

while

(1)

{

if(x==1)

{

printf("请输入要删的文件名:

");

scanf("%s",name);

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

{

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

same[h]=fa[i].f_name[h];

check=strcmp(same,name);

if(check!

=0)

{printf("文件不存在!

\n");

break;

}

else

{strcpy(fa[i].f_name,"");

strcpy(fa[i].f_c,"");

fa[i].ed=0;

printf("删除成功!

\n");

getchar();

break;

}

}

break;

}

if(x==2)

{

printf("请输入要删的文件名:

");

scanf("%s",name);

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

{

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

same[h]=fg[i].f_name[h];

check=strcmp(same,name);

if(check!

=0)

{printf("文件不存在!

\n");

break;

}

else

{strcpy(fg[i].f_name,"");

strcpy(fg[i].f_c,"");

fg[i].ed=0;

printf("删除成功!

\n");

getchar();

break;

}

}

}

break;

}

}

voidopenfile()//打开文件

{

while

(1)

{inti;

if(x==1)

{

printf("请输入K的值:

");

scanf("%d",&i);

if(i<=k)

printf("文件%s:

%s\n",fa[i].f_name,fa[i].f_c);

else

printf("请重新输入I");

break;

}

if(x==2)

{

printf("请输入i的值:

");

scanf("%d",&i);

if(i<=k)

printf("文件%s:

%s\n",fg[i].f_name,fg[i].f_c);

else

printf("请重新输入I");

break;

}

}

getchar();

}

 

voidmodifyfile()//修改文件;

{

inti,h,j;

charname[8],name1[8];

printf("1.修改文件名称\n2.修改文件属性\n");

scanf("%d",&i);

if(x==1)

{

for(h=0;h

printf("文件名为:

%s\n",fa[h].f_name);

printf("文件属性:

%d\n",fa[h].att);

if(i==1)

{

printf("请输入要修改的文件名称:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fa[h].f_name)==0)

{

printf("请输入新的文件名:

");

scanf("%s",name1);

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

printf("修改成功!

\n");

Sleep(1000);

break;

}

else

printf("没找到相应的文件!

");

}

}

if(i==2)

{

printf("请输入要修改的文件名称:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fa[h].f_name)==0)

{Sleep(1000);

printf("请选择:

1.只读/2.只写\n");

scanf("%d",&j);

if(j==1)

fa[h].att=0;

else

fa[h].att=1;

printf("修改成功!

\n");

Sleep(1000);

break;

}

}

}

}

if(x==2)

{

for(h=0;h

printf("文件名为:

%s\n",fg[h].f_name);

printf("文件属性:

%d\n",fg[h].att);

if(i==1)

{

printf("请输入要修改的文件名称:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fg[h].f_name)==0)

{printf("请输入新的文件名:

");

scanf("%s",name1);

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

printf("修改成功!

\n");

Sleep(1000);

break;

}

else

printf("没找到相应的文件!

\n");

}

}

if(i==2)

{

printf("请输入要修改的文件名称:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fg[h].f_name)==0)

{

printf("请选择:

1.只读/2.只写\n");

scanf("%d",&j);

if(j==1)

fg[h].att=0;

else

fg[h].att=1;

printf("修改成功!

\n");

Sleep(1000);

break;

}

else

printf("没找到相应的文件!

\n");

}

}

}

}

 

voidcopyfile()//复制//粘贴文件;

{

inth,j;

charname[8];

if(x==1)

{

for(h=0;h

{

printf("文件名为:

%s\n",fa[h].f_name);

printf("文件属性:

%d\n",fa[h].att);

printf("文件内容:

%s\n",fa[h].f_c);

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

}

printf("请输入需要复制的文件名:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fa[h].f_name)==0)

printf("复制文件成功!

\n");

if(k<8)

{printf("进行粘贴吗?

请选择:

1.YES2.N0T\n");

scanf("%d",&j);

if(j==1)

{

fa[k].att=fa[h].att;

fa[k].ed=fa[h].ed;

strcpy(fa[k].f_c,fa[h].f_c);

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

printf("粘贴成功:

\n");

k=k+1;

Sleep(1000);

for(h=0;h

{

printf("文件名为:

%s\n",fa[h].f_name);

printf("文件属性:

%d\n",fa[h].att);

printf("文件内容:

%s\n",fa[h].f_c);

printf("文件状态:

%d\n",fa[h].ed);

printf("------------------------------\n");

Sleep(2000);

}

break;

}

}

}

}

if(x==2)

{

for(h=0;h

{

printf("文件名为:

%s\n",fg[h].f_name);

printf("文件属性:

%d\n",fg[h].att);

printf("文件内容:

%s\n",fg[h].f_c);

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

}

printf("请输入需要复制的文件名:

");

scanf("%s",name);

for(h=0;h

{if(strcmp(name,fg[h].f_name)==0)

printf("复制文件成功!

\n");

if(k<8)

{printf("进行粘贴吗?

请选择:

1.YES2.N0T\n");

scanf("%d",&j);

if(j==1)

{

fg[k].att=fg[h].att;

fg[k].ed=fg[h].ed;

strcpy(fg[k].f_c,fg[h].f_c);

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

printf("粘贴成功:

\n");

Sleep(1000);

k=k+1;

for(h=0;h

{

printf("文件名为:

%s\n",fg[h].f_name);

printf("文件属性:

%d\n",fg[h].att);

printf("文件内容:

%s\n",fg[h].f_c);

printf("文件状态:

%d\n",fg[h].ed);

printf("-------------------------------\n");

Sleep(3000);

}

break;

}

}

}

}

}

 

voidcatalogue()/*目录管理子程序*/

{

intx,a=1,h;

while(a)/*目录管理操作*/

{

printf("-----------------------------\n");

printf("*目录管理*\n");

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

printf("1.显示目录2.退出\n");

printf("-----------------------------\n");

printf("请选择:

");

scanf("%d",&x);

while(x<1||x>2)

{

printf("\n错误!

请重新输入:

");

scanf("%d",&x);

}

switch(x)

{

case1:

/*显示目录操作*/

{

system("cls");

printf("\n文件目录为:

\n");

for(h=0;h

{if(x==1)

printf("文件Administrator/%s\n",fa[h].f_name);

printf("...........");

if(x==2)

printf("\nGuest/%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1