计算机与信息学院
操作系统课程设计报告
专 业 班 级
计算机科学与技术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"\
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...
CloudCone针对中国农历新年推出了几款特别套餐, 其中2019年前注册的用户可以以13.5美元/年的价格购买一款1G内存特价套餐,以及另外提供了两款不限制注册时间的用户可购买年付套餐。CloudCone是Quadcone旗下成立于2017年的子品牌,提供VPS及独立服务器租用,也是较早提供按小时计费VPS的商家之一,支持使用PayPal或者支付宝等付款方式。下面列出几款特别套餐配置信息。CP...
今天9月10日是教师节,我们今天有没有让孩子带礼物和花送给老师?我们这边不允许带礼物进学校,直接有校长在门口遇到有带礼物的直接拦截下来。今天有看到Friendhosting最近推出了教师节优惠,VPS全场45折,全球多机房可选,有需要的可以看看。Friendhosting是一家成立于2009年的保加利亚主机商,主要提供销售VPS和独立服务器出租业务,数据中心分布在:荷兰、保加利亚、立陶宛、捷克、乌...