您的位置:首页 > 其它

操作系统-命令解释程序(实验一)

2016-03-24 13:23 399 查看

实验一 命令解释程序的编写(两周内)

一、目的和要求

1. 实验目的

(1)掌握命令解释程序的原理;

(2)*掌握简单的DOS调用方法;

(3)掌握C语言编程初步。

2.实验要求

编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

(2)自定义命令集(8-10个)

(3)用户输入HELP以查找命令的帮助

(4)列出命令的功能,区分内部还是外部命令

(5)用户输入QUIT退出

(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

二、实验内容

根据教师指定的实验课题,完成设计、编码、测试工作。

、实验环境

1.PC微机

2.Windows 操作系统

3.C/C++程序开发集成环境

四、实验核心算法及运用文档





#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char or[19][20]={"dir","cd","md","rd","cls","date","time","ren","copy","javac","java","erase","chkntfs","assoc","at","attrib","call","help","quit"};
char order[10];
void cmd(int i);
void main()
{
int i;
printf("Microsoft Windows [版本 6.1.7601]\n");
printf("版权所有 <c> 2009 Microsoft Corporation。版权所有权利。\n\n");
while(1)
{
printf("C:\\Users\\USER>");
gets(order);
if(strcmp(order,"\n")==1)
{
for(i=0;i<19;i++){
if(stricmp(order,or[i])==0)
break;
}
if(i==19)
printf("\"%s\"不是内部或外部命令,也不是可运行的程序或批处理文件。\n\n",order);
else if(i==18)
break;
else if(i==4)
system("cls");
else{
cmd(i);
//system(order);
printf("\n");
}
}
}
}

void cmd(int i){
FILE *fp;
int j;
int os[19][30];
fp=fopen("order.txt","r+");
for(j=0;j<19;j++)
fscanf(fp,"%s",os[j]);
fclose(fp);
if(i>=0&&i<=16)
printf("\"%s\"内部命令输入正确。\n",order);
else
printf("\"%s\"外部命令输入正确。\n",order);
if(i==17){
for(j=0;j<19;j++){
printf("%s\t",or[j]);
if(j>=0&&j<=16)
printf("内部命令   ");
else
printf("外部命令   ");
printf("%s\n",os[j]);
}

}
else if(i==4){
system(order);
}
else
printf("该命令的作用是:%s",os[i]);
printf("\n");
}


五、运行结果







六、实验总结

这次实验可以说是一次很简单的实验,有很多运用到的代码都是以前做大作业的时候写过的了。但是还是存在一些问题,比如这次实验的拓展题就让我有些不知道怎么下手,因为cmd命令解释,如果用所以说system(order);这句代码的话就可以照样的输出本机cmd命令解释的,如果不用的话,暂时还没有想出怎么去写这个代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: