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


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

                                                      班级:13级网络工程  姓名:麦嘉雯  学号:201306114130


一、目的

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


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


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


二、实验要求

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

 

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

 

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


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


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


(5)用户输入QUIT退出


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

三、实验方法、步骤以及实验结果

 

源代码:
   #include <stdio.h>
    #include
<stdlib.h>
    #include
<string.h>
    int main(int argc, char *argv[]){
   
char *cmd[11]={"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"};
   
char *str[11];
   
while(1)
    {
        printf(
"请输入提示符:>");
        gets(str);
           
if(strcmp(str,cmd[0])==0)
            {
                printf(
"内部命令\n");
                printf(
"显示一个目录中的文件与子文件\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[1])==0)
            {
                printf(
"内部命令·\n");
                printf(
"显示当前目录的名称或将其更改\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[2])==0)
            {
                printf(
"内部命令\n");
                printf(
"创建一个目录\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[3])==0)
            {
                printf(
"内部命令\n");
                printf(
"删除目录\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[4])==0)
            {
                printf(
"内部命令\n");
                printf(
"清除屏幕\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[5])==0)
            {
                printf(
"内部命令\n");
                printf(
"显示或者设置日期\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[6])==0)
            {
                printf(
"内部命令\n");
                printf(
"显示或者设置系统时间\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[7])==0)
            {
                printf(
"内部命令\n");
                printf(
"重命名文件夹\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[8])==0)
            {
                printf(
"内部命令\n");
                printf(
"将至少一个文件复制到另一个位置\n");
                printf(
"\n");
            }
           
else if(strcmp(str,cmd[9])==0)
            {
               
return 0;
            }
           
else if(strcmp(str,cmd[10])==0)
            {
                printf(
"外部命令\n");
                printf(
"dir\t显示一个目录中的文件与子文件。\n");
                printf(
"cd\t显示当前目录的名称或将其更改。\n");
                printf(
"md\t创建一个目录。\n");
                printf(
"rd\t删除目录。\n");
                printf(
"cls\t清除屏幕。\n");
                printf(
"date\t显示或设置日期。\n");
                printf(
"time\t显示或设置系统时间。\n");
                printf(
"ren\t重新命名文件。\n");
                printf(
"copy\t将至少一个文件复制到另一个位置。\n");
                printf(
"help\t提供命令的帮助信息。\n");
                printf(
"quit\t退出。\n");
                printf(
"\n");
            }
           
else
            {
                printf(
"该命令不是内部或外部命令,也不是可运行的程序或批处理文件。\n");
                printf(
"\n");
            }
    }
   
return 0;
}

运行结果截图:





 

              四、实验总结

    刚看到这个实验题目的的时候,我觉得无从下手,后来参照文档中所给的提示以及上网搜索的资料,慢慢的开始了编写。当我编写完以后,发现只有“dir”这个提示符可以显示,其他的都会引起程序自动关闭,我想了很久,还是不明白问题出在哪里。后来同学告诉我,是我的符号出现错误,修改以后,程序就可以正常运行了。这次是我第一次运用strcmp这个函数,感觉挺好用的。一开始的无从下手到后来的成功运行,真的感觉编程是个很好玩的东西;同时其中出现的问题更是让我知道很多错误都是一些小细节引起的,要注意细节。做完这个实验,我知道了做事要细心注意细节,我也知道我还有很多不足之处,需要慢慢的去学习、去改正。





原文地址:https://www.cnblogs.com/qing0715/p/4385965.html