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


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

    专业:商业软件工程一班   姓名:容杰龙 学号:201406114157

    一、        实验目的

    (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.      原理分析及流程图

                    采用读取文件的方式读取命令,用户输入的字符串与文件里面的命令比较,输出相应的作用功能。

                   主要用到以下一个结构体类型:

                 struct Cmd{

                                          char cmd[30];  //命令名称

                                          char function[500];  //命令功能解释

                                          int post;  //标志内、外部命令

                                          char parameters[800];  //参数命令

                       };

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

     1 void process(struct Cmd cm[Max])
     2 {
     3     char str[10];
     4     printf("Microsoft Windows XP [版本 5.1.2600]
    ");
     5     printf("(C) 版权所有 1985-2001 Microsoft Corp.
    ");
     6     while(strcmp(str,"quit")!=0){      /*控制循环*/
     7         printf("
    C:\Documents and Settings\hskd>");
     8         scanf("%s",str);
     9         strlwr(str); /*大写变小写*/
    10         bool flag=false;
    11         if(strcmp(str,"help")==0)
    12         {
    13             printf("有关某个命令的详细信息,请键入 HELP 命令名
    ");
    14             display(cm);
    15             flag=true;
    16         }else{
    17             for(int i=0;i<count;i++)
    18             {
    19                 if(strcmp(str,cm[i].cmd)==0)   /*比较用户输入的字符串与文件存储的关键字命令名称是否相等*/  
    20                 {
    21                     if(cm[i].post==1)
    22                     {
    23                         printf("'%s' 内部命令输入正确!
    该命令作用是:%s
    ",str,cm[i].function);
    24                         printf("%s
    ",&cm[i].parameters);
    25                     }
    26                     else
    27                     {
    28                         printf("'%s' 外部命令输入正确!
    该命令作用是:%s
    ",str,cm[i].function);
    29                         printf("%s",&cm[i].parameters);
    30                     }
    31                     flag=true;
    32                     break;
    33                 }
    34             }
    35             if(!flag){
    36                 if(strcmp(str,"quit")!=0)
    37                     printf("'%s' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    ",str);
    38             }
    39         }
    40     }
    41     printf("
    程序结束!
    
    ");
    42 }

    4、运行结果及分析

    实验结果与预期基本一致

    四、        实验总结

           通过本次实验,让自己回顾了C语言,运用到顺序、选择、循环三种基本结构,同时也用到了读取文件的方式读取数据,加深对操作系统的认识。这次实验在老师的代码的基础上,扩充了内容,修改了一小部分,该程序基本达到预期效果。

  • 相关阅读:
    新闻发布项目——实体类(comment)
    新闻发布项目——实体类(comment)
    新闻发布项目——实体类(newsTb)
    新闻发布项目——实体类(newsTb)
    新闻发布项目——实体类(newsTb)
    新闻发布项目——实体类(User)
    新闻发布项目——实体类(User)
    新闻发布项目——实体类(User)
    2016经典微小说:《轮回》
    要么干,要么滚,千万别混
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/5308049.html
Copyright © 2020-2023  润新知