实验一报告

 

实验一、DOS命令解释程序的编写

13物联网  李小娜  201306104148

一、 实验目的

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.原理分析及流程图

  原理分析:先将命令符用一个字符串数组存储起来等待用户输入命令进行匹配,然后将用户输入的命令用另一数组存起来,而后将该命令与已有的命令逐一进行比较,对比相同则输出对应内容,若对比后都不相同则提醒用户输入有错。

 

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

 

#include<stdio.h>
#include<string.h>//字符串头文件
void main()
{
 char *a[11]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};
 //字符指针数组a用于存储命令符,数组b存储用户输入的命令符
 char b[11];
 printf("欢迎使用,输入help可显示所有命令\n");
 while(1){
   printf("操作系统>实验一>DOS>");
   scanf("%s",b); //用户输入命令符
   //输入的命令与数组各元素进行比较,对应匹配成功执行相关功能
   //strcmp功能为将两参数进行对比,对比完全一致则为0
   if(strcmp(b,a[0])==0)
   { printf("\tdir:内部命令,查看当前所在目录的文件和文件夹\n");}
  else if(strcmp(b,a[1])==0)
   { printf("\tcd:内部命令,进入特定的目录\n");}
  else if(strcmp(b,a[2])==0)
   { printf("\tmd:内部命令,建立特定的文件夹\n");}
 else if(strcmp(b,a[3])==0)
   { printf("\trd:内部命令,删除特定的文件夹\n");}
 else if(strcmp(b,a[4])==0)
   { printf("\tcls:内部命令,清屏功能\n");}
 else if(strcmp(b,a[5])==0)
   { printf("\tdate:内部命令,设置日期功能\n");}
 else if(strcmp(b,a[6])==0)
   { printf("\ttime:内部命令,设置或显示系统时期\n");}
 else if(strcmp(b,a[7])==0)
   { printf("\tren:内部命令,更改文件名称\n");}
 else if(strcmp(b,a[8])==0)
   { printf("\tcopy:内部命令,拷贝一个或多个文件到指定盘\n");}
 else if(strcmp(b,a[9])==0)
   { 
            printf("\tdir:内部命令,查看当前所在目录的文件和文件夹\n");
            printf("\tcd:内部命令,进入特定的目录\n");
            printf("\tmd:内部命令,建立特定的文件夹\n");
            printf("\trd:内部命令,删除特定的文件夹\n");
            printf("\tcls:内部命令,清屏功能\n");
            printf("\tdate:内部命令,设置日期功能\n");
            printf("\ttime:内部命令,设置或显示系统时期\n");
            printf("\tren:内部命令,更改文件名称\n");
            printf("\tcopy:内部命令,拷贝一个或多个文件到指定盘\n");
            printf("\tquit:退出\n");}
 else if(strcmp(b,a[10])==0)
   { return ;}//return 为退出函数
else {printf("\t输入有错,请重新输入!\n");}    //若都匹配不成功则显示输入有错提示
 }
}

 

 

      4.运行结果及分析

用户进入界面后,给出使用提示:

 

输入help可显示所有命令符及其作用:

 

 

举例输入time命令后的界面:

 

输入命令符出错,给予输错提示:

 

输入quit,退出程序:

 

四、 实验总结

  本次实验其实不会太难,只是太久没运用C语言的知识,一开始有些生疏。其中遇到的问题主要是使用字符串处理函数strcmp进行比较用户输入的命令与原有命令的大小;另一问题则是实现当输入quit时直接退出函数的功能,开始想到用exit函数实现,找了点资料后知道要引用头文件sdlib.h,后发现可直接简单的使用return语句便可实现功能。

 

posted on 2015-10-07 15:49  48李小娜  阅读(246)  评论(0编辑  收藏  举报

导航