一、 实验目的

(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等。

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

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

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

#include<stdio.h>

#include<string.h>

void main() /*主函数*/

{

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("欢迎来到dos系统\n");

printf("quit :退出     help:显示所有功能\n");

c1: printf("请输入命令:");

scanf("%s",a);

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

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

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

}

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

{

int i;

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

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

{

switch(i)

{

case 0:printf("command name is dir.\nIt's function is list file.\nIt's an internal command.\nVolume in drive K gas no label.\nVolume Serial Number is 60F0-6C24\n\n");break;

case 1:printf("command name is cd.\nIt's function is change directory.\nIt's an internal command.\n");break;

case 2:printf("command name is md.\nIt's function is creat a new directory.\nIt's an internal command.\n");break;

case 3:printf("command name is rd.\nIt's function is delete a directory which is empty.\nIt's an internal command.\n");break;

case 4:printf("command name is cls.\nIt's function is clean screen\nIt's an internal command.\n");break;

case 5:printf("command name is date.\nIt's function is show date.\nIt's an internal command.\n");break;

case 6:printf("command name is time.\nIt's function is shio time.\nIt's an internal command.\n");break;

case 7:printf("command name is ren.\nIt's function is rename a file.\nIt's an internal command.\n");break;

case 8:printf("command name is copy.\nIt's function is copy files.\nIt's an internal command.\n");break;

case 9:printf("dir\tcd\tmd\trd\tcls\ndate\ttime\tren\tcopy\nEnter \" quit\" to quit this program!!\n");break;

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

}

return 1;}

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

 

}

 

 四、运行结果截图及分析

 

 

       当打开运行界面时,就出现

       欢迎来到dos系统

       quit :退出     help:显示所有功能

       请输入命令:

       然后当你输入各种命令就会出现相应的字符串

       输入help就会出现所有命令

       输入quit就会退出界面。

 四、实验心得

       通过这个简单地编写dos系统的程序,让我更加清楚更更加了解操作系统这门课,虽然程序很简单,功能也很简单,不过对我们来说挺有意义的。最开始学习操作系统这门课的时候,说实在的,对操作系统这个概念很模糊,觉得很抽象。然后后来慢慢学习之后发现挺有趣的,还可以自己编写简单的dos系统,给了我一些信心。

posted on 2015-10-10 15:52  50谢梓梅  阅读(220)  评论(0编辑  收藏  举报