實驗一 指令解釋程式的編寫(兩周内)
一、目的和要求
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 }