操作系统课程设计说明书.docx

上传人:b****5 文档编号:28541763 上传时间:2023-07-18 格式:DOCX 页数:16 大小:60.82KB
下载 相关 举报
操作系统课程设计说明书.docx_第1页
第1页 / 共16页
操作系统课程设计说明书.docx_第2页
第2页 / 共16页
操作系统课程设计说明书.docx_第3页
第3页 / 共16页
操作系统课程设计说明书.docx_第4页
第4页 / 共16页
操作系统课程设计说明书.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

操作系统课程设计说明书.docx

《操作系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计说明书.docx(16页珍藏版)》请在冰豆网上搜索。

操作系统课程设计说明书.docx

操作系统课程设计说明书

中北大学

操作系统课程设计

说明书

 

学院、系:

软件学院

专业:

软件工程

学生姓名:

陈斐润

学号:

0921010703

设计题目:

基于Linux的模拟文件系统的设计与实现

起迄日期:

2011年12月22日-2012年1月7日

指导教师:

康珺

 

 

 

 2012年1月5日

 

1需求分析

1、设计一个10个用户的文件系统。

每个用户最多可以保存10个文件,一次运行用户可打开多个文件。

2、程序采用二级文件目录。

(即设置主目录(MFD)和用户文件目录(UFD))。

另外,可打开文件设置指针。

3、为了方便实现,对文件的读写作了简化。

在执行读写命令时,只需改读写指针。

并不进行实际的读写操作。

4、实现的基本功能主要包括:

改变目录(CD),创建目录(MD),显示目录(DIR),删除目录(RD),打开全部文件(openall),打开单个文件(open),建立一个文件(create),删除一个文件(delete),写文件(write),读文件(read),改文件的保护码(change),退出(exit)等。

2总体设计

1.设计方案及论证结果

设计方案:

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

文件模块:

structFlie

{

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

charf_name[8];//文件名

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

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

};

文件模块示意图:

 

2.函数设计和功能分析:

系统调用原型

功能

主要参数说明

voidcheck()

密码认证

admin为函数出口

intinit()

初始化操作界面

返回i执行相应的操作

voidcreatefile()

创建文件

name[]为文件名->fa[].f_name[]

voiddeletefile()

删除文件

voidopenfile()

打开文件

voidexit()

退出系统

voidwritefile()

书写文件

c[]为文件内容->fa[].f_c[]

voidmodifyfile()

修改属性

a为文件属性->fa[].att

voidcatalogue()

目录管理

 

3.Main()函数的流程图:

 

 

4.系统的原理框图:

 

3详细设计

#include

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

#include

structFlie

{

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

charf_name[8];//文件名

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

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

}fa[8],fg[8];

intx;

voidwritefile()/*书写文件*/

{

inti,j,check,b=1;

charch=0,a=0,name[8],c[8],pin[8];

while(b)

{

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

{

if(fa[i].att==0)

{

printf("书写错误!

只读文件!

\n");

a=1;

getchar();

getchar();

break;

}

printf("请输入文件的内容:

\n");

scanf("%s",c);

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

printf("书写文件成功.\n");

a=1;

b=0;

getchar();

getchar();

break;

}

break;

}

if(a!

=1)

{

printf("文件不存在!

");

getchar();

getchar();

break;

}

break;

}

getchar();

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

{

if(fa[i].att==0)

{

printf("书写错误!

只读文件!

\n");

a=1;

getchar();

break;

}

printf("请输入文件的内容:

\n");

scanf("%s",c);

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

printf("书写文件成功.\n");

a=1;

getchar();

getchar();

break;

}

}

if(a!

=1)

{

printf("文件不存在!

");

break;

}

}

break;

}

}

voidmodifyfile()/*修改属性操作*/

{

intstatus=0,a,i,j,check;

charchoice,name[8],pin[8];

while

(1)

{

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

printf("*修改属性*\n");

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

if(x==1)

{

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

\n");

scanf("%s",name);

getchar();

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("<0.只读--1.只写>\n");

printf("请选择文件属性:

");

while

(1)

{

scanf("%d",&a);

getchar();

if(x==1||x==2)

break;

else

printf("错误!

请重新输入:

\n");

}

fa[i].att=a;

printf("修改属性成功.\n");

status=1;

break;

}

}/*获取文件的状态*/

if(status!

=1)

{

printf("错误!

文件不存在!

");

getchar();

printf("是否重新输入?

(Y-N)\n");

scanf("%c",&choice);

getchar();

if(choice=='N'||choice=='n')

break;

}

getchar();

break;

}

if(x==2)

{

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

\n");

scanf("%s",name);

getchar();

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("<0.只读--1.只写>\n");

printf("请选择文件属性:

");

while

(1)

{

scanf("%d",&a);

getchar();

if(x==1||x==2)

break;

else

printf("错误!

请重新输入:

\n");

}

fg[i].att=a;

printf("修改属性成功.\n");

break;

}

if(i==7)

{

status=1;

break;

}

}/*获取文件的状态*/

if(status=1)

{

printf("错误!

文件不存在!

");

getchar();

printf("是否重新输入?

(Y-N)\n");

scanf("%c",&choice);

getchar();

if(choice=='N'||choice=='n')

break;

}

getchar();

}

}

}

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

{

inti;

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

printf("*文件管理系统*\n");

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

printf("1.创建文件2.删除文件3.打开文件4.书写文件\n");

printf("5.复制文件6.修改属性7.目录管理8.消注\n");

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

printf("请您选择:

");

scanf("%d",&i);

return(i);/*选择相应的序号,执行相应的操作*/

}

voidmain()

{

intflag=1,i;

check();

while(flag)/*初始化系统界面*/

{

if(x==3)

{

exit(0);

}

i=init();

getchar();

switch(i)

{

case1:

/*创建文件*/

{

system("cls");

createfile();

system("cls");

break;

}

case2:

/*删除文件*/

{

system("cls");

deletefile();

system("cls");

break;

}

case3:

/*打开文件*/

{

system("cls");

openfile();

system("cls");

break;

}

case4:

/*写文件*/

{

system("cls");

writefile();

system("cls");

break;

}

case5:

//拷贝文件

{

system("cls");

copyfile();

system("cls");

break;

}

case6:

//修改文件属性

{

system("cls");

modifyfile();

system("cls");

break;

}

case7:

/*文件目录管理*/

{

system("cls");

catalogue();

system("cls");

break;

}

case8:

{

system("cls");

check();

system("cls");

break;/*退出文件管理系统程序*/

}

default:

printf("\n\n错误!

请重新输入:

\n");

getchar();

break;

}

}

4心得体会

通过这次课程设计,我熟悉了Linux操作系统,掌握了Linux的一些基本操作,并加深了对C语言的理解,了解了文件系统的构造。

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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