命令OS课程设计实验报告

ylmf os 4 0  时间:2021-01-28  阅读:()

计算机与信息学院

操作系统课程设计报告

专 业 班 级

计算机科学与技术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指令后面没有跟著任何的文件名或目录名则会显示出当前目前目录中所有文件信息。

2Cat

Cat指令实现指定目录中文件打开文件并显示其中的容的功能当要打开的文件无效时会返回打开文件失败。

3cpcp是复制("COPY") 也就是将一个或多个文件复制成另一个文件或者是将其复制到另一个目录去另外可以对要复制的目标文件进行重命名操作。4mvmd[drive:][path]\nmv的意义为move,主要是实现将文件从一个目录移到另一个目录。

5mdmd实现在指定的目录或文件下创建目录。

6 rd

Rd实现删除当前指定的容为空的目录若当前目录不为空则无法进行删除目录操作。

7cd

Cd指令实现显示当前目录的名称或将其更改。

程序中我设定的是Cd-s为显示当前目录而cd [. . .]\n 其中. . .为要父目录即指定要切换到的目录。

8sort

Sort指令实现对指定文件中的所有的行进行排序并将结果标准输出。排序的算法可以是按升序或按降序进行排列。

9mo re

M o re实现将指定超过一页的文件临时停留在屏幕等按任何的一个键后才继续显示。

 10 printprint指令实现对指定的文件连接当前计算机的打印设备进行打印操作。

除了上述的实验要求的命令为了便于操作和命令的使用查询我另外设置了以下指令

"help  提供帮助信息。 \n"\

"命令+--help  提供命令的详细操作信息。 \n"\

"exit  退出命令解释程序。 \n"\

3、设计思路

 1 void lsFunction(string*lsinput, int lscount)函数实现显示一个目录中的文件和子目录。如果失败返回显示“路径可能不存在” 。

2void catFunction(string*catinput, int catcount)函数实现打开文件并显示容。如果失败返回显示“无法打开文件”。

3void cpFunction(string*cpinput, int cpcount)函数实现复制文件和目录树。如果成功返回显示“复制成功”否则显示“文件或目录可能不存在!” 。

4void mvFunction(string*mvinput, int mvcount)函数实现将文件从一个目录移到另一个目录。如果成功返回显示“成功” 否则显示“文件或目录可能不存在!” 。

5void mdFunction(string*mdinput, int mdcount)实现在指定的目录或文件下创建目录。

6void rdFunction(string *rdinput, int rdcount)函数实现删除空目录。如果成

功返回显示“删除目录成功” 否则显示“文件夹可能不存在或文件夹不为空!” 。7void cdFunction(string*cdinput, int cdcount)函数实现显示当前目录的名称或将其更改。如果失败返回显示“路径可能不存在!” 。

8void sortFunction(string*sortinput, int sortcount)指令实现对指定 文件中的所有的行进行排序并将结果标准输出。排序的算法可以是按升序或按降序进行排列。

9void moreFunction(string*moreinput, int morecount)实现将指定超过一页的文件临时停留在屏幕等按任何的一个键后才继续显示。

 10void printFunction(string*printinput, int printcount)实现对指定的文件连接当前计算机的打印设备进行打印操作。

 1 1 void helpFunction()函数实现提供Windows命令的帮助信息。如果失败返回显示“命令语法不正确” 。

 12void exitFunction()函数实现退出命令解释程序。

 13void 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"\

RFCHOST - 洛杉矶CN2 GIA VPS季付23.9美元起 100Mbps带宽

RFCHOST,这个服务商我们可能有一些朋友知道的。不要看官网是英文就以为是老外服务商,实际上这个服务商公司在上海。我们实际上看到的很多商家,有的是繁体,有的是英文,实际上很多都是我们国人朋友做的,有的甚至还做好几个品牌域名,实际上都是一个公司。对于RFCHOST商家还是第一次分享他们家的信息,公司成立大约2015年左右。目前RFCHOST洛杉矶机房VPS正进行优惠促销,采用CN2优化线路,电信双...

inlicloud48元/月,云主机,2核1G/200Mbps,可选安徽/上海联通/广州移动/江门移动NAT

inlicloud怎么样?inlicloud(引力主机)主要产品为国内NAT系列VPS,目前主要有:上海联通NAT(200Mbps带宽)、宿州联通NAT(200Mbps带宽)、广州移动NAT(200Mbps带宽)。根据官方的说法国内的NAT系列VPS不要求备案、不要求实名、对中转要求也不严格,但是,禁止任何形式的回国!安徽nat/上海联通/广州移动/江门移动nat云主机,2核1G/200Mbps仅...

MineServer:洛杉矶CN2 GIA VPS/512MB内存/20GB NVME/800GB流量/200Mbps/KVM,58元/季

mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,之前介绍过几次,最近比较活跃。这家新推出了洛杉矶CN2 GIA VPS,512MB内存/20GB NVME/800GB流量/200Mbps/KVM,58元/季,并且进行了带宽升级,同时IP更改为美国IP。点击...

ylmf os 4 0为你推荐
桌面背景图片风景最原始的桌面壁纸,蓝天白云大草原的那种,有木有???盗版win8.1升级win10电脑预装正版win8,后来装成盗版win8.1了,请问还能不能升级win10呀录屏软件哪个好有什么好用的游戏录屏软件推荐吗?电脑杀毒软件哪个好电脑杀毒软件那个最好??音乐播放器哪个好音乐播放器哪个最好用浮动利率和固定利率哪个好贷款选择浮动利率还是固定利率播放器哪个好哪个播放器最好电动牙刷哪个好电动牙刷和普通牙刷哪个好,有何区别?美国国际东西方大学凭高考成绩可以申请哪些海外大学?辽宁联通网上营业厅中国联通网上营业厅固定电话费查询
国外虚拟主机 天津服务器租赁 免费linux主机 cn域名备案 mediafire下载 国外空间服务商 英语简历模板word 免费个人空间申请 域名转向 183是联通还是移动 699美元 gtt 支付宝扫码领红包 新睿云 免费asp空间 免费蓝钻 阿里云邮箱登陆 中国联通宽带测速 网站加速 创速 更多