操作系统-命令解释程序(实验一)

实验一  命令解释程序的编写(两周内)

一、目的和要求

1. 实验目的

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

(2)*掌握简单的DOS调用方法;

(3)掌握C语言编程初步。

2.实验要求

编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

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

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

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

(5)用户输入QUIT退出

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

二、实验内容

根据教师指定的实验课题,完成设计、编码、测试工作。

、实验环境

1.PC微机

2.Windows 操作系统

3.C/C++程序开发集成环境

四、实验核心算法及运用文档

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 char or[19][20]={"dir","cd","md","rd","cls","date","time","ren","copy","javac","java","erase","chkntfs","assoc","at","attrib","call","help","quit"};
 5 char order[10];
 6 void cmd(int i);
 7 void main()
 8 {
 9     int i;
10     printf("Microsoft Windows [版本 6.1.7601]
");
11     printf("版权所有 <c> 2009 Microsoft Corporation。版权所有权利。

");
12     while(1)
13     {
14         printf("C:\Users\USER>");
15         gets(order);
16         if(strcmp(order,"
")==1)
17         {
18             for(i=0;i<19;i++){
19                 if(stricmp(order,or[i])==0)
20                     break;
21             }
22             if(i==19)
23                 printf(""%s"不是内部或外部命令,也不是可运行的程序或批处理文件。

",order);
24             else if(i==18)
25                 break;
26             else if(i==4)
27                 system("cls");
28             else{
29                 cmd(i);
30                 //system(order);
31                 printf("
");
32             }
33         }
34     }
35 }
36 
37 
38 void cmd(int i){
39     FILE *fp;
40     int j;
41     int os[19][30];
42     fp=fopen("order.txt","r+");
43     for(j=0;j<19;j++)
44         fscanf(fp,"%s",os[j]);
45     fclose(fp);
46     if(i>=0&&i<=16)
47         printf(""%s"内部命令输入正确。
",order);
48     else
49         printf(""%s"外部命令输入正确。
",order);
50     if(i==17){
51         for(j=0;j<19;j++){
52             printf("%s	",or[j]);
53             if(j>=0&&j<=16)
54                 printf("内部命令   ");
55             else
56                 printf("外部命令   ");
57             printf("%s
",os[j]);
58         }
59 
60     }
61     else if(i==4){
62         system(order);
63     }
64     else
65         printf("该命令的作用是:%s",os[i]);
66     printf("
");
67 }

五、运行结果

六、实验总结

    这次实验可以说是一次很简单的实验,有很多运用到的代码都是以前做大作业的时候写过的了。但是还是存在一些问题,比如这次实验的拓展题就让我有些不知道怎么下手,因为cmd命令解释,如果用所以说system(order);这句代码的话就可以照样的输出本机cmd命令解释的,如果不用的话,暂时还没有想出怎么去写这个代码。

原文地址:https://www.cnblogs.com/moliny/p/5315121.html