• 操作系统实验一.命令解释程序的编写


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

    专业:商业软件工程1班   姓名:周诗琦  学号:201406114108

    一、        实验目的

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

                     可执行程序名:MiniOS.exe

            2.      原理分析及流程图

                      本次实验主要是用while语句进行选择,用if、else if等循环语句嵌套做出判断。

                      利用strcmp进行判断,当输入与对应的命令相等时,则可以显示其命令解释,还可输入help进行查看命令行提示,输入quit后则退出程序。

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

     1 #include<stdio.h>
     2 #include<string.h>
     3 void main()
     4 {
     5     char mingling[15][15]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};
     6     char ch[15];
     7     printf("Microsoft Windows XP [版本 5.1.2600]
    ");
     8     printf("<c> 版权所有 1985-2001 Microsoft Corp.");
     9     printf("c:UsersAdministrator");
    10     
    11     while(1)
    12     {
    13         printf("请输入命令>");
    14         gets(ch);//读入字符串
    15         if(strcmp(ch,mingling[0])==0)
    16         {
    17             printf("dir  内部命令 显示一个目录中的文件和子目录
    ");
    18         }
    19         else if(strcmp(ch,mingling[1])==0)  
    20         {
    21             printf("cd 内部命令 显示当前目录的名称或将其更改。
    ");
    22         }
    23         else if(strcmp(ch,mingling[2])==0)  
    24         {
    25             printf("md 内部命令 创建一个目录。
    ");
    26         }
    27         else if(strcmp(ch,mingling[3])==0)    
    28         {
    29             printf("rd 内部命令 删除目录。
    ");
    30         } 
    31         else if(strcmp(ch,mingling[4])==0)  
    32         {
    33             printf("cls 内部命令 清除屏幕
    ");
    34         }
    35         else if(strcmp(ch,mingling[5])==0)  
    36         {
    37             printf("date 内部命令 显示或设置日期
    ");
    38         }
    39         else if(strcmp(ch,mingling[6])==0)  
    40         {
    41             printf("time 内部命令 内部命令显示或设置系统时间
    ");
    42         }
    43         else if(strcmp(ch,mingling[7])==0)  
    44         {
    45             printf("ren 内部命令 重新命名文件
    ");
    46         }else if(strcmp(ch,mingling[8])==0)  
    47         {
    48             printf("cope 内部命令 将至少一个文件复制到另一个位置
    ");
    49         }
    50         else if(strcmp(ch,mingling[9])==0) 
    51         {
    52             printf("dir 内部命令 显示一个目录中的文件和子目录
    ");
    53             printf("cd 内部命令 显示当前目录的名称或将其更改。
    ");
    54             printf("md 内部命令 创建一个目录。
    ");
    55             printf("rd 内部命令 删除目录。
    ");
    56             printf("cls 内部命令 清除屏幕
    ");
    57             printf("date 内部命令 显示或设置日期
    ");
    58             printf("time 内部命令 内部命令显示或设置系统时间
    ");
    59             printf("ren 内部命令 重新命名文件
    ");
    60             printf("cope 内部命令 将至少一个文件复制到另一个位置
    ");
    61             printf("help 外部命令 提供Windows命令的帮助信息
    ");
    62             printf("quit 外部命令 退出命令解释程序
    ");
    63         }
    64         else if(strcmp(ch,mingling[10])==0)
    65             return;
    66         else
    67         {
    68             printf("你输入错误的信息,请重新输入:
    ");  
    69         }
    70     }
    71 }

    四、        实验总结

                 原本是想通过读取文件进行对比判断后打印文件内容的方法,但是由于本身对C语言的运用不够熟悉,所以选择了简单的直接的键盘读取和直接printf。在今后的学习中要加强对编程的运用,熟悉更多的方法,以便更好地辅助操作系统的学习。

  • 相关阅读:
    Idea配置注释
    mysql省市区数据表
    php实现汉字转拼音的类
    git push时如果不再弹出用户和密码的输入提示框该怎么办
    .gitignore 忽略特殊文件无效
    vmware中CentOS7网络设置教程详解
    Tp5中配置多模块开发
    安装tp6 并使用多应用模式
    ldf和mdf文件怎么还原到sqlserver数据库
    git本地仓库与远程仓库建立连接。
  • 原文地址:https://www.cnblogs.com/sr1zsq/p/5319044.html
Copyright © 2020-2023  润新知