实验一


#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int main()
{
    
    char cmd[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};//定义了个二维数组,存放各种内部命令
    char str[30]={0};//定义一个一维数组,用于存放用户输入发命令
    int i;
    
    while(1)//如果用户不想结束就一直循环
    {
        printf("请输入命令:");
        scanf("%s",&str);
        
        
        if(strcmp(str,cmd[0])==0)//用了strcmp函数来判断字符串是否相等
        {
            printf("dir表示无参数:查看当前所在目录的文件\n");
            
        }
        
        else if(strcmp(str,cmd[1])==0)
        {
            printf("cd 目录名:进入特定的目录。\n");
            
            
        }
        
        else if(strcmp(str,cmd[2])==0)
        {
            printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹\n");
            
            
        } 
        
        else if(strcmp(str,cmd[3])==0)
        {
            printf("rd 目录名:删除特定的文件夹。\n");
            
        }
        
        
        else if(strcmp(str,cmd[4])==0)
        {
            printf("cls 目录名:表示清屏功能\n");
            
        }
        
        else if(strcmp(str,cmd[5])==0)
        {
            printf("data 设置日期命令,功能是设置日期\n");
            
        }
        
        
        else if(strcmp(str,cmd[6])==0)
        {
            printf("time系统时钟设置命令,功能:设置或显示系统时期。\n");
            
        }
        
        else if(strcmp(str,cmd[7])==0)
        {
            
            
            printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名目 的文件名。\n");
            
        }
        
        else if(strcmp(str,cmd[8])==0)
        {
            printf("copy表示复制命令,他的功能的复制信息\n"); 
            
        }
        
        else if(strcmp(str,cmd[9])==0)
        {
            
            printf("无参数:查看当前所在目录的文件和文件夹\n");  
            printf("cd 目录名:进入特定的目录。\n");  
            printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹)\n ");  
            printf("rd 目录名:删除特定的文件夹。\n"); 
            printf("cls 目录名:表示清屏功能\n");  
            printf("data 设置日期命令,功能是设置日期\n");  
            printf("TIME系统时钟设置命令,功能:设置或显示系统时期。\n");  
            printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名目 的文件名。\n");  
            printf("copy表示复制命令,他的功能的复制信息\n");
            
        }
        else if(strcmp(str,cmd[10])==0)
        {
            return 0;
        }
        else
        {
            printf("你输入错误的信息,请重新输入:\n"); 
            
        }
    }
    
    return 0;
}

 

  

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

 

专业计算机科学与技术   姓名 胡洁如  学号 201306114125

一、        实验目的

 

(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.       源程序名:dos.cpp

 

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

本程序采用了c语言中的while语句和if „else if的嵌套的方法完成。将所需的命令字符串存到定义的数组内,从键盘输入利用strcmp进行筛选,若输入正确的命令会显示此命令的解释。输入“help”会提示,将命令提示全部显示出来,而输入“quit”就会退出程序。

 

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

 见插入代码

  

  1. 4.      运行结果及分析

             
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 


         

结果符合预期

 

三、        实验总结

 

刚开始,我总以为这个程序很难,一直在钻研,导致我两节课下来都没有做出来,后来经过同学的指点,我恍然大悟,原来是我把简单的问题复杂化了,下次我不会这样了,会看清楚实验要求的。

 

 

posted @ 2015-04-06 18:49  25洁如  阅读(190)  评论(0编辑  收藏  举报