zoukankan      html  css  js  c++  java
  • 实验一

    实验一、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("类型:内部命令 ");   

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

                                printf(" ");   

                                break;   

                         }  

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

                         {  

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

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

                                printf(" ");      

                                break;   

                         } 

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

                         { 

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

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

                                printf(" ");

                        break;  

                         } 

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

                         {  

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

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

                                printf(" ");   

                                break;  

                         } 

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

                         {         

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

                                printf("作用:清屏 ");     

                       printf(" ");   

                                break;   

                         }  

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

                         { 

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

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

                                printf(" ");      

                                break;  

                         }   

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

                         {  

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

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

                                printf(" ");   

                                break;   

                         } 

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

                         {  

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

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

                                printf(" ");   

                                break; 

                         } 

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

                         {    

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

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

                                printf(" ");         

                                break;  

                         }     

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

                         {   

                                return 0;

                                          

                               }  

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

                               {     

                               printf("类型:外部命令 ");   

                               printf("dir 内部命令 显示一个目录中的文件和子目录。 ");   

                               printf("cd 内部命令 显示当前目录的名称或将其更改。 ");  

                               printf("md 内部命令 创建一个目录。 ");   

                               printf("rd 内部命令 删除目录。 ");  

                               printf("cls 内部命令 清除屏幕。 "); 

                               printf("date 内部命令 显示或设置日期。 ");   

                               printf("time 内部命令 内部命令显示或设置系统时间。 ");

                               printf("ren 内部命令 重新命名文件。 ");  

                               printf("cope 内部命令 将至少一个文件复制到另一个位置。 "); 

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

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

                            printf(" ");

                               break;       

          }

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

                               {   

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

                                      printf(" ");

                                      break;

                      }    

      } 

      }  

      }   

     }

    4.运行结果及分析

    四、 实验总结

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

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

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

     

  • 相关阅读:
    ubuntu12.04.2上利用cmake安装opencv2.4.6
    微软无线鼠标3500滚轮问题
    Linux 安装 Tomcat
    Linux 安装 MySQL
    Linux 安装 JDK
    Linux 安装 Redis 及踩坑
    IDEA Git 撤销push(回退到指定版本)
    【Java】Ajax实现级联城市
    node.js更换镜像源
    【Java】数据库连接池的简单使用
  • 原文地址:https://www.cnblogs.com/xieqiuyou/p/4859745.html
Copyright © 2011-2022 走看看