一、 实验目的
(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系统,给了我一些信心。