基于多级文件目录的文件管理系统设计.doc
《基于多级文件目录的文件管理系统设计.doc》由会员分享,可在线阅读,更多相关《基于多级文件目录的文件管理系统设计.doc(29页珍藏版)》请在冰豆网上搜索。
山东理工大学计算机学院
课程设计
(操作系统)
班级
姓名
学号
指导教师
二○一一年六月二十四日
课程设计任务书及成绩评定
课题名称
基于多级文件目录的文件管理系统设计
Ⅰ、题目的目的和要求:
(1)实现建立文件、打开文件、复制文件、查询目录;
(2)建立相应的数据结构;
Ⅱ、设计进度及完成情况
日期
内容
6.13-6.15
选取参考书,查阅有关文献资料,完成课程设计说明书内容1部分。
完成课程设计说明书内容2-4部分
6.16~6.20
创建相关数据结构,录入源程序
6.21~6.22
调试程序并记录调试中的问题,完成课程设计说明书第5部分。
6.23
系统测试,演示设计成果,考核成绩。
6.24
整理课程设计说明书,上午11时,由学习委员交课程设计说明书
Ⅲ、主要参考文献及资料
[1]汤子赢等.计算机操作系统(第二版).西安电子科技大学出版社,2006.8
[2]冯耀霖等.操作系统,西安电子科技大学出版社.1992
[3]张尧学等.计算机操作系统教程(第2版).清华大学出版社,2001.4
[4]谭耀铭.操作系统.中国人民大学出版社,2003.4
[5]AbrahamSilberschatz,PeterGalvin&GregGagne,AppliedOperatingSystemConcepts,HigherEducationPress,2002
Ⅳ、成绩评定:
设计成绩:
(教师填写)
指导老师:
(签字)
二○一一年六月二十四日
目录
第一章概述……………………………………………………………1
第二章系统分析………………………………………………………2
第三章系统设计………………………………………………………3
第四章程序设计流程图或N-S图……………………………………4
第五章调试过程中的问题及系统测试情况…………………………21
第六章结束语…………………………………………………………24
第一章概述
1.1本课程设计意义
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《计算机操作系统》一门重要的专业课,是开发操作系统和软件系统的理论和应用基础。
第二章系统分析
1.对文件应设置存取控制保护方式,如“允许读”、“允许写”等。
2.系统的外部特征应接近于真实系统,可设置下述文件操作命令:
建立文件、修改属性、删除文件、读文件、写文件、复制文件、查询目录。
3.通过键盘使用该文件系统,系统应显示操作命令的执行结果。
第三章系统设计
设计方案:
本系统一共建立了Administrator和Guest两个用户,每个用户拥有一个结构体数组为structFliefa[8]和structFliefg[8]每个用户最多可一建立8个文件,每个文件对应一个文件模块;
文件模块:
structFlie
{
inted;//判断是否正存放文件
charf_name[8];//文件名
charf_c[8];//存放文件内容
intatt;//文件属性0为只读1为只写
};
文件模块示意图:
ed
f_name[8]
att
f_c[8]
函数设计和功能分析:
系统调用原型
功能
主要参数说明
voidcheck()
密码认证
admin为函数出口
intinit()
初始化操作界面
返回i执行相应的操作
voidcreatefile()
创建文件
name[]为文件名->fa[].f_name[]
voiddeletefile()
删除文件
voidopenfile()
打开文件
voidexit()
退出系统
voidwritefile()
书写文件
c[]为文件内容->fa[].f_c[]
voidcopyfile()
复制文件
voidmodifyfile()
修改属性
a为文件属性->fa[].att
voidcatalogue()
目录管理
第四章程序设计流程图或N-S图
Main()函数的流程图:
消注?
成功?
开始
用户登陆
N
Y
接收命令
解析命令
实现命令
结束
N
选择用户
退出
N
Y
Y
设计程序:
#include
#include/*不容易归类的标准函数库*/
#include
structFlie
{
inted;//判断是否正存放文件
charf_name[8];//文件名
charf_c[8];//存放文件内容
intatt;//文件属性0为只读1为只写//用于指向文件内容模块
}fa[8],fg[8];
intx;//全局钥匙
voidcheck()//密码认证
{
intcheck,a=1;
charpin1[]="admin";//此处设定用户口令
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");
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.只写):
"