实验一 命令解释程序的编写(两周内)
一、目的和要求
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 char cmd[11][11]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};
3 char str[10];
4 int i;
5 main()
6 {
7 printf("Microsoft Windows [版本 6.1.7601]\n");
8 printf("版权所有 <c> 2009 Microsoft Corporation。保留所有权利\n\n");
9 while(1){
10 printf("C:\Users\Administrator>");
11 gets(str);
12 for(i=0;i<11;i++)
13 {
14 if(strcmp(str,cmd[0])==0)
15 {
16 printf("'dir'内部命令输入正确!\n");
17 printf("该命令作用是:显示一个目录中的文件和子目录。\n\n\n");
18 break;
19 }
20 if(strcmp(str,cmd[1])==0)
21 {
22 printf("'cd'内部命令输入正确!\n");
23 printf("该命令作用是:显示当前目录的名称或将其更改。\n\n\n");
24
25 break;
26 }
27 if(strcmp(str,cmd[2])==0)
28 {
29 printf("'md'内部命令输入正确!\n");
30 printf("该命令作用是:创建一个目录。\n\n\n");
31
32 break;
33 }
34 if(strcmp(str,cmd[3])==0)
35 {
36 printf("'rd'内部命令输入正确!\n");
37 printf("该命令作用是:删除目录。\n\n\n");
38
39 break;
40 }
41 if(strcmp(str,cmd[4])==0)
42 {
43 printf("'cls'内部命令输入正确!\n");
44 printf("该命令作用是:清除屏幕。\n\n\n");
45
46 break;
47 }
48 if(strcmp(str,cmd[5])==0)
49 {
50 printf("'date'内部命令输入正确!\n");
51 printf("该命令作用是:显示或设置日期。\n\n\n");
52
53 break;
54 }
55 if(strcmp(str,cmd[6])==0)
56 {
57 printf("'time'内部命令输入正确!\n");
58 printf("该命令作用是:内部命令显示或设置系统时间。\n\n\n");
59
60 break;
61 }
62 if(strcmp(str,cmd[7])==0)
63 {
64 printf("'ren'内部命令输入正确!\n");
65 printf("该命令作用是:重新命名文件。\n\n\n");
66
67 break;
68 }
69 if(strcmp(str,cmd[8])==0)
70 {
71 printf("'cope'内部命令输入正确!\n");
72 printf("该命令作用是:将至少一个文件复制到另一个位置。\n\n\n");
73 return 0;
74 break;
75 }
76 if(strcmp(str,cmd[9])==0)
77 {
78 printf("类型:外部命令\n");
79 printf("有关某个命令的详细信息,请键入 HELP 命令名\n");
80 printf("dir\t内部命令 显示一个目录中的文件和子目录。\n");
81 printf("cd\t内部命令 显示当前目录的名称或将其更改。\n");
82 printf("md\t内部命令 创建一个目录。\n");
83 printf("rd\t内部命令 删除目录。.\n");
84 printf("cls\t内部命令 清除屏幕。\n");
85 printf("date\t内部命令 显示或设置日期。\n");
86 printf("time\t内部命令 内部命令显示或设置系统时间。\n");
87 printf("ren\t内部命令 重新命名文件。\n");
88 printf("cope\t内部命令 将至少一个文件复制到另一个位置。\n");
89 printf("help\t外部命令 提供Windows命令的帮助信息。\n");
90 printf("quit\t外部命令 退出命令解释程序。\n\n\n");
91 break;
92 }
93 if(strcmp(str,cmd[10])==0)
94 {
95 printf("'quit'外部命令输入正确!\n");
96 printf("该命令作用是:退出命令解释程序。\n\n\n");
97 exit(1);
98 break;
99 }
100 if(strcmp(str,cmd[i])!=0)
101 {
102 printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件。\n\n\n");
103 break;
104 }
105 }
106 }
107 }