• 操作系统-命令解释程序(实验一)


    实验一  命令解释程序的编写(两周内)

    一、目的和要求

    1. 实验目的

    (1)掌握命令解释程序的原理;

    (2)*掌握简单的DOS调用方法;

    (3)掌握C语言编程初步。

    2.实验要求

    编写类似于DOS,UNIX的命令行解释程序

    (1)自行定义系统提示符

    (2)自定义命令集(8-10个)

    (3)用户输入HELP以查找命令的帮助

    (4)列出命令的功能,区分内部还是外部命令

    (5)用户输入QUIT退出

    (6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

    二、实验内容

    根据教师指定的实验课题,完成设计、编码、测试工作。

    、实验环境

    1.PC微机

    2.Windows 操作系统

    3.C/C++程序开发集成环境

    四、实验核心算法及运用文档

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 char or[19][20]={"dir","cd","md","rd","cls","date","time","ren","copy","javac","java","erase","chkntfs","assoc","at","attrib","call","help","quit"};
     5 char order[10];
     6 void cmd(int i);
     7 void main()
     8 {
     9     int i;
    10     printf("Microsoft Windows [版本 6.1.7601]
    ");
    11     printf("版权所有 <c> 2009 Microsoft Corporation。版权所有权利。
    
    ");
    12     while(1)
    13     {
    14         printf("C:\Users\USER>");
    15         gets(order);
    16         if(strcmp(order,"
    ")==1)
    17         {
    18             for(i=0;i<19;i++){
    19                 if(stricmp(order,or[i])==0)
    20                     break;
    21             }
    22             if(i==19)
    23                 printf(""%s"不是内部或外部命令,也不是可运行的程序或批处理文件。
    
    ",order);
    24             else if(i==18)
    25                 break;
    26             else if(i==4)
    27                 system("cls");
    28             else{
    29                 cmd(i);
    30                 //system(order);
    31                 printf("
    ");
    32             }
    33         }
    34     }
    35 }
    36 
    37 
    38 void cmd(int i){
    39     FILE *fp;
    40     int j;
    41     int os[19][30];
    42     fp=fopen("order.txt","r+");
    43     for(j=0;j<19;j++)
    44         fscanf(fp,"%s",os[j]);
    45     fclose(fp);
    46     if(i>=0&&i<=16)
    47         printf(""%s"内部命令输入正确。
    ",order);
    48     else
    49         printf(""%s"外部命令输入正确。
    ",order);
    50     if(i==17){
    51         for(j=0;j<19;j++){
    52             printf("%s	",or[j]);
    53             if(j>=0&&j<=16)
    54                 printf("内部命令   ");
    55             else
    56                 printf("外部命令   ");
    57             printf("%s
    ",os[j]);
    58         }
    59 
    60     }
    61     else if(i==4){
    62         system(order);
    63     }
    64     else
    65         printf("该命令的作用是:%s",os[i]);
    66     printf("
    ");
    67 }

    五、运行结果

    六、实验总结

        这次实验可以说是一次很简单的实验,有很多运用到的代码都是以前做大作业的时候写过的了。但是还是存在一些问题,比如这次实验的拓展题就让我有些不知道怎么下手,因为cmd命令解释,如果用所以说system(order);这句代码的话就可以照样的输出本机cmd命令解释的,如果不用的话,暂时还没有想出怎么去写这个代码。

  • 相关阅读:
    匿名,排序,过滤,映射,递归函数
    内置函数图
    for(var i in items) 和 for(var i;i<items.length;i++) 区别
    js中var、let、const的区别 (待总结)
    eclipse拉取git项目 Read timed out after 30,000 ms
    eclispe git config配置文件配置远程仓库
    git pull出错:cannot pull into a repository with state: merging_resolved"
    HttpClient之用CloseableHttpClient发送post请求
    注意设置httpclient连接数
    This compilation unit is not on the build path of java project (此编译单元不在java项目的生成路径上)
  • 原文地址:https://www.cnblogs.com/moliny/p/5315121.html
Copyright © 2020-2023  润新知