操作系统实训C++文件管理系统Word格式文档下载.docx
- 文档编号:13593156
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:23
- 大小:265.50KB
操作系统实训C++文件管理系统Word格式文档下载.docx
《操作系统实训C++文件管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统实训C++文件管理系统Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
RAM
WindowsXPProfessional至少为160MB
硬盘
对于VisualC#.NET、VisualBasic.NET,需要600MB硬盘空间,安装驱动器上需要1.5GB磁盘空间
视频
800*600像素,256色(建议:
增强色16位)
鼠标
Microsoft鼠标或兼容的指针设备
3.1.2开发界面截图
3.2详细设计
3.2.1算法说明
用户登录时要输入用户名和密码,如果正确则进入初始界面,默认只有十个用户。
用户登录成功后,可以使用的命令列表如下(命令不区分大小写):
Create:
创建一个新的文件;
如果文件名空,则提示出错;
Open:
打开一个已经存在的文件;
如果该文件不存在,则提示出错;
Read:
读取目标文件中的内容;
如果目标文件不存在,则提示出错;
Write:
向目标文件写入内容;
Delete:
删除目标文件;
Mkdir:
创建一个新的文件夹;
如果目录名空,则提示出错;
Cd:
改变当前路径,转到目标目录下;
入股目标目录不存在,则提示出错;
Dir:
列出当前目录下文件;
Copy:
把文件或目录由源地址拷贝到目标地址;
Logout:
推出文件管理系统;
文件目录的检索使用了简单的线性搜索,文件保护简单使用了三位保护码:
允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。
体现在工程开发中,我们建立了头文件:
myHead.h,用以存放程序中用到的结构体定义和全局变量定义;
代码主文件:
myFileSys.cpp,存放程序主要代码。
程序中使用的主要设计结构如下:
1.一个文件索引结构
typedefstruct
{
unsignedIndex;
//文件元素索引编号
charFileName[MAXFILENAMELEN];
//文件元素名
charParentName[MAXFILENAMELEN];
//父节点名
unsignedFileBlockId;
//文件元素所在物理块编号
unsignedFileLevel;
//文件元素所在层次,层+文件元素名为一个文件元素的逻辑位置
unsignedeffect;
//是否有效,-无效,-有效
}FileIndexElement;
2、文件状态结构
typedefenum
closed,//已被关闭
opened,//已被打开
reading,//正在被读取
writing//正在被写入
}FileStatus;
3、文件系统中的元素结构,包括文件和文件夹
typedefstructfse
structfse*parent;
//指向自己的父亲节点
unsignedFileElemLen;
//文件元素的长度
FETypeType;
//文件元素类型
FEAccessAccess;
//文件元素可供操作的权限
UserCreator;
//文件创建者
charCreateTime[18];
//创建时间,日期格式:
MM/DD/YYHH:
MI:
SS
charLastModTime[18];
//最后一次修改时间
char*FileData;
//一个文件的数据开始地址,文件夹时该值为NULL
FileStatusfileStu;
//如果是一个文件表示文件当前的状态
}FSElement;
3.2.2系统流程图
3.3运行与测试
3.3.1运行测试
运行Debug目录下的myFileSys.exe可执行文件,运行成功,显示欢迎界面并帮助信息,如下图:
系统默认了十个普通用户:
user1,user2,user3,user4,user5,user6,user7,user8,user9,user10。
所有用户密码与其用户名相同。
输入正确的用户名和密码,单击回车键就可以进入文件模拟系统,以用户user1为例,下面显示user1登录成功,如下图:
用create命令创建test文件夹,用cd命令进入test文件夹,如下图:
用create命令创建三个文件:
1.txt,2.txt,3.txt。
用dir命令列出当前目录下文件和文件夹如下:
用open命令打开1.txt文件,用write命令写入信息,用close命令关闭1.txt文件。
用logout命令退出系统,界面如下:
运行测试表明,正常输入各项操作指令后,程序均正常运行并显示出预期结果,程序运行成功。
3.3.2异常处理测试
键入错误的用户名或者错误的密码后,登陆失败并提示重新输入,如下图:
用cd命令进入一个不存在文件夹发生错误,界面如下:
删除一个不存在的文件而发生错误,界面如下:
文件没有打开的情况下,使用read命令读取或者使用write命令写入导致错误,界面如下:
在上面的异常测试中,输入非法的指令后,系统能辨别并能给出相应的出错提示信息,表明系统具有一定的健壮性。
3.4使用说明
1、双击debug文件夹中的myFileSys.exe可执行程序,启动模拟界面。
2、输入用户名和密码,单击回车键,如果通过验证,则进入系统。
3、输入createbooks命令,可以建立一个名为books的文件夹。
输入create1.txt命令可以创建一个名为1.txt的文本文件(文件名和文件夹名字随意)。
4、创建的文件夹和文件可以通过dir命令在当前目录下面显示出来。
5、输入open1.txt命令,可以打开1.txt文本文件,只有打开的文件才能写入数据。
6、输入write1.txt命令。
可以在1.txt文件中写入数据,例如写入:
mynameis
Zheng!
按ctrl+D可以保存输入的信息。
7、输入read1.txt命令,可以查看该文件中的信息。
8、输入close1.txt命令,则可以关闭该文件
9、输入cdbooks命令,可以进入books文件夹。
10、输入logout,则注销当前用户了。
4设计总结
本文件系统中,用户可以用到的指令包括:
"
create"
"
open"
read"
write"
close"
delete"
cd"
dir"
logout"
copy"
等十一个文件操作指令,实现了基本的文件管理的相关功能。
通过这次课程设计。
对VisualStudio2005和.NETFramework有了进一步的了解,熟悉了相关软件和技术的使用。
在设计要求中,只要完成10个用户模拟,并对文件结构作了简化,我们对此作了扩充,除了默认用户10个和1个特权用户,每个用户创建文件数目没有限制,文件的模拟也是从底层的块开始。
我做的这个文件管理模拟系统还存在一些不足:
控制台形式的界面,对用户来说不够友好,应当继续开发出窗体界面。
程序代码还有锤炼的空间,可以进一步进行研究,增加代码的执行效率,提升程序的功能。
通过本课程设计的课题研究、资料查询、代码编写、调试运行、测试总结等过程的进行,使自己对计算机操作系统的文件系统的管理方式有了进一步的理解,加深了对文件系统的工作原理的认识,使理论知识更加巩固。
5附录
全局变量声明:
constunsignedFILESYSCAP=1024*1024;
//模拟文件系统的容量设为M
constunsignedBITMAPLEN=64;
//位示图的长度
constunsignedFILEBLOCKCAP=512;
//一个文件块的大小
constunsignedFILEBLOCKCOU=512;
//文件系统中文件块的数量
constunsignedMAXFILENAMELEN=11;
//最长文件名的长度
constunsignedMAXPASSWORDLEN=11;
//用户密码的最大长度
constunsignedUSERTESTLOGINCOU=5;
//用户登录尝试次数
constunsignedCOMMANDMAXLEN=200;
//命令行最大长度
constunsignedPROSETCOMMCOU=11;
//预设命令数
constchar*PROSETCOMM[]={"
mkdir"
};
创建文件函数:
FSElement*CreateFileElement()实现:
voidCreate(char*filename)
if(strcmp(filename,"
)==0)
{
printf("
对不起,文件名不能为空。
\n"
);
}
else
CreateFileElement(protect,filename,file,NULL,CS.CurrParent);
printf("
%s%s\n$"
CS.CurrentUser.UserName,CS.CurrentPath);
初始化文件系统函数:
InitFileSys()实现:
//初始化模拟的文件系统
if((FS.FSStart=(char*)malloc(FILESYSCAP))==NULL)
returnfalse;
FS.FileSystemCap=FI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 C+ 文件 管理 系统