zoukankan      html  css  js  c++  java
  • 命令解释程序的编写实验报告

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

    专业 商业软件工程  姓名 丘惠敏 学号 201406114203

    一、        实验目的

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

    可执行程序名:miniOS6.exe

    2.      原理分析及流程图

    主要是通过二维数组存储各个命令的信息。

    通过对ASCII对计算,把命令输入的大写全部转换成小写,小写不变。

    再通过字符串判断命令输入是否正确。

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

     1 #include<stdio.h>
     2 #include <stdlib.h>
     3 #include<string.h>
     4 #include<windows.h>
     5 void helpmeun();
     6 void change(char temp[]);
     7 main()
     8 {
     9     char order[22][5]={"help","quit","dir","cd","md","rd","cls","date","time","ren","cope"};
    10     char temp[5];
    11     printf("Microsoft Windows XP [版本 5.1.1600]
    ");
    12     printf("(C) 版本所有 1985-2001 Microsoft Corp.
    
    ");
    13     while(1)
    14     {
    15         printf("C:\Documents and Settings\Administrator>");
    16         scanf("%s",temp);
    17         change(temp);
    18            if(strcmp(temp,order[0])==0)
    19                helpmeun();
    20         else if(strcmp(temp,order[1])==0)
    21             exit(0);
    22         else if(strcmp(temp,order[2])==0)
    23             printf("'%s'内部命令输入正确!
    该命令作用是:显示一个目录的文件和子目录。
    
    ",temp);
    24         else if(strcmp(temp,order[3])==0)
    25             printf("'%s'内部命令输入正确!
    该命令作用是:显示当前目录的名称或将其更改。
    
    ",temp);
    26         else if(strcmp(temp,order[4])==0)
    27             printf("'%s'内部命令输入正确!
    该命令作用是:创建一个新的目录。
    
    ",temp);
    28         else if(strcmp(temp,order[5])==0)
    29             printf("'%s'内部命令输入正确!
    该命令作用是:删除目录。
    
    ",temp);
    30         else if(strcmp(temp,order[6])==0)
    31             system("cls"); 
    32     //        printf("'%s'内部命令输入正确!
    该命令作用是:清除屏幕。
    
    ",temp);
    33         else if(strcmp(temp,order[7])==0)
    34             printf("'%s'内部命令输入正确!
    该命令作用是:显示或者设置日期。
    
    ",temp);
    35         else if(strcmp(temp,order[8])==0)
    36             printf("'%s'内部命令输入正确!
    该命令作用是:内部命令显示或者设置系统时间。
    
    ",temp);
    37         else if(strcmp(temp,order[9])==0)
    38             printf("'%s'内部命令输入正确!
    该命令作用是:重命名。
    
    ",temp);
    39         else if(strcmp(temp,order[10])==0)
    40             printf("'%s'内部命令输入正确!
    该命令作用是:复制文件。
    
    ",temp);
    41         else
    42             printf("'%s'不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    
    ",temp);
    43     }
    44     getchar();
    45 }
    46 void helpmeun()
    47 {
    48     printf("有关某个命令的详细信息。请键入 HELP 命令名
    ");
    49     printf("DIR	 显示一个目录的文件和子目录。
    ");
    50     printf("CD	 显示当前目录的名称或将其更改。
    ");
    51     printf("MD	 创建一个新的目录。
    ");
    52     printf("RD	 删除目录。
    ");
    53     printf("CLS	 清除屏幕。
    ");
    54     printf("DATE	 显示或者设置日期。
    ");
    55     printf("TIME	 内部命令显示或者设置系统时间。
    ");
    56     printf("REN	 重命名。
    ");
    57     printf("COPE	 复制文件。
    
    ");
    58     printf("有关工具的详细信息,请参阅联机帮助中的命令行参考。
    
    ");
    59 }
    60 void change(char temp[])
    61 {
    62     for(int i=0;i<5;i++)
    63     {
    64         if(temp[i]>='A'&&temp[i]<='Z')
    65             temp[i]=temp[i]+32;
    66     }
    67 }

    4.      运行结果及分析

    四、       实验总结

    通过这个实验我了解了一些系统中命令提示符的作用和使用,也对外部命令和内部有所了解,但是系统中还有很多命令依然是不了解。

  • 相关阅读:
    基础知识
    贪心-合并区间、交集、无重叠区间、俄罗斯套娃信封
    递归实现煎饼排序
    递归实现基本计算器+-*/()
    滑动窗口---最小覆盖子串、字母异位词、
    二分查找
    N皇后
    二叉搜索树-合法性、增、删、查
    循环
    二分法
  • 原文地址:https://www.cnblogs.com/qiuhuimin/p/5320269.html
Copyright © 2011-2022 走看看