• 认识DOS


      

    实验一 DOS命令解释程序的编写
    13物联网 游诗卫  201306104105

    一. 实验目的

    (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.源程序名:1.c

    可执行文件名:1.exe

    2.原理图分析和流程图

    原理分析:将命令符用二维数组存储起来,然后将用户输入的命令符用另一数组存起来,然后将该命令与原有的命令逐一进行比较匹配,匹配相同的则输出相应信息,若比较后都不相同则提醒用户这个命令符不存在,重新输入。

    3.主要程序及解释:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    main()
    {

    char *cmd[10]={"dir","cd","md","cls","date","time","copy","quit","help"};
    char b[10];


    //字符指针cmd用于存储命令符,数组b存储用户输入的命令符

    int a;
    while(1){
    printf("请你输入提示符,输入help可查看所有命令:>");
    gets(b);

    //输入的命令符与数组各元素进行比较匹配,匹配成功的显示相应信息

    for(a=0;a<10;a++){
    {
    if(strcmp(b,cmd[0])==0)

    //strcmp功能将两个参数进行比较,如果一致则为0
    {
    printf("类型:内部命令 ");
    printf("作用:查看当前的目录 ");
    printf(" ");
    break;
    }
    else if(strcmp(b,cmd[1])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:显示当前目录的名称 ");
    printf(" ");
    break;
    }
    else if(strcmp(b,cmd[2])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:创建一个新目录 ");
    printf(" ");
    break;
    }

    else if(strcmp(b,cmd[3])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:清屏 ");
    printf(" ");
    break;
    }
    else if(strcmp(b,cmd[4])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:显示或设置日期 ");
    printf(" ");
    break;
    }
    else if(strcmp(b,cmd[5])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:显示或设置系统时间 ");
    printf(" ");
    break;
    }

    else if(strcmp(b,cmd[6])==0)
    {
    printf("类型:内部命令 ");
    printf("作用:将至少一个文件复制到另一个位置 ");
    printf(" ");
    break;
    }
    else if(strcmp(b,cmd[7])==0)
    {
    return 0;

    }
    else if(strcmp(b,cmd[8])==0)
    {
    printf("类型:外部命令 ");
    printf("dir 内部命令 显示一个目录中的文件和子目录。 ");
    printf("cd 内部命令 显示当前目录的名称或将其更改。 ");
    printf("md 内部命令 创建一个目录。 ");
    printf("cls 内部命令 清除屏幕。 ");
    printf("date 内部命令 显示或设置日期。 ");
    printf("time 内部命令 内部命令显示或设置系统时间。 ");
    printf("cope 内部命令 将至少一个文件复制到另一个位置。 ");
    printf("help 外部命令 提供Windows命令的帮助信息。 ");
    printf("quit 外部命令 退出命令解释程序 ");
    printf(" ");

    break;
    }
    else if(strcmp(b,cmd[a])!=0)
    {
    printf("这个命令不存在,请重新输入! ");
    printf(" ");
    break;
    }
    }
    }
    }
    }

    4.运行结果及分析

    提示输入

    输入命令符后的显示

    输入help可显示所有命令符及其作用

    四.实验总结:

       万事开头难,本次试验看起来也不算特别难,不过就在编写的过程中也遇到不少小问题,不过问题总是会有解决的办法。由于接触到操作系统这门课程也不算是特别久所以一些知识还是存在很多疑难点,但是终归有一天我会一一克服的。在接下来的学习过程中将会更加有意思。

  • 相关阅读:
    判断Java Bean对象所有属性是否为空
    Java在服务器下删除文件、删除目录及目录下所有文件失败(file.delete() --> false)
    Java判断两个Integer类型的值是否相等
    Java将多张图片合并打包成zip格式进行下载
    Java给图片添加水印部署到服务器出现中文乱码
    SpringBoot+SpringMvc页面跳转404问题
    已解决:Caused by: java.lang.NoClassDefFoundError: org/springframework/util/AntPathMatcher$AntPatternComparator$PatternInfo
    ActiveMQ如何解决被重复消费和数据丢失的问题?
    高并发系统三大利器之降级
    高并发系统三大利器之限流
  • 原文地址:https://www.cnblogs.com/YSW520668/p/4868790.html
Copyright © 2020-2023  润新知