zoukankan      html  css  js  c++  java
  • 实验一 命令解释程序的编写

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

    专业: 商业软件工程2班  姓名 :许佳仪 学号 :201406114212

    一、        实验目的

    (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等。

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

    1. 1.      源程序名:压缩包文件中源程序名 text.c

    可执行程序名:text.exe

    1. 2.      原理分析及流程图

    显示程序提示信息;

    While(1)

    { 显示提示符;

    接收键盘的字符串;

    判断是否quit程序退出指令,是则退出;

    判断是否内部命令,并给出相应的信息,否则给出错误信息; 

    显示退出程序信息;

    1. 3.      主要程序段及其解释:
      1 #include<stdio.h> 
      2 #include<stdlib.h> 
      3 #include<string.h> 
      4 #define N 100
      5 main() 
      6 {     
      7     char cmd[N][N]={"dir","cd","md","rd","cls","date","time","ren", "copy",
      8         "javac","java","erase","chkntfs","assoc","at","attrib","call","help","quit"};     
      9     char str[N];       
     10     int i;
     11     printf("Microsoft Windows [版本 6.1.7601]
    ");
     12     printf("版权所有 (c)2009 Microsoft Corporation。保留所有权利。
    ");
     13     while(1)
     14     {   
     15         printf("C:\Users\Administrator>"); 
     16         gets(str);            
     17         for(i=0;i<N;i++)       
     18         {            
     19             if(strcmp(str,cmd[0])==0)       
     20             {    
     21                 printf("'%s'内部命令输入正确!
    ",str);       
     22                 printf("该命令的作用是:显示一个目录中的文件和子目录。
    
    ");      
     23                 break;       
     24             }    
     25             else if(strcmp(str,cmd[1])==0)       
     26             {    
     27                 printf("'%s'内部命令输入正确!
    ",str);       
     28                 printf("该命令的作用是:显示当前目录的名称或将其更改。
    
    ");      
     29                 break;       
     30             }    
     31             else if(strcmp(str,cmd[2])==0)       
     32             {    
     33                 printf("'%s'内部命令输入正确!
    ",str);       
     34                 printf("该命令的作用是:创建目录。
    
    ");   
     35                 break;       
     36             }    
     37             else if(strcmp(str,cmd[3])==0)       
     38             {    
     39                 printf("'%s'内部命令输入正确!
    ",str);       
     40                 printf("该命令的作用是:删除目录。
    
    ");      
     41                 break;       
     42             }    
     43             else if(strcmp(str,cmd[4])==0)       
     44             {             
     45                 printf("'%s'内部命令输入正确!
    ",str);      
     46                 printf("该命令的作用是:清除屏幕。
    
    ");      
     47                 break;      
     48             }    
     49             else if(strcmp(str,cmd[5])==0)      
     50             {   
     51                 printf("'%s'内部命令输入正确!
    ",str);       
     52                 printf("该命令的作用是:显示或设置日期。
    
    ");  
     53                 break;       
     54             }    
     55             else if(strcmp(str,cmd[6])==0) 
     56             {    
     57                 printf("'%s'内部命令输入正确!
    ",str);       
     58                 printf("该命令的作用是:显示或设置系统时间。
    
    ");        
     59                 break;       
     60             }    
     61             else if(strcmp(str,cmd[7])==0)       
     62             {    
     63                 printf("'%s'内部命令输入正确!
    ",str);       
     64                 printf("该命令的作用是:重命名文件。
    
    ");         
     65                 break;       
     66             }    
     67             else if(strcmp(str,cmd[8])==0)       
     68             {       
     69                 printf("'%s'内部命令输入正确!
    ",str);       
     70                 printf("该命令的作用是:将至少一个文件复制到另一个位置。
    
    ");       
     71                 break;      
     72             } 
     73             else if(strcmp(str,cmd[9])==0)       
     74             {    
     75                 printf("'%s'外部命令输入正确!
    ",str);       
     76                 printf("该命令的作用是:将某一个java程序进行编译。
    
    ");      
     77                 break;
     78             }
     79             else if(strcmp(str,cmd[10])==0)       
     80             {    
     81                 printf("'%s'外部命令输入正确!
    ",str);       
     82                 printf("该命令的作用是:运行某一个已编译的java文件。
    
    ");      
     83                 break;
     84             }
     85             else if(strcmp(str,cmd[11])==0)       
     86             {       
     87                 printf("'%s'内部命令输入正确!
    ",str);       
     88                 printf("该命令的作用是:删除至少一个文件。
    
    ");       
     89                 break;      
     90             } 
     91             else if(strcmp(str,cmd[12])==0)       
     92             {       
     93                 printf("'%s'内部命令输入正确!
    ",str);       
     94                 printf("该命令的作用是:显示或修改启动时间磁盘检查。
    
    ");       
     95                 break;      
     96             } 
     97             else if(strcmp(str,cmd[13])==0)       
     98             {       
     99                 printf("'%s'内部命令输入正确!
    ",str);       
    100                 printf("该命令的作用是:显示或修改文件扩展名关联。
    
    ");       
    101                 break;      
    102             } 
    103             else if(strcmp(str,cmd[14])==0)       
    104             {       
    105                 printf("'%s'内部命令输入正确!
    ",str);       
    106                 printf("该命令的作用是:计划在计算机上运行的命令和程序。
    
    ");       
    107                 break;      
    108             } 
    109             else if(strcmp(str,cmd[15])==0)       
    110             {       
    111                 printf("'%s'内部命令输入正确!
    ",str);       
    112                 printf("该命令的作用是:显示或更改文件属性。
    
    ");       
    113                 break;      
    114             } 
    115             else if(strcmp(str,cmd[16])==0)       
    116             {       
    117                 printf("'%s'内部命令输入正确!
    ",str);       
    118                 printf("该命令的作用是:从另一个批处理程序调用这一个。
    
    ");       
    119                 break;      
    120             } 
    121           
    122             else if(strcmp(str,cmd[17])==0)      
    123             {   
    124                 printf("有关某个命令的详细信息,请键入 HELP 命令名
    ");
    125                 printf("dir	内部命令 显示一个目录中的文件和子目录。
    ");     
    126                 printf("cd	内部命令 显示当前目录的名称或将其更改。
    ");     
    127                 printf("md	内部命令 创建目录。
    ");    
    128                 printf("rd	内部命令 删除目录。
    ");     
    129                 printf("cls	内部命令 清除屏幕。
    ");     
    130                 printf("date	内部命令 显示或设置日期。
    ");      
    131                 printf("time	内部命令 显示或设置系统时间。
    ");      
    132                 printf("ren	内部命令 重命名文件。
    ");      
    133                 printf("cope	内部命令 将至少一个文件复制到另一个位置。
    "); 
    134                 printf("javac	外部命令 将某一个java程序进行编译。
    "); 
    135                 printf("java	外部命令 运行某一个已编译的java文件。
    ");
    136                 printf("erase	内部命令 删除至少一个文件。
    ");
    137                 printf("chkntfs	内部命令 显示或修改启动时间磁盘检查。 
    ");
    138                 printf("assoc	内部命令 显示或修改文件扩展名关联。  
    ");
    139                 printf("at	内部命令 计划在计算机上运行的命令和程序。 
    ");
    140                 printf("attrib	内部命令 显示或更改文件属性。 
    ");
    141                 printf("call	内部命令 从另一个批处理程序调用这一个。 
    ");
    142                 printf("help	外部命令 提供Windows命令的帮助信息。
    ");    
    143                 printf("quit	外部命令 退出命令解释程序
    
    ");  
    144                 break;              
    145             }
    146             else if(strcmp(str,cmd[18])==0)      
    147             {   
    148                 printf("
    程序结束!
    ");
    149                 return 0; 
    150             } 
    151                else if(strcmp(str,cmd[i])!=0)
    152                {     
    153                      printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件。
    
    ",str);     
    154                     break;
    155                }
    156         }       
    157     }           
    158 }
    1. 4.      运行结果及分析

     

     

     

     

     

     

    二、        实验总结

    通过本次实验我进一步加深了对数组的了解,遇到不懂的通过询问同学和上网搜索相关知识,最后还是成功地解决了问题。

     

     

     

  • 相关阅读:
    起泡排序引申出的问题
    关于NPC和NP-Hard问题
    我的书单(更新中)
    OpenCV2学习笔记03:Qt中配置OpenCV环境
    Ubuntu 14.04为浏览器添加Flash插件
    CSS3基础
    HTML5进阶
    拖拽上传及读取文件实现
    生产者消费者模型
    进程
  • 原文地址:https://www.cnblogs.com/xjy-gg/p/5318120.html
Copyright © 2011-2022 走看看