模拟文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程名称计算机操作系统
题目名称模拟文件系统
专业班级2014级计算机科学与技术
(专升本)班
学生姓名宋欢乐、张焕、范孝礼
学号51402111042、51402111038、51402111043 指导教师邹青青
二○一四年十二月二十日
目录
1、引言 (2)
2、需求分析 (3)
3、概要设计 (4)
3.1 系统的主要功能 (4)
(1) 主界面 (4)
(2) Create 建立文件 (5)
(3)Read 读取文件 (6)
(4)Write 写入文件 (7)
(5)Delete 删除文件 (9)
(6)Mkdir 建立目录 (10)
(7)Cd 切换目录 (11)
(8)Logout 退出登录 (12)
3.2 系统模块功能结构 (12)
(1)结构说明: (12)
3.3 运行环境要求 (13)
3.4 数据结构设计 (13)
3.5 数据结构说明 (14)
(1)文件结构链表 (14)
(2)函数介绍 (14)
4、详细设计 (15)
4.1 模块设计 (15)
4.2 算法流程图 (15)
5、系统源代码 (17)
见附录 (17)
6、系统测试及调试 (18)
6.1 运行结果及分析 (18)
6.2 系统测试结论 (22)
7、总结与体会 (23)
参考文献 (24)
附录系统的主要源代码 (25)
1、引言
计算机操作系统是计算机系统中不可缺少的基本系统软件,计算机操作系统是由硬件和软件两部分构成的。操作系统实际上是一个计算机系统中硬、软件资源的总指挥部。能有效的组织和管理计算机系统中的硬件和软件资源、合理的组织计算机工作流程,控制程序的执行、并向用户提供各种服务功能,使得用户能够合理、方便、有效的使用计算机,是整个计算机系统能高效运行的一组程序模块的集合。操作系统在计算机体系中张非常重要的地位。
在现代计算机管理中,总是把程序和数据以文件的形式存储在磁盘和磁带上,供所有的或指定的用户使用。为此,在操作系统中必须配置文件管理机构。文件管理的主要任务是对任务和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读写管理,以及文件的共享与保护等功能。
从计算机诞生到现在虽然只经历了短短几十年的时间,但无论是在软件还是在硬件方面,计算机都有着飞跃式的发展。随着计算机应用不断增加,计算机上所需要存储的数据和程序也日益增多,早期的文件管理方式已经不能满足现在的需要。计算机操作系统是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。他在计算机系统中占据了特别重要的地位。操作系统的主要功能是进行处理机管理功能,为了进一步了解文件管理功能,我们建立了一个文件模拟系统,要求编写程序,模拟实现文件系统中关于目录及文件的操作。
2、需求分析
该模拟文件系统包括目录文件(简称目录)、普通文件(简称文件),并实现下面一些基本功能:
1.创建目录:mkdir 〈目录名〉,再指定路径下创建指定的目录,或者在没有指定路径时,在当前目录下创建子目录。
2.改变目录:cd 〈目录名〉,工作目录转到指定的目录下。cd .. 返回根目录下
3.创建文件:create 〈文件名〉,创建一个指定名字的新文件,即在目录中增加一项,不考虑文件的内容。
4.写入文件:Write 〈文件名〉,把需要写入的数据,写入文件之中。
5.读取(显示)文件:Read 〈文件名〉,把文件的数据,打印在屏幕上。
6.删除文件:delete 〈文件名〉,删除指定的文件。
6.获得命令帮助 HELP
7.退出文件系统 LOGOUT 要考虑的特殊情况:
1)各个命令对全路径和相对路径的支持
A.目录不存在时,给出错误信息
B.不能用cd 进入文件
C.相对路径的解析
D.路径中的空格剔除
2)删除目录或文件时的问题
A.删除不存在的文件或目录,给出错误提示
B.删除目录时目录不为空; 如果该目录为空,则可删除,否则给出是否做删除,删除操作将该目录下的全部文件和子目录都删除
C.进入到某个目录下,却要删除本目录或者上级目录
3、概要设计
3.1 系统的主要功能
此文件模拟系统主要是模拟有关目录和文件的创建等操作,具体如下:(1)主界面
主界面的设计主要包含整形的main()函数,在函数体中通过调用while循环语句来实现用户只能验证三次用户名和密码限制,以及对其他模块(帮助命令等)的调用。
int main() //主函数main()
{
int i=0;
bool in=false;
char users[8],pwd[12];
cout<<"|-----------------------------------------------------------------|"< cout<<"| 模拟Linux文件系统|"< cout<<"| 账号:usr1-usr8 密码:usr1-usr8 |"< cout<<"| 你只有三次机会来试验账号|"< cout<<"|_________________________________________|"< cout< while(i<3) //限制用户的用户名和密码的验证次数 { cout<<"Login:"; cin>>users; cout<<"Pass:"; cin>>pwd; if(chklogin(users,pwd)) {in=true;break;} i++; } help(); //调用帮助函数,以便用户命令的使用