zoukankan      html  css  js  c++  java
  • 实验一 认识DOS

    实验一、认识DOS实验

    专业:物联网工程   姓名:韩炎君  学号:201306104133

    一、       实验目的

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

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

    源程序名1234.c

    可执行程序名:1234.exe

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

    流程图:

    源程序:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    void main()
    {
    char cmd[20][20]={"cd","dir","cls","rd","md","date","time","ren","copy","help","quit"};
    char str[20]; //这是定义数组,将所需的命令存入到数组内,需要的时候就调用.
    while(1)
    {
    printf("请输入显示符:");
    gets(str);//这个是从键盘输入,并且在之前显示信息.

    if(strcmp(str,cmd[0])==0)
    printf("cd目录名:进入特定的目录. ");
    else if (strcmp(str,cmd[1])==0)
    printf("dir表示无参数:查看当前所在目录的文件和文件夹 ");
    else if (strcmp(str,cmd[2])==0)
    printf("cls 目录名:表示清屏功能. ");
    else if (strcmp(str,cmd[3])==0)
    printf("rd 目录名:删除特定的文件夹. ");
    else if (strcmp(str,cmd[4])==0)
    printf("md 目录名:建立特定的文件夹.dos下面习惯叫目录,win下面习惯叫文件夹. ");
    else if (strcmp(str,cmd[5])==0)
    printf("data 设置日期命令,功能是设置日期. ");
    else if (strcmp(str,cmd[6])==0)
    printf("time 系统时钟设置命令,功能:设置或显示系统时期. ");
    else if (strcmp(str,cmd[7])==0)
    printf("ren 表示文件改个名字,ren命令的格式是:ren 源文件名 目的文件名. ");
    else if (strcmp(str,cmd[8])==0)
    printf("copy 表示复制命令 功能:复制信息. ");
    else if (strcmp(str,cmd[9])==0)
    {
    printf("无参数:查看当前所在目录的文件和文件夹. ");
    printf("cd 目录名:进入特定的目录. ");
    printf("md 目录名:建立特定的文件夹.dos下面习惯叫目录,win下面习惯叫文件夹. ");
    printf("rd 目录名:删除特定的文件夹. ");
    printf("cls 目录名:表示清屏功能. ");
    printf("data 设置日期命令,功能是设置日期. ");
    printf("time 系统时钟设置命令,功能:设置或显示系统时期. ");
    printf("ren 表示文件改个名字,ren命令的格式是:ren 源文件名 目的文件名. ");
    printf("copy 表示复制命令 功能:复制信息. ");
    }
    else if (strcmp(str,cmd[10])==0){
    return;
    }
    else{
    printf("你输入错误的信息,请重新输入. ");}
    }
    }

    运行结果截图:

    四、       实验总结

    刚开始的时候,完全没有任何头绪来做这个实验,所以有去找资料参考,然后了解到要运用strcmp函数,需要用到头文件。再完成程序后测试时发现,从第二个输入符号开始,就一直显示输入有错,后来发现是原来在定义数组的时候里面加了空格,导致识别用户输入错误。

  • 相关阅读:
    Git使用
    sql 索引【转】
    SpringBoot | 第三十八章:基于RabbitMQ实现消息延迟队列方案
    SpringBoot | 第三十七章:集成Jasypt实现配置项加密
    SpringBoot | 第三十六章:集成多CacheManager
    分布式定时器的一些解决方案
    SpringBoot | 第三十五章:Mybatis的集成和使用
    SpringBoot | 第三十四章:CXF构建WebService服务
    SpringBoot | 第三十三章:Spring web Servcies集成和使用
    SpringBoot | 第三十二章:事件的发布和监听
  • 原文地址:https://www.cnblogs.com/hyj950502/p/4847241.html
Copyright © 2011-2022 走看看