操作系统--命令解释程序_1
2016-03-22 18:05
162 查看
#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 ; char *str[11]; printf("Microsoft Window XP [版本 5.1.2600]\n"); printf("<C> 版权所有 1985-2001 Microsoft Corp.\n\n"); Input(dos); Choose(str,dos); }
相关文章推荐
- Javascript写的10进制与16进制互转
- Linq to sql 自定义类型
- 法线变换
- BFS和DFS优先搜索算法
- 关于手机连不上拼命循环弹出“Connection attempts: x远程主机强迫关闭了一个现有的连接 ”的解决办法
- 正版win8平均15分钟蓝屏一次。显示critical structure corruption(ntfs.sys)
- NodeJS - Error: The specified procedure could not be found
- Hibernate 以流的方式获取数据
- 手写字体识别 --MNIST数据集
- Linux中使用C语言实现基于UDP协议的Socket通信示例
- POJ 1543 Perfect Cubes
- Android实战技巧:消息循环与Looper
- POJ 1426 Find The Multiple (BFS)
- Linux查看文件最后几行的命令,日志的福音啊
- JBOSS目录结构详细说明
- 解决Win10系统Android Studio下的terminal无法输入的问题
- Android官方开发文档Training系列课程中文版:添加ActionBar之设置ActionBar
- 访问网络共享找不到网络名的解决方案
- python基础学习
- 用 RoundTo、Format、FormatFloat、FormatCurr 格式化的效果