天天看點

實驗一、指令解釋程式的編寫

實驗一、指令解釋程式的編寫

商軟2班 王大華 221

一、    實驗目的

(1)掌握指令解釋程式的原理;

(2)掌握簡單的DOS調用方法;

(3)掌握C語言程式設計初步。

二、    實驗内容和要求

編寫類似于DOS,UNIX的指令行解釋程式

(1)自行定義系統提示符

(2)自定義指令集(8-10個)

(3)使用者輸入HELP以查找指令的幫助

(4)列出指令的功能,區分内部還是外部指令

(5)使用者輸入QUIT退出

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

源程式:

實驗一、指令解釋程式的編寫
實驗一、指令解釋程式的編寫

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
main()
{ 
char cmd[20][20]={"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"}; 
char str[10]; 
int i;
printf("Microsoft Windows XP [版本 5.1.2600]\n");
printf("<c> 版權所有 1985-2001 Microsoft Corp.\n");
printf(" \n"); 
while(1){ 
printf("C:\Documents and Settings\hskd>"); 
gets(str);
strlwr(str); 
for(i=0;i<20;i++){ 
{ 
if(strcmp(str,cmd[0])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用:檢視目前的目錄\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[1])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:顯示目前目錄的名稱\n"); 
printf("\n"); printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[2])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:建立一個新目錄\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[3])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:删除該目錄\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[4])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:清屏\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[5])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:顯示或設定日期\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[6])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:顯示或設定系統時間\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[7])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:重命名檔案\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[8])==0) 
{ 
printf("内部指令 輸入正确\n"); 
printf("該指令的作用是:将至少一個檔案複制到另一個位置\n"); 
printf("\n"); 
printf("\n"); 
break; 
} 
else if(strcmp(str,cmd[9])==0) 
{ 
return 0;

} 
else if(strcmp(str,cmd[10])==0) 
{ 
printf("有關某個指令的詳細資訊,請鍵入HELP指令名\n"); 
printf("dir\t 顯示一個目錄中的檔案和子目錄。\n"); 
printf("cd\t 顯示目前目錄的名稱或将其更改。\n"); 
printf("md\t 建立一個目錄。\n"); 
printf("rd\t 删除目錄。.\n"); 
printf("cls\t 清除螢幕。\n"); 
printf("date\t 顯示或設定日期。\n"); 
printf("time\t 内部指令顯示或設定系統時間。\n"); 
printf("ren\t 重新命名檔案。\n"); 
printf("cope\t 将至少一個檔案複制到另一個位置。\n"); 
printf("help\t 提供Windows指令的幫助資訊。\n"); 
printf("quit\t 退出指令解釋程式\n"); 
printf("\n"); 
printf("\n"); 
break; 
}
else if(strcmp(str,cmd[i])!=0)
{ 
printf("此指令不是内部或外部指令,也不是可運作的程式或批處理檔案!\n"); 
printf("\n"); 
break;
} 
} 
} 
} 
}