实验一、命令解释程序实验

一、        实验目的

 

(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. 1.      源程序名:压缩包文件(rarzip)中源程序名 MiniOS.c

可执行程序名:MiniOS.exe

  1. 2.      原理分析及流程图

采用数组的存储结构。

主要算法: 

显示程序提示信息;

While(1) 

{ 显示提示符; 

接收键盘的字符串; 

判断是否quit程序退出指令,是则退出; 

判断是否内部命令,并给出相应的信息,否则给出错误信息; 

} 

显示退出程序信息

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

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

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

           {    

                  switch(i)   

                  {    

                  case 0:

                         printf("dir 显示一个目录中的文件和子目录。\n");

                         break;    

                  case 1:

                         printf("cd 显示当前目录的名称或将其更改。\n");

                         break;    

                  case 2:

                         printf("md 创建目录。\n");

                         break;    

                  case 3:

                         printf("rd 删除目录。\n");

                         break;    

                  case 4:

                         printf("cls 清除屏幕。\n");

                         break;    

                  case 5:

                         printf("date 显示或设置日期。\n");

                         break;    

                  case 6:

                         printf("time 显示或设置系统时间。\n");

                         break;    

                  case 7:

                         printf("ren 重命名文件。\n");

                         break;    

                  case 8:

                         printf("copy 将至少一个文件复制到另一个位置。\n");

                         break;

                  case 9:

                         printf("javac 将某一个java程序进行编译。\n");

                         break;

                  case 10:

                         printf("java 运行某一个已编译的java文件。\n");

                         break; 

                  case 11:

                         printf("erase 删除至少一个文件。\n");

                         break; 

                  case 12:

                         printf("chkntfs 显示或修改启动时间磁盘检查。\n");

                         break;

                  case 13:

                         printf("assoc 显示或修改文件扩展名关联。\n");

                         break;

                  case 14:

                         printf("at 计划在计算机上运行的命令和程序。\n");

                         break;

                  case 15:

                         printf("attrib 显示或更改文件属性。\n");

                         break;

                  case 16:

                         printf("call 从另一个批处理程序调用这一个。\n");

                         break;

                  case 17:

                      printf("dir\tcd\tmd\trd\tcls\ndate\ttime\tren\tcopy\tjavac\njava\terase\tchkntfs\tassoc\tat\nattrib\tcall\nEnter \" quit\" to quit this program!!\n");

                         break;    

                  case 18:

                         printf("Thanks for using it,bye!!\n");

                         break;    }    

                  return 1;

}  

           printf("No this one!!\nNot a internal commal.\n");

           return 0;

根据输入的字符串,输出相应的信息。

  1. 4.      运行结果及分析

 

 

四、        实验总结

  这次实验用了switch case语句,优点是便于自己编写简单点,而缺点是没有读取文件方便。

 

posted @ 2016-03-21 21:24  12冯婉莹  阅读(154)  评论(0编辑  收藏  举报