实验一 认识DOS

实验一、认识DOS实验

物联网工程   郑伯瑜  201306104134

一、 实验目的

1)认识DOS

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

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

4)掌握C语言编程初步

二、 实验内容和要求

 编写类似于DOSUNIX的命令行解释程序

1)自行定义系统提示符

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

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

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

5)用户输入QUIT退出

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

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

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

1. 源程序名:1.c

可执行程序名:1.exe

2. 原理分析及流程图

设计思路

      通过数组来存储命令符,再用switch函数判断输入的命令是否有符合的case,有则输出对应的提示,没有则提示错误。

流程图

3. 主要程序段及其解释:

char *b[11]={"dir","cd","md","rd","cls","date","time","ren","copy","help", "quit"}; /*指针数组存储关键字*/

int pan(char ch1[],char *j[11]);

char a[10],*p=a;

printf("Pleas enter a command! Enter 'quit' to quit. For help,Enter 'help'. ");

c1: printf("c:");

scanf("%s",a);

pan(p,b); /*函数调用*/

if(strcmp(a,b[10])!=0) /*比较输入的字符串是否quit结束命令*/ goto c1;

else printf("out of work!! ");

}

int pan(char ch1[],char *j[11]) /*子函数*/

{

int i;

for( i=0;i<11;i++)

if(strcmp(ch1,j[i])==0) /*比较输入的字符串与数组的关键字是否相等*/

{

switch(i) /*用switch函数判断输入的是什么命令对应输出的文字*/

{

case 0:printf("command name is dir. dir表示无参数:查看当前所在目录的文件和文件夹 ");break;

case 1:printf("command name is cd. cd 目录名:进入特定的目录 ");break;

case 2:printf("command name is md. md 目录名:建立特定的文件夹 dos下面习惯叫目录,win下面习惯叫文件夹 ");break;

case 3:printf("command name is rd. rd 目录名:删除特定的文件夹 ");break;

case 4:printf("command name is cls. cls 目录名:表示清屏功能 ");break;

case 5:printf("command name is date. date 设置日期命令,功能是设置日期 ");break;

case 6:printf("command name is time. time 系统时钟设置命令,功能:设置或显示系统时期 ");break;

case 7:printf("command name is ren. ren 表示文件改个名字,ren命令的格式是:ren 源文件名目的文件名 ");break;

case 8:printf("command name is copy. copy 表示复制命令,他的功能的复制信息 ");break;

case 9:printf("dir 表示无参数:查看当前所在目录的文件和文件夹 ");
          printf("cd 目录名:进入特定的目录 ");
          printf("md 目录名:建立特定的文件夹 dos下面习惯叫目录,win下面习惯叫文件夹 ");
          printf("rd 目录名:删除特定的文件夹 ");
          printf("cls 目录名:表示清屏功能 ");
          printf("date 设置日期命令,功能是设置日期 ");
          printf("time 系统时钟设置命令,功能:设置或显示系统时期 ");
          printf("ren 表示文件改个名字,ren命令的格式是:ren 源文件名目的文件名 ");
          printf("copy 表示复制命令,他的功能的复制信息 ");
          printf("Enter " quit" to quit this program!! ");
          break;

case 10:printf("Thanks for using it,bye!! ");break;

}

 

4. 运行结果及分析

四、实验总结

      通过这次实验,我大概了解DOS系统。因为在大一时有学习C语言程序设计,所以对于这个程序相对来说没有太大的难度。其中,有遇到一些错误,例如括号的匹配问题,无法换行等问题,都能很快得到解决。其余方面,没有多大的问题。在这次实验中,自己对DOS有了初步的认识,希望在后面的学习中能有机会继续深入了解。

原文地址:https://www.cnblogs.com/boyuzheng/p/4859196.html