• 操作系统--命令解释程序_1


    #include<stdio.h>
    #define n 11
    typedef struct node{
        char name[20];
        char use[100];
        char pro[20];
    }DOS;
    
    void Input(DOS dos[])
    {
        strcpy(dos[0].name,"DIR");
        strcpy(dos[0].use,"显示一个目录中的文件和目录。");
        strcpy(dos[0].pro,"内部命令");
    
        strcpy(dos[1].name,"ED");
        strcpy(dos[1].use,"显示当前目录的名称或将其修改。");
        strcpy(dos[1].pro,"内部命令");
    
        strcpy(dos[2].name,"MD");
        strcpy(dos[2].use,"创建一个目录。");
        strcpy(dos[2].pro,"内部命令");
    
        strcpy(dos[3].name,"RD");
        strcpy(dos[3].use,"删除目录。");
        strcpy(dos[3].pro,"内部命令");
    
        strcpy(dos[4].name,"CLS");
        strcpy(dos[4].use,"清除屏幕。");
        strcpy(dos[4].pro,"内部命令");
    
        strcpy(dos[5].name,"DATE");
        strcpy(dos[5].use,"显示或设置日期。");
        strcpy(dos[5].pro,"内部命令");
    
        strcpy(dos[6].name,"TIME");
        strcpy(dos[6].use,"内部命令显示或设置系统时间。");
        strcpy(dos[6].pro,"内部命令");
    
        strcpy(dos[7].name,"REN");
        strcpy(dos[7].use,"重新命名文件。");
        strcpy(dos[7].pro,"内部命令");
    
        strcpy(dos[8].name,"COPY");
        strcpy(dos[8].use,"将至少一个文件复制到另一个位置。");
        strcpy(dos[8].pro,"内部命令");
    
        strcpy(dos[9].name,"HELP");
        strcpy(dos[9].use,"提供Windows命令的帮助信息。");
        strcpy(dos[9].pro,"外部命令");
    
        strcpy(dos[10].name,"QUIT");
        strcpy(dos[10].use,"退出命令解释程序。");
        strcpy(dos[10].pro,"外部命令");
    
    }
    
    //退出系统
    void Exit(int a)
    {
        if(a==0)
            Exit(0);
    }
    
    void Choose(char *str[],DOS dos[])
    {    
        int i,j;
        while(1)
        {
            printf("C:\Documents and Settings\hskd>");
            gets(str);
            strupr(str);    //小写转换成大写
            for(j=0;j<n;j++)
            {
                if(strcmp(str,dos[9].name)==0)
                {
                    printf("有关某个命令的详细信息,请输入 HELP 命令名
    ");
                    for(i=0;i<n;i++)
                        printf("%s	%s
    ",dos[i].name,dos[i].use);
                    printf("
    有关工具的详细信息,请参阅联机帮助中的命令行参考。
    
    ");
                    break;
                }
                else if(strcmp(str,dos[10].name)==0)
                {
                    Exit(0);
                    break;
                }
                else if(strcmp(str,dos[j].name)==0&&strcmp(str,dos[9].name)!=0&&strcmp(str,dos[10].name)!=0)
                {
                    printf("'%s'	%s输入正确!
    该命令的作用是:%s
    
    ",dos[j].name,dos[j].pro,dos[j].use);
                    break;
                }
                else
                {
                    strlwr(str); //大写转换成小写
                    printf("'%s' 不是内部或外部命令,也不是可运行的程序
    或批处理文件
    
    ",str);
                    break;
                }
            }
        }
    }
    
    main()
    {
        DOS dos[n];
        char *str[11];
        printf("Microsoft Window XP [版本 5.1.2600]
    ");
        printf("<C> 版权所有 1985-2001 Microsoft Corp.
    
    ");
        Input(dos);
        Choose(str,dos);
    }

  • 相关阅读:
    Linux(Ubuntu)总结(三)
    Linux(Ubuntu):搭建Docker
    JavaScript数字格式化方法:千分位,百分数
    解决mysqld --install:Install/Remove of the Service Denied!
    【转】Oracle基础结构认知——oracle内存结构 礼记八目 2017-12-15 20:31:27
    【转】Oracle基础结构认知—初识oracle 礼记八目 2017-12-12 21:19:30
    Linux 常用命令
    oracle AWR详解
    VMware 虚拟化技术 创建虚拟机
    MySQL数据库各个版本的区别
  • 原文地址:https://www.cnblogs.com/blueYE00/p/5307888.html
Copyright © 2020-2023  润新知