zoukankan      html  css  js  c++  java
  • 操作系统 实验一、命令解释程序的编写

    一、实验目的

    (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)中源程序名MiniOS.c

    可执行程序名:MiniOS.exe

    2.原理分析及流程图

    主要总体设计问题。

    (包括存储结构,主要算法,关键函数的实现等)

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

    五、结果截图

    六、总结

    在编程的时候,很多时候要好好的结合老师发来的案例和通过百度搜索来解决问题和疑惑,还好在通过与同学的讨论结果下才能运行出来。

  • 相关阅读:
    C#反射实现
    Oracle游标解析
    Oracle触发器详解
    C#委托、事件剖析(下)
    C#委托、事件剖析(上)
    Oracle子查询相关内容(包含TOP-N查询和分页查询)
    Oracle多表查询
    Oracle分组函数以及数据分组
    鸟哥的linux私房菜整理(1)---文件系统、磁盘
    golang面向对象整理
  • 原文地址:https://www.cnblogs.com/chencheng7/p/5319611.html
Copyright © 2011-2022 走看看