计算机与信息学院
操作系统课程设计报告
专 业 班 级
计算机科学与技术08-5班
学生及学号
邹纯纯20082681
课程教学班号
任 课 教 师
晓平、琳、 田卫东
实验指导教师
琳
实 验 地 点
逸夫楼507
2010~201 1学年第 二 学期
目录
第一章课程设计任务、要求、 目的. . . . . . . . . . . .3第二章原理及算法描述. . . . . . . . . . . . . . . . . . . . . .3
第三章开发环境. . . . . . . . . . . . . . . . . . . . . . . . . . . .4
第四章重要算法和设计思路描述. . . . . . . . . . . . . .4
第五章程序实现---数据结构. . . . . . . . . . . . . . . . .7
第六章程序实现---程序清单. . . . . . . . . . . . . . . . .8
第七章总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
第八章参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . .24
第一章课程设计任务、要求、 目的
1 .1课程设计任务
本次课程设计的任务是在windows环境下实现兼容Unix/Linux操作系统的命令接口并实现一些指定的命令功能。
1 .2课程设计要求和目的
1 、为Windows操作系统建立一个兼容Unix命令的命令接口
2、实现命令包括ls,cat,cp,mv,md,rd,cd,sort,more,prin t 命令的容
与详细格式请查阅unix命令手册
3、可以字符形式接收命令执行命令然后显示命令执行结果。
第二章原理及算法描述
计算机的操作我们通常使用的是windows操作系统在windows2000以上的版本中我们只需在“搜索程序和文件”选项框中输入cmd命令进入windows
操作系统中就可以达到实现系统相关功能的目的。同样在Unix和Linux操作平台中也可以实现相关命令以完成操作系统的相关操作。
现在我们必须实现这样一种方法即为windows操作系统建立一个兼容Unix命令的命令接口。在主程序中新建一个Windows_Unix.exe文件然后调用相关实现相关U nix命令的函数实现命令功能。
具体命令的实现主要通过系统的API函数调用与之功能相同或相似的Dos命令这样就可以实现在Windows操作系统中虚拟地实现Unix命令。
第三章开发环境
1 、硬件环境微型计算机。
2、软件环境Windows 7操作系统语言环境为Visual C++6.0。
第四章重要算法和设计思路描述
1 、实验要实现的U nix命令包括ls、 cat、 cp、 mv、 md、 rd、 cd、 sort、 more、print等。
2、 U nix常用指令功能容
1 lsls的意义为"l ist" 实现显示指定目录中的文件和子目录。如果你在下ls指令后面没有跟著任何的文件名或目录名则会显示出当前目前目录中所有文件信息。
2Cat
Cat指令实现指定目录中文件打开文件并显示其中的容的功能当要打开的文件无效时会返回打开文件失败。
3cpcp是复制("COPY") 也就是将一个或多个文件复制成另一个文件或者是将其复制到另一个目录去另外可以对要复制的目标文件进行重命名操作。4mvmd[drive:][path]\nmv的意义为move,主要是实现将文件从一个目录移到另一个目录。
5mdmd实现在指定的目录或文件下创建目录。
6 rd
Rd实现删除当前指定的容为空的目录若当前目录不为空则无法进行删除目录操作。
7cd
Cd指令实现显示当前目录的名称或将其更改。
程序中我设定的是Cd-s为显示当前目录而cd [. . .]\n 其中. . .为要父目录即指定要切换到的目录。
8sort
Sort指令实现对指定文件中的所有的行进行排序并将结果标准输出。排序的算法可以是按升序或按降序进行排列。
9mo re
M o re实现将指定超过一页的文件临时停留在屏幕等按任何的一个键后才继续显示。
10 printprint指令实现对指定的文件连接当前计算机的打印设备进行打印操作。
除了上述的实验要求的命令为了便于操作和命令的使用查询我另外设置了以下指令
"help 提供帮助信息。 \n"\
"命令+--help 提供命令的详细操作信息。 \n"\
"exit 退出命令解释程序。 \n"\
3、设计思路
1 void lsFunction(string*lsinput, int lscount)函数实现显示一个目录中的文件和子目录。如果失败返回显示“路径可能不存在” 。
2void catFunction(string*catinput, int catcount)函数实现打开文件并显示容。如果失败返回显示“无法打开文件”。
3void cpFunction(string*cpinput, int cpcount)函数实现复制文件和目录树。如果成功返回显示“复制成功”否则显示“文件或目录可能不存在!” 。
4void mvFunction(string*mvinput, int mvcount)函数实现将文件从一个目录移到另一个目录。如果成功返回显示“成功” 否则显示“文件或目录可能不存在!” 。
5void mdFunction(string*mdinput, int mdcount)实现在指定的目录或文件下创建目录。
6void rdFunction(string *rdinput, int rdcount)函数实现删除空目录。如果成
功返回显示“删除目录成功” 否则显示“文件夹可能不存在或文件夹不为空!” 。7void cdFunction(string*cdinput, int cdcount)函数实现显示当前目录的名称或将其更改。如果失败返回显示“路径可能不存在!” 。
8void sortFunction(string*sortinput, int sortcount)指令实现对指定 文件中的所有的行进行排序并将结果标准输出。排序的算法可以是按升序或按降序进行排列。
9void moreFunction(string*moreinput, int morecount)实现将指定超过一页的文件临时停留在屏幕等按任何的一个键后才继续显示。
10void printFunction(string*printinput, int printcount)实现对指定的文件连接当前计算机的打印设备进行打印操作。
1 1 void helpFunction()函数实现提供Windows命令的帮助信息。如果失败返回显示“命令语法不正确” 。
12void exitFunction()函数实现退出命令解释程序。
13void printPath()函数实现显示当前操作的目录路径。
14在主函数intmain()过输入具体的Unix命令来判断进入何种函数实现相应的功能。此外在命令名后加入--help 可以调出相应命令的使用说明。
第五章程序实现---数据结构
第六章程序实现---程序清单
程序清单
#include"windows h"
#include"fstream"
#include"string"
#include"iomanip"
#include"iostream"using namespace std;
#define PRINTHEADHELP
"===========================================================================
=====
"\tOS课程设计——操作系统接口:兼容Unix/Linux命令接口\n"\
"要求:\n"\
"1 、为Windows操作系统建立一个兼容Unix命令的命令接口;\n"\
"2、实现命令包括ls,cat,cp,mv,md,rd,cd,sort,m ore,print等命令的容与详细格式请查阅"\
"unix命令手册;\n"\
"3、可以字符形式接收命令执行命令然后显示命令执行结果;\n"\"===========================================================================
=====
#define PRINTHELP"有关每个命令的详细信息,请键入'命令--help'。 \n"\
"ls 显示指定目录中的文件和子目录。 \n"\
"cat 打开文件并显示容。 \n"\
"cp 复制文件和目录树。 \n"\
"mv 将文件从一个目录移到另一个目录。 \n"\
"md 创建目录\n"\
"rd 删除空目录。 \n"\
"cd 显示当前目录的名称或将其更改。 \n"\
"s o rt 对指定文件中的所有的行进行排序并将结果标准输出。 \n"\
"m o re 超过一页的文件临时停留在屏幕等按任何的一个键后才继续显示。 \n"\
"print 打印。 \n"\
"help 提供帮助信息。 \n"\
台湾云服务器去哪里买?国内有没有哪里的台湾云服务器这块做的比较好的?有很多用户想用台湾云服务器,那么判断哪家台湾云服务器好,不是按照最便宜或最贵的选择,而是根据您的实际使用目的选择服务器,只有最适合您的才是最好的。总体而言,台湾云服务器的稳定性确实要好于大陆。今天,云服务器网(yuntue.com)小编来介绍一下台湾云服务器哪里买和一年需要多少钱!一、UCloud台湾云服务器UCloud上市云商,...
DiyVM 香港沙田机房,也是采用的CN2优化线路,目前也有入手且在使用中,我个人感觉如果中文业务需要用到的话虽然日本机房也是CN2,但是线路的稳定性不如香港机房,所以我们在这篇文章中亲测看看香港机房,然后对比之前看到的日本机房。香港机房的配置信息。CPU内存 硬盘带宽IP价格购买地址2核2G50G2M1¥50/月选择方案4核4G60G3M1¥100/月选择方案4核8G70G3M4¥200/月选择...
轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:1.用户购...