实验一 命令解释程序的编写
班级:13级网络工程 姓名:麦嘉雯 学号:201306114130
一、目的
(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等。
三、实验方法、步骤以及实验结果
源代码:
#include <stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char *argv[]){ char *cmd[11]={ "dir","cd","md","rd","cls","date","time","ren","copy","quit","help"}; char *str[11]; while(1) { printf("请输入提示符:>"); gets(str); if(strcmp(str,cmd[0])==0) { printf("内部命令\n"); printf("显示一个目录中的文件与子文件\n"); printf("\n"); } else if(strcmp(str,cmd[1])==0) { printf("内部命令·\n"); printf("显示当前目录的名称或将其更改\n"); printf("\n"); } else if(strcmp(str,cmd[2])==0) { printf("内部命令\n"); printf("创建一个目录\n"); printf("\n"); } else if(strcmp(str,cmd[3])==0) { printf("内部命令\n"); printf("删除目录\n"); printf("\n"); } else if(strcmp(str,cmd[4])==0) { printf("内部命令\n"); printf("清除屏幕\n"); printf("\n"); } else if(strcmp(str,cmd[5])==0) { printf("内部命令\n"); printf("显示或者设置日期\n"); printf("\n"); } else if(strcmp(str,cmd[6])==0) { printf("内部命令\n"); printf("显示或者设置系统时间\n"); printf("\n"); } else if(strcmp(str,cmd[7])==0) { printf("内部命令\n"); printf("重命名文件夹\n"); printf("\n"); } else if(strcmp(str,cmd[8])==0) { printf("内部命令\n"); printf("将至少一个文件复制到另一个位置\n"); printf("\n"); } else if(strcmp(str,cmd[9])==0) { return 0; } else if(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("copy\t将至少一个文件复制到另一个位置。\n"); printf("help\t提供命令的帮助信息。\n"); printf("quit\t退出。\n"); printf("\n"); } else { printf("该命令不是内部或外部命令,也不是可运行的程序或批处理文件。\n"); printf("\n"); } } return 0;}运行结果截图:
四、实验总结
刚看到这个实验题目的的时候,我觉得无从下手,后来参照文档中所给的提示以及上网搜索的资料,慢慢的开始了编写。当我编写完以后,发现只有“dir”这个提示符可以显示,其他的都会引起程序自动关闭,我想了很久,还是不明白问题出在哪里。后来同学告诉我,是我的符号出现错误,修改以后,程序就可以正常运行了。这次是我第一次运用strcmp这个函数,感觉挺好用的。一开始的无从下手到后来的成功运行,真的感觉编程是个很好玩的东西;同时其中出现的问题更是让我知道很多错误都是一些小细节引起的,要注意细节。做完这个实验,我知道了做事要细心注意细节,我也知道我还有很多不足之处,需要慢慢的去学习、去改正。