实验一 认识DOS

实验一、认识DOS实验

专业:物联网工程   姓名:柴铱琳  学号:201306104132

一、 实验目的

(1)认识DOS;

(2)掌握命令解释程序的原理;

(3)掌握简单的DOS调用方法;

(4)掌握C语言编程初步。

二、 实验内容和要求

要求:编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

(2)自定义命令集(8-10个)

(3)用户输入HELP以查找命令的帮助

(4)列出命令的功能,区分内部还是外部命令

(5)用户输入QUIT退出

(6)内部命令有dir, cd, md,rd, cls, date, time, ren, copy等。

内容: 根据要求,完成设计、编码、测试工作。

三、 实验方法、步骤及结果测试

1.源程序名:dos.c

2.可执行程序名:dos.exe

3.原理分析:主要算法采用if、else算法以及strcmp比较算法。先定义好一个数组,往里面输入事先定义好的11个字符,等待用户输入字符,然后通过函数的比较与选择,在屏幕上打印出所对应的解释。检测到输入QUIT字符则返回程序的开始;检测到输入没有被定义的字符则提示输入错误。

4.程序:

#include <stdio.h>

#include <string.h>

void main()

{

char ord[20][20]={"mem","arp","attrib","dir","set","pause","help","call","for","echo","QUIT"};

char str[20];

while(1)

{

printf("Please enter your order:");

gets(str);    //接收用户输入的字符

if(strcmp(str,ord[0])==0)  //字符串比较函数

printf("mem:查看CPU使用情况. ");

else if(strcmp(str,ord[1])==0)  //如果输入的字符与定义的相同,即等于0,则打印下列字符

printf("arp:查看和处理ARP缓存. ");

else if(strcmp(str,ord[2])==0)

printf("attrib:文件/目录名,查看某文件/目录的属性. ");

else if(strcmp(str,ord[3])==0)

printf("dir:查看文件,参数. ");

else if(strcmp(str,ord[4])==0)

printf("set:显示当前所有的环境名称. ");

else if(strcmp(str,ord[5])==0)

printf("pause:暂停批处理程序,并显示‘请按任意键继续’. ");

else if(strcmp(str,ord[6])==0)

{

printf("mem:查看CPU使用情况. ");

printf("arp:查看和处理ARP缓存. ");

printf("attrib:文件/目录名,查看某文件/目录的属性. ");

printf("dir:查看文件,参数. ");

printf("set:显示当前所有的环境名称. ");

printf("pause:暂停批处理程序,并显示请按任意键继续. ");

printf("call:路径、批处理文件名. ");

printf("for:对一组文件中的每一个文件执行某个特定命令. ");

printf("echo:信息,在屏幕上显示出信息. ");

}

else if(strcmp(str,ord[7])==0)

printf("call:路径、批处理文件名. ");

else if(strcmp(str,ord[8])==0)

printf("for:对一组文件中的每一个文件执行某个特定命令. ");

else if(strcmp(str,ord[9])==0)

printf("echo:信息,在屏幕上显示出信息. ");

else if(strcmp(str,ord[10])==0)

return;   //如果输入QUIT,则返回

else printf("Wrong!Enter again: ");

}

}

5.流程图:

6.运行结果:

四、  实验总结

      在实验的过程中,如何使程序能够辨别我输入的指令是否与原先定义的指令一致,是我认为最困难的一点。通过上网查阅资料以及对C语言的学习了解,最后选择了strcmp这一比较函数,将输入的指令与定义好的相比较,如果一致,则赋值为0,进入printf语句,在屏幕上打印出指令的内容。最终使程序能够成功实现想要的效果。

原文地址:https://www.cnblogs.com/chyl/p/4864885.html