操作系统--命令解释程序_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 命令名\n");
                for(i=0;i<n;i++)
                    printf("%s\t%s\n",dos[i].name,dos[i].use);
                printf("\n有关工具的详细信息,请参阅联机帮助中的命令行参考。\n\n");
                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'\t%s输入正确!\n该命令的作用是:%s\n\n",dos[j].name,dos[j].pro,dos[j].use);
                break;
            }
            else
            {
                strlwr(str); //大写转换成小写
                printf("'%s' 不是内部或外部命令,也不是可运行的程序\n或批处理文件\n\n",str);
                break;
            }
        }
    }
}

main()
{
    DOS dos[n];
    char *str[11];
    printf("Microsoft Window XP [版本 5.1.2600]\n");
    printf("<C> 版权所有 1985-2001 Microsoft Corp.\n\n");
    Input(dos);
    Choose(str,dos);
}

转载于:https://www.cnblogs.com/blueYE00/p/5307888.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值