• DOS命令解释程序的编写


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

    专业:物联网工程   姓名:黄淼  学号:201306104145

    一、 实验目的

       (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. 源程序名:压缩包文件(rarzip)中源程序名 hm.c

    可执行程序名:hm.exe

         2.原理分析及流程图

       采用数组来存储功能

       关键函数:strcmp(p,h[10])==0)来判断用户输入的字符串是否与该数组元素符合

                     

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

    #include<stdio.h>

    #include<string.h>

    main()

    {

        char p[11];

     char h[11][11]={"dir","cd","md","rd","cls","date","time",

      "ren","copy","help","arp","start","mem","winver","format","quit"};

            printf("帮助: ");

            printf("内部功能 : ");

            printf("1:dir目录: ");

            printf("2:cd进入目录: ");

            printf("3:md建立文件夹 ");

            printf("4:rd删除文件夹 ");

            printf("5:cls清屏 ");

            printf("6:date设置日期 ");

            printf("7:time设置或显示系统时间 ");

            printf("8:ren改文件名 ");

            printf("9:copy复制 ");

            printf("9:copy复制 ");

            printf("10:help帮助 ");

            printf("11:arp退出 ");  

        printf("12:start开始 ");

        printf("13:mem查看cpu "); 

        printf("14:winver弹出窗口 "); 

        printf("15:format盘符 "); 

            printf("16:quit退出 ");

    while(1)

    {

       gets(p);

       if(strcmp(p,h[15])==0) break;

       else if(strcmp(p,h[9])==0)

       {

          printf("帮助: ");

          printf("内部功能 : ");

              printf("1:dir目录 ");

              printf("2:cd进入目录: ");

              printf("3:md建立文件夹 ");

              printf("4:rd删除文件夹 ");

              printf("5:cls清屏 ");

              printf("6:date设置日期 ");

              printf("7:time设置或显示系统时间 ");

              printf("8:ren改文件名 ");

              printf("9:copy复制 ");

              printf("10:help帮助 ");

              printf("11:arp退出 ");  

      printf("12:start开始 ");

      printf("13:mem查看cpu "); 

      printf("14:winver弹出窗口 "); 

      printf("15:format盘符 "); 

              printf("16:quit退出 ");

       }

       else if(strcmp(p,h[0])==0)  printf("dir(内部功能):目录 ");

       else if(strcmp(p,h[1])==0)  printf("cd(内部功能):进入目录 ");  

       else if(strcmp(p,h[2])==0)  printf("md(内部功能):建立文件夹 ");

       else if(strcmp(p,h[3])==0)  printf("rd(内部功能):删除文件夹 ");

       else if(strcmp(p,h[4])==0)  printf("cls(内部功能):清屏 ");

       else if(strcmp(p,h[5])==0)  printf("date(内部功能):设置日期" );   

       else if(strcmp(p,h[6])==0)  printf("time(内部功能):设置或显示系统时间 ");

       else if(strcmp(p,h[7])==0)  printf("ren(内部功能):改文件名 ");

       else if(strcmp(p,h[8])==0)  printf("copy(内部功能):复制 ");

           else if(strcmp(p,h[9])==0)  printf("help(内部功能):帮助 ");

       else if(strcmp(p,h[10])==0)  printf("arp 查看和处理ARP缓存 ");

           else if(strcmp(p,h[11])==0)  printf("start 程序名或命令 /max /min 新开一个新窗口并最大化(最小化)运行某程序或命令  ");

           else if(strcmp(p,h[12])==0)  printf("mem 查看cpu使用情况 ");

           else if(strcmp(p,h[13])==0)  printf("winver 弹出一个窗口显示版本信息 ");

           else if(strcmp(p,h[14])==0)  printf("format 盘符 /FS:类型 格式化磁盘,类型:FATFAT32NTFS ");

       else printf("出入错误,请重新输入! ");

    }

    }

      4.运行结果及分析

       进入程序之前会有提示帮助:

         

    用户输入help也会显示帮助:

        

        输入dir便会显示如图所示的图片:

       

       输入错误便会提示:

       

       输入quit则直接退出:

      

    四、 实验总结

        在大一的时候就已经学过了C语言,所以,这次的作业比较轻松,不过一开始在运行的时候不知道用什么来运行程序,期待下一次的作业。

  • 相关阅读:
    [Codeforces 933A]A Twisty Movement
    [Codeforces 100633J]Ceizenpok’s formula
    [HAOI 2011]向量
    [JSOI 2008]最大数
    [Codeforces 750E]New Year and Old Subsequence
    [BZOJ 3439]Kpm的MC密码
    [TJOI 2013]单词
    [SCOI 2011]糖果
    [BZOJ 2160]拉拉队排练
    [AtCoder arc090F]Number of Digits
  • 原文地址:https://www.cnblogs.com/hm12/p/4859753.html
Copyright © 2020-2023  润新知