#include<stdio.h>
#include<string.h>
struct cmd
{
    char cmd_name[10];  //提示符名字
    char cmd_type[10];  //提示符命令类型
    char cmd_func[100]; //提示符功能
};
typedef struct cmd CMD;

//设置头部
void Head()
{
    printf("Microsoft Windows XP  [版本 5.1.2600]\n");
    printf("(C) 版权所有 1985-2001 Microsoft Corp.\n\n");
}
//指针数组存放命令信息
void Save(CMD c[20])
{
    
    int i=0;
    char *C_name[11]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};
    char *C_type[11]={"内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","外部命令","外部命令"};
    char *C_func[11]={"显示一个目录中的文件和子目录","显示当前目录的名称或将其更改","创建一个目录","删除目录","清除屏幕","显示或设置日期",
        "内部命令显示或设置系统时间","重新命名文件","将至少一个文件复制到另一个位置","提供Windows命令的帮助信息","退出命令解释程序"};
    
    //将已定义好的提示符依次赋值给数组c
    for(i=0;i<11;i++)
    {
        strcpy(c[i].cmd_name,C_name[i]);
        strcpy(c[i].cmd_type,C_type[i]);
        strcpy(c[i].cmd_func,C_func[i]);
    }
}

//从键盘输入命令提示符,并输出相关结果
void Input(CMD c[20])
{
    char name[20];
    int i;
    while(1)
    {
        printf("C:\\Documents and Settings\\Administrator>");
        gets(name);

        //若输入help或HELP,则输出全部提示符信息
        if(strcmp("HELP",name)==0 || strcmp("help",name)==0)
        {    
            for(i=0;i<11;i++)
            {
                printf("%s",c[i].cmd_name);
                putchar('\t');
                printf("%s",c[i].cmd_type);
                putchar('\t');
                printf("%s",c[i].cmd_func);
                putchar('\n');
            }
            putchar('\n');
        }

        //若输入quit,则退出程序
        else if(strcmp("quit",name)==0)
        {
            return;
        }
        else
        {
            for(i=0;i<11;i++)
            {
                
                if(strcmp(c[i].cmd_name,name)==0)
                {
                    if(strcmp("cls",name)==0)  //实现cls功能
                    {
                        system("cls");
                        break;
                    }
                    if(strcmp("dir",name)==0)  //实现dir功能
                    {
                        system("dir");
                        break;
                    }
                    printf("'%s'命令输入正确!",c[i].cmd_name);
                    putchar('\n');
                    printf("%s",c[i].cmd_type);
                    putchar('\n');
                    printf("该命令的作用是:%s",c[i].cmd_func);
                    //putchar('\n');
                    putchar('\n');
                    break;
                }
                
            }

            //错误提示
            if(i>=11)
            {
                printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n\n",name);
            }
        }
    }
}

main()
{
    CMD c[20];
    Head();    
    Save(c);
    Input(c);
}

运行结果图:

 

 

cls清屏功能实现

dir功能实现

posted on 2016-03-25 12:49  55冯铭杰  阅读(306)  评论(0编辑  收藏  举报