#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char cmd[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};//定义了个二维数组,存放各种内部命令 char str[30]={0};//定义一个一维数组,用于存放用户输入发命令 int i; while(1)//如果用户不想结束就一直循环 { printf("请输入命令:"); scanf("%s",&str); if(strcmp(str,cmd[0])==0)//用了strcmp函数来判断字符串是否相等 { printf("dir表示无参数:查看当前所在目录的文件\n"); } else if(strcmp(str,cmd[1])==0) { printf("cd 目录名:进入特定的目录。\n"); } else if(strcmp(str,cmd[2])==0) { printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹\n"); } else if(strcmp(str,cmd[3])==0) { printf("rd 目录名:删除特定的文件夹。\n"); } else if(strcmp(str,cmd[4])==0) { printf("cls 目录名:表示清屏功能\n"); } else if(strcmp(str,cmd[5])==0) { printf("data 设置日期命令,功能是设置日期\n"); } else if(strcmp(str,cmd[6])==0) { printf("time系统时钟设置命令,功能:设置或显示系统时期。\n"); } else if(strcmp(str,cmd[7])==0) { printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名目 的文件名。\n"); } else if(strcmp(str,cmd[8])==0) { printf("copy表示复制命令,他的功能的复制信息\n"); } else if(strcmp(str,cmd[9])==0) { printf("无参数:查看当前所在目录的文件和文件夹\n"); printf("cd 目录名:进入特定的目录。\n"); printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹)\n "); printf("rd 目录名:删除特定的文件夹。\n"); printf("cls 目录名:表示清屏功能\n"); printf("data 设置日期命令,功能是设置日期\n"); printf("TIME系统时钟设置命令,功能:设置或显示系统时期。\n"); printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名目 的文件名。\n"); printf("copy表示复制命令,他的功能的复制信息\n"); } else if(strcmp(str,cmd[10])==0) { return 0; } else { printf("你输入错误的信息,请重新输入:\n"); } } return 0; }
实验一、命令解释程序的编写实验
专业计算机科学与技术 姓名 胡洁如 学号 201306114125
一、 实验目的
(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. 源程序名:dos.cpp
- 2. 原理分析及流程图
本程序采用了c语言中的while语句和if „else if的嵌套的方法完成。将所需的命令字符串存到定义的数组内,从键盘输入利用strcmp进行筛选,若输入正确的命令会显示此命令的解释。输入“help”会提示,将命令提示全部显示出来,而输入“quit”就会退出程序。
- 3. 主要程序段及其解释:
见插入代码
- 4. 运行结果及分析
结果符合预期
三、 实验总结
刚开始,我总以为这个程序很难,一直在钻研,导致我两节课下来都没有做出来,后来经过同学的指点,我恍然大悟,原来是我把简单的问题复杂化了,下次我不会这样了,会看清楚实验要求的。