命令解释程序的编写实验报告.docx
《命令解释程序的编写实验报告.docx》由会员分享,可在线阅读,更多相关《命令解释程序的编写实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
命令解释程序的编写实验报告
实验一、命令解释程序的编写实验
专业:
软件工程姓名:
麦婉仪学号:
201106014149
一、实验目的
(1)掌握命令解释程序的原理;
(2)掌握简单的DOS调用方法;
(3)掌握C语言编程初步。
二、实验内容和要求
编写类似于DOS,UNIX的命令行解释程序
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir,cd,md,rd,cls,date,time,ren,copy等。
三、实验方法、步骤及结果测试
1、本程序采用了c语言中的while语句和if…elseif的嵌套的方法完成。
将所需的命令字符串存到定义的数组内,从键盘输入利用strcmp进行筛选,若输入正确的命令会显示此命令的解释。
输入“help”会提示,将命令提示全部显示出来,而输入“quit”就会退出程序。
2、主要程序段
#include
#include
#include
main()
{
charcmd[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"};
charstr[10];
inti;
while
(1){
printf("请输入提示符:
>");
gets(str);
for(i=0;i<20;i++){
{
if(strcmp(str,cmd[0])==0)
{
printf("类型:
内部命令\n");
printf("查看当前的目录···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[1])==0)
{
printf("类型:
内部命令\n");
printf("显示当前目录的名称···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[2])==0)
{
printf("类型:
内部命令\n");
printf("创建一个新目录···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[3])==0)
{
printf("类型:
内部命令\n");
printf("删除该目录....\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[4])==0)
{
printf("类型:
内部命令\n");
printf("清屏···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[5])==0)
{
printf("类型:
内部命令\n");
printf("显示或设置日期···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[6])==0)
{
printf("类型:
内部命令\n");
printf("显示或设置系统时间···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[7])==0)
{
printf("类型:
内部命令\n");
printf("重命名文件···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[8])==0)
{
printf("类型:
内部命令\n");
printf("将至少一个文件复制到另一个位置···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[9])==0)
{
return0;
}
这一段则是主要的程序内容,用while语句进行选择,然后用if…elseif进行嵌套。
当输入对应的命令则可以显示其命令解释,还可输入help进行查看命令行提示,输入quit后则退出程序。
利用strcmp进行判断,虽然程序较为冗余,但是清晰明了。
源代码:
#include
#include
#include
main()
{
charcmd[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"};
charstr[10];
inti;
while
(1){
printf("请输入提示符:
>");
gets(str);
for(i=0;i<20;i++){
{
if(strcmp(str,cmd[0])==0)
{
printf("类型:
内部命令\n");
printf("查看当前的目录···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[1])==0)
{
printf("类型:
内部命令\n");
printf("显示当前目录的名称···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[2])==0)
{
printf("类型:
内部命令\n");
printf("创建一个新目录···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[3])==0)
{
printf("类型:
内部命令\n");
printf("删除该目录....\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[4])==0)
{
printf("类型:
内部命令\n");
printf("清屏···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[5])==0)
{
printf("类型:
内部命令\n");
printf("显示或设置日期···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[6])==0)
{
printf("类型:
内部命令\n");
printf("显示或设置系统时间···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[7])==0)
{
printf("类型:
内部命令\n");
printf("重命名文件···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[8])==0)
{
printf("类型:
内部命令\n");
printf("将至少一个文件复制到另一个位置···\n");
printf("\n");
printf("\n");
break;
}
elseif(strcmp(str,cmd[9])==0)
{
return0;
}
elseif(strcmp(str,cmd[10])==0)
{
printf("类型:
外部命令\n");
printf("dir\t内部命令显示一个目录中的文件和子目录。
\n");
printf("cd\t内部命令显示当前目录的名称或将其更改。
\n");
printf("md\t内部命令创建一个目录。
\n");
printf("rd\t内部命令删除目录。
.\n");
printf("cls\t内部命令清除屏幕。
\n");
printf("date\t内部命令显示或设置日期。
\n");
printf("time\t内部命令内部命令显示或设置系统时间。
\n");
printf("ren\t内部命令重新命名文件。
\n");
printf("cope\t内部命令将至少一个文件复制到另一个位置。
\n");
printf("help\t外部命令提供Windows命令的帮助信息。
\n");
printf("quit\t外部命令退出命令解释程序\n");
printf("\n");
printf("\n");
/*printf("CALL\t从一个批处理程序调用这一个。
\n");
printf("CMD\t打开另一个Windows命令解释窗口。
\n");
printf("COLOR\t设置默认控制台前景和背景颜色。
\n");
printf("DEL\t删除至少一个文件。
\n");
printf("EXIT\t退出命令解释程序。
\n");
printf("FIND\t在一个或多个文件中搜索一个文本字符串。
\n");
printf("MKDIR\t创建一个目录。
\n");
printf("MODE\t配置系统设备。
\n");
printf("PRINT\t打印一个文本文件。
\n");
printf("REPLACE\t替换文件。
\n");
printf("RENAME\t重新命名文件。
\n");*/
break;
}elseif(strcmp(str,cmd[i])!
=0){
printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件\n");
printf("\n");
break;}
}
}
}
}
3、运行结果分析
这是进入程序的界面
Dir命令
Help命令
输入错误命令
退出命令
四、实验总结
做这个程序的时候遇到很多问题,因为对c语言不太熟悉,但是经过了上网查找及同学的指导后,我顺利的做出了这个程序。
经过了这次实验,我对c语言有了深一步的了解,希望以后更加熟悉然后能用C语言弄出更多小程序。