代码改变世界

实验一 命令解释程序的编写

2015-04-06 10:09  33刘梦云  阅读(1200)  评论(2编辑  收藏  举报

实验一  命令解释程序的编写

一、目的和要求

1.2 实验目的

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

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

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

1.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<string.h>
int main()
{
    char s2[20][20]={"dir","cd","md","rd","cls","date",
        "time","ren","copy","help","quit"};

    //定义数组,将所需的命令存入到数组内,需要的时候就调用
    char s1[20];

    while(1){
    printf("请输入显示符:");
    gets(s1);
    //利用strcmp(s1,s2)来判断

    if(strcmp(s1,s2[0])==0)
    {
        printf("dir 无参数:查看当前所在目录的文件和文件夹。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[1])==0)
    {
        printf("cd 目录名:进入特定的目录。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[2])==0)
    {
        printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[3])==0)
    {
        printf("rd 目录名:删除特定的文件夹。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[4])==0)
    {
        printf("cls 目录名:清除屏幕。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[5])==0)
    {
        printf("date 设置日期命令,功能是设置日期。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[6])==0)
    {
        printf("time 系统时钟设置命令,功能:设置或显示系统时间。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[7])==0)
    {
        printf("ren 表示文件改个名字,ren命令的格式是:ren源文件名 目的文件名。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[8])==0)
    {
        printf("copy 表示复制命令,它的功能是复制信息。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[9])==0)
    {
        printf("提供Windows命令的帮助信息\n");
        printf("dir 无参数:查看当前所在目录的文件和文件夹。这是一个内部命令\n");
        printf("cd 目录名:进入特定的目录。这是一个内部命令\n");
        printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹。这是一个内部命令\n");
        printf("rd 目录名:删除特定的文件夹。这是一个内部命令\n");
        printf("cls 目录名:清除屏幕。这是一个内部命令\n");
        printf("date 设置日期命令,功能是设置日期。这是一个内部命令\n");
        printf("time 系统时钟设置命令,功能:设置或显示系统时间。这是一个内部命令\n");
        printf("ren 表示文件改个名字,ren命令的格式是:ren源文件名 目的文件名。这是一个内部命令\n");
        printf("copy 表示复制命令,它的功能是复制信息。这是一个内部命令\n");
    }
    else if(strcmp(s1,s2[10])==0)
    {
        printf("这是一个外部命令\n");
        return 0;
    }
        else
    {
        printf("你输入错误的信息,请重新输入:\n");
    }
    }
}

五、运行结果

总结:

      这是《操作系统教程》这一门课程当中的第一个编写代码的实验。说实话,做这个实验时遇到过许多问题,虽然说以前就已经有学习过用C语言来编写代码,但因为成绩一直不怎么理想,而且,在结束关于C语言的学习之后的课外并没有再接触过C,所以说,在做这个实验之前,我对于C还是不太熟悉。但是,经过了同学们的指导以及自己上网查了资料,最终还是很顺利地把这个关于DOS命令的程序编写了出来。其实,在编这个程序的过程中,因为错误的方法而使得这个程序进入了死循环,所幸的是,通过查找问题还是解决了这个问题,最终完善了这个程序。经过这次实验,我对于C语言的编程方法有了深一步的理解,希望在以后的编程当中能够更深一步地理解它以及熟练地运用它。