实验一

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

13物联网  谢秋有 201306104126

一、        实验目的

(1)认识DOS;

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

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

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

 

二、        实验内容和要求

 

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

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

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

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

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

(5)用户输入QUIT退出

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

根据要求,完成设计、编码、测试工作。

 

 

三、        实验方法、步骤及结果测试

 

  1.     源程序名:czxtsy1.c

          可执行程序名:czxtsy1.exe

     2.   原理分析及流程图          

  原理分析:先用二维数组将命令符存储起来,等待输入的命令进行匹配,接着将输入的命令用一个数组存起来,

  最后将该命令与已有的命令进行比较,对比相同则输出相关内容,否则则提醒用户此命令不存在。

  3. 主要程序段及其解释:

 

#include<stdio.h>

#include <stdlib.h>

#include<string.h>

main()

 {   

    char *c[20]={"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"};  

    char s[10];

    int i; 

    while(1){  

printf("请输入提示符:");

gets(s);    

       for(i=0;i<20;i++){  

              {       

                     if(strcmp(s,c[0])==0) 

                     {  

                            printf("类型:内部命令\n");   

                            printf("作用:查看当前的目录\n");

                            printf("\n");   

                            break;   

                     }  

                     else if(strcmp(s,c[1])==0)   

                     {  

                            printf("类型:内部命令\n");  

                            printf("作用:显示当前目录的名称\n"); 

                            printf("\n");      

                            break;   

                     } 

                     else if(strcmp(s,c[2])==0)   

                     { 

                            printf("类型:内部命令\n");   

                            printf("作用:创建一个新目录\n");  

                            printf("\n");

                    break;  

                     } 

                     else if(strcmp(s,c[3])==0)   

                     {  

                            printf("类型:内部命令\n");   

                            printf("作用:删除该目录\n");     

                            printf("\n");   

                            break;  

                     } 

                     else if(strcmp(s,c[4])==0)   

                     {         

                            printf("类型:内部命令\n");   

                            printf("作用:清屏\n");     

                   printf("\n");   

                            break;   

                     }  

                     else if(strcmp(s,c[5])==0)  

                     { 

                            printf("类型:内部命令\n"); 

                            printf("作用:显示或设置日期\n");  

                            printf("\n");      

                            break;  

                     }   

                     else if(strcmp(s,c[6])==0)

                     {  

                            printf("类型:内部命令\n");  

                            printf("作用:显示或设置系统时间\n"); 

                            printf("\n");   

                            break;   

                     } 

                     else if(strcmp(s,c[7])==0)   

                     {  

                            printf("类型:内部命令\n"); 

                            printf("作用:重命名文件\n"); 

                            printf("\n");   

                            break; 

                     } 

                     else if(strcmp(s,c[8])==0)   

                     {    

                            printf("类型:内部命令\n");   

                            printf("作用:将至少一个文件复制到另一个位置\n");

                            printf("\n");         

                            break;  

                     }     

                     else if(strcmp(s,c[9])==0)    

                     {   

                            return 0;

                                      

                           }  

                           else if(strcmp(s,c[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("cope\t内部命令 将至少一个文件复制到另一个位置。\n"); 

                           printf("help\t外部命令 提供Windows命令的帮助信息。\n"); 

                          printf("quit\t外部命令 退出命令解释程序\n");    

                        printf("\n");

                           break;       

      }

                           else if(strcmp(s,c[i])!=0)

                           {   

                                  printf("此命令不存在!!!\n"); 

                                  printf("\n");

                                  break;

                  }    

  } 

  }  

  }   

 }

4.运行结果及分析

四、 实验总结

 

这次试验用到的是C语言的基础编程,编写期间遇到的问题不是太难,都是一些基本的语法错误,

通过运行编译发现问题所在,然后解决问题。从这次试验中我了解到了无论是什么试验,都会出

现这样或那样的错误,我们不应该轻视每一次试验,要注意之前出现的错误,这样才会有所进步。

 

 

posted @ 2015-10-07 22:51  26谢秋有  阅读(173)  评论(1编辑  收藏  举报