天天看點

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

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

商軟2班   李浩然  201406114227

一、 實驗目的

(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<string.h>
char *cmd[]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};
void Strcmp1(char *str){
    if(strcmp(str,cmd[0])==0){
        printf("dir 内部指令 顯示一個目錄的檔案和子目錄\n");  }  
    else if(strcmp(str,cmd[1])==0){
        printf("cd  内部指令 顯示目前目錄的名稱或将其更改\n");}
    else if(strcmp(str,cmd[2])==0){
        printf("md  内部指令 建立一個目錄\n");}
    else if(strcmp(str,cmd[3])==0){
        printf("rd  内部指令 删除目錄\n");}
    else if(strcmp(str,cmd[4])==0){
        printf("cls 内部指令 清除螢幕\n");}
    else if(strcmp(str,cmd[5])==0){
        printf("date 内部指令 顯示或設定日期\n");}
    else if(strcmp(str,cmd[6])==0){
        printf("time 内部指令 内部指令顯示或設定系統時間\n");}
    else if(strcmp(str,cmd[7])==0){
        printf("ren 内部指令 重新命名檔案\n");}
    else if(strcmp(str,cmd[8])==0){
        printf("cope 内部指令 将至少一個檔案複制到另一個位置\n");}
    else if(strcmp(str,cmd[9])==0)
    {
        printf("有關某個指令的詳細資訊,請鍵入 HELP 指令名\n");
        printf("dir 内部指令 顯示一個目錄的檔案和子目錄\n");
        printf("cd  内部指令 顯示目前目錄的名稱或将其更改\n");
        printf("md  内部指令 建立一個目錄\n");
        printf("rd  内部指令 删除目錄\n");
        printf("cls 内部指令 清除螢幕\n");
        printf("date 内部指令 顯示或設定日期\n");
        printf("time 内部指令 内部指令顯示或設定系統時間\n");
        printf("ren 内部指令 重新命名檔案\n");
        printf("cope 内部指令 将至少一個檔案複制到另一個位置\n");
        printf("help 外部指令 提供Window指令的幫助資訊\n");
        printf("quit 外部指令 退出指令解釋程式\n");
        printf("有關某個工具的詳細資訊,請參閱聯機幫助中的指令行參考\n\n");
    }
    else if(strcmp(str,cmd[10])==0)
        exit(0);
    else
    {    
        printf("'%s'不是内部或外部指令,也不是可運作的程式\n",str);
        printf("或批處理檔案。\n");
    }


}
main()
{
    char str[10];
    printf("Microsoft Windows [版本 6.1.7601]\n");
    printf("版權所有 (c) 2009 Microsoft Corporation。保留所有權利\n\n");    
    while(1)
    {
        printf("C:/Users/Administrator>");
        scanf("%s",str);
        Strcmp1(str);
    }

}