课 程 设 计(上 机 实 习)报 告
开始 命令正确? 是 显示help命令可选内容 否 输入1~26或0 是 显示所需help信息 否 报错 返回 设计思想:利用switch(n) case?语句实现选择只查看需了解的操作命令。 具体方法:首先利用cout语句输出改操作系统所拥有的命令.并用数字标明,供用户选择,再利用switch(n) case?语句实现具体内容的介绍。例如: cout<<\case 1:cout<<\文件名>[ <文件属性>]\\n\ <<\——创建新文件,文件属性是r、h或s。\\n\ break; 运行效果如下: - 5 -
三.修改命令行预处理程序 流程图如下: - 6 -
开始 否 命令格式是否正 确 是 否 命令中是否有参 数 是 否 指定路径是否正显示错误 确 信息 是 将获得的全路径名以及指定目录的首块 号保存到当前目录变量中 显示当前目录 返回 设计思想:在命令行预处理函数ParseCommand( )中进行修改,使以下命令行(命令与参数间无空格符)可以正确执行:cd/,cd..,dir/usr,copy/usr/boy mail 具体方法:在ParseCommand( )处理cd/,dir/usr等情况的代码中增加处理“.”的代码。 for (i=0;comd[0][i]!='\\0';i++){ if (comd[0][i]=='/') //处理cd/,dir/usr等情况 break; else if (comd[0][i]=='.' && comd[0][i+1]=='.') break; } - 7 -
四.新增fc命令,实现两个文件的比较 流程图如下: - 8 -
返回 是 将文件内容进行比较并输出结果 文件是否存在 否 显示错误信息 是 调用FindFCB()查找两文件 的首块号 指定路径是否正确 否 调用ProcessPath( )查找两文 件的指定路径 命令格式是否正确 否 开始 是 设计思想:首先利用ProcessPath()函数和FindFCB()函数查找文件的目录所在首块号和文件所在首块号,判断其存在性,并记录其全路径名。如果需要比较的文件都存在的话则进行比较。 具体实现: - 9 -