一、目的和要求
1. 实验目的
(1)认识DOS;
(2)掌握命令解释程序的原理;
(3)掌握简单的DOS调用方法;
(4)掌握C语言编程初步。
2.实验要求
编写类似于DOS,UNIX的命令行解释程序
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir, cd, md,rd, cls, date, time, ren, copy等。
二、实验内容
根据要求,完成设计、编码、测试工作。
三、实验环境
1.PC微机
2.Windows 操作系统
3.C/C++程序开发集成环境
四、实验原理及核心算法参考程序段
#include<stdio.h> #include<string.h> main() { char cmd[20][20]={"dir", "cd"," md","rd", "cls", "date","time","ren","copy","help","quit"}; char str[20]; while(1) { printf("请输入显示符"); gets(str); if(strcmp(str,cmd[0])==0) { printf("dir:内部命令 显示一个目录中的文件和子目录。 "); } else if(strcmp(str,cmd[1])==0) { printf("cd:内部命令 显示当前目录的名称或将其更改。 "); } else if(strcmp(str,cmd[2])==0) { printf("md:内部命令 创建一个目录。 "); } else if(strcmp(str,cmd[3])==0) { printf("rd:内部命令 删除目录。 "); } else if(strcmp(str,cmd[4])==0) { printf("cls:内部命令 清除屏幕。 "); } else if(strcmp(str,cmd[5])==0) { printf("data:内部命令 显示或设置日期。 "); } else if(strcmp(str,cmd[6])==0) { printf("time:内部命令 内部命令显示或设置系统时间。. "); } else if(strcmp(str,cmd[7])==0) { printf("ren:内部命令 重新命名文件。 "); } else if(strcmp(str,cmd[8])==0) { printf("copy:内部命令 将至少一个文件复制到另一个位置。 "); } else if(strcmp(str,cmd[9])==0) { printf("类型:外部命令 "); printf("dir 内部命令 显示一个目录中的文件和子目录。 "); printf("cd 内部命令 显示当前目录的名称或将其更改。 "); printf("md 内部命令 创建一个目录。 "); printf("rd 内部命令 删除目录。. "); printf("cls 内部命令 清除屏幕。 "); printf("date 内部命令 显示或设置日期。 "); printf("time 内部命令 内部命令显示或设置系统时间。 "); printf("ren 内部命令 重新命名文件。 "); printf("copy 内部命令 将至少一个文件复制到另一个位置。 "); printf("help 外部命令 提供Windows命令的帮助信息。 "); printf("quit 外部命令 退出命令解释程序 "); printf(" "); printf(" "); } else if(strcmp(str,cmd[10])==0) { printf("quit:886 :"); return; } else { printf("你输入错误的信息,请重新输入: "); } } }
实验结果分析:
1.用户进入界面后:
2:输入help后显示:
3:举例输入date:
五:实验总结
对于这次的实验,总体来说还是对之前C语言的知识有所遗忘。刚开始并不知道该如何下手,但上网查阅资料后便顺利了很多。