#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功能实现