实验一 命令解释程序的编写
2015-04-02 09:50 27唐凤婵 阅读(181) 评论(1) 编辑 收藏 举报
#include<stdio.h> #include<string.h> main() { char cmd[10][10]={"dir","cd","md","rd","date","time", //用一个数组来存放命令,方便之后调用 "ren","copy","quit","help"}; char str[10]; //定义 int year,month,day;//定义 do{ printf("please enter the command: %c",str); //从键盘输入字符串 gets(str); if (strcmp(str,cmd[0])==0) //判断输入的字符串与数组中的命令是否一致 { printf("\ndir:显示目录中的文件和子目录列表(内部命令)\n"); } else if (strcmp(str,cmd[1])==0) { printf("\ncd:改变当前目录(内部命令)\n"); } else if (strcmp(str,cmd[2])==0) { printf("\nmd:建立一个新的子目录(内部命令)\n"); } else if (strcmp(str,cmd[3])==0) { printf("\nrd:删除空文件夹(内部命令)\n"); } else if (strcmp(str,cmd[4])==0) { printf("\ndate:显示或设置日期(内部命令)\n"); } else if (strcmp(str,cmd[5])==0) { printf("\ntime:系统时钟设置命令,功能:设置或显示系统时期。\n"); } else if (strcmp(str,cmd[6])==0) { printf("\nren:表示文件改个名字(内部命令)\n"); } else if (strcmp(str,cmd[7])==0) { printf("\ncopy:表示复制命令,他的功能的复制信息(内部命令)\n"); } else if (strcmp(str,cmd[8])==0) { printf("\nquit:不是内部或外部命令\n"); } else if (strcmp(str,cmd[9])==0) { printf("\nhelp:\ndir:显示目录中的文件和子目录列表(内部命令)\n"); printf("cd:改变当前目录(内部命令)\n"); printf("md:建立一个新的子目录(内部命令)\n"); printf("rd:删除空文件夹(内部命令)\n"); printf("date:显示或设置日期(内部命令)\n"); printf("time:系统时钟设置命令,功能:设置或显示系统时期\n"); printf("ren:表示文件改个名字,ren命令的格式是:ren 源文件名 目的文件名\n"); printf("copy:表示复制命令,他的功能的复制信息\n"); } else //除数组中定义的命令之外,从键盘输入的其他命令同意提示输入错误,并且重新输入 { printf("The command you input is wrong! Please enter again!\n"); } }while(strcmp(str,cmd[8])!=0); //判断是否跳出循环 }
实验一心得体会:在实验一中,我主要采用do while 的循环结构和if else if 的判断结构,实现连续输入客户需要查询的命令,在遇到quit 退出命令时,跳出循环,结束输入命令。关键函数采用strcmp 函数,用来比较客户输入的命令与cmd命令是否一致。一致则解释命令含义,否则则提示重新输入命令。
在编写程序的过程中,重复的输入输出的实现使得整个代码程序变得冗杂。在这个方面,我们应该在原有程序上进行改善处理,将输入输出操作赋予循环,让繁杂的代码变得更加简洁明了。 在输出的时候,首个字符出现乱码现象,在代码前面添加换行之后,乱码现象消失。