实验一:命令解释程序

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

一、目的和要求

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]
");
    printf("版权所有 <c> 2009 Microsoft Corporation。版权所有权利。
");
    while(1)
    {
        printf("
C:\Users\USER>");
        gets(order);
        for(i=0;i<19;i++){
            if(stricmp(order,or[i])==0)
                break;
        }
        if(i==19)
            printf(""%s"不是内部或外部命令,也不是可运行的程序或批处理文件。
",order);
        else if(i==18)
                break;
        else{
            cmd(i);
            //system(order);
        }
    }
}


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"内部命令输入正确。
",order);
    else
        printf(""%s"外部命令输入正确。
",order);
    if(i==17){
        for(j=0;j<19;j++){
            printf("%s	",or[j]);
            if(j>=0&&j<=16)
                printf("内部命令   ");
            else
                printf("外部命令   ");
            printf("%s
",os[j]);
        }

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

原文地址:https://www.cnblogs.com/joker317/p/5319694.html