1006实验一实验报告
實驗一報告
實驗一、DOS命令解釋程序的編寫
13物聯網工程 ?張學玲 ?201306104140
一、?實驗目的
(1)認識DOS;
(2)掌握命令解釋程序的原理;
(3)掌握簡單的DOS調用方法;
(4)掌握C語言編程初步。
?
二、?實驗內容和要求
編寫類似于DOS,UNIX的命令行解釋程序
(1)自行定義系統提示符
(2)自定義命令集(8-10個)
(3)用戶輸入HELP以查找命令的幫助
(4)列出命令的功能,區分內部還是外部命令
(5)用戶輸入QUIT退出
(6)內部命令有dir,?cd,?md,rd,?cls,?date,?time,?ren,?copy等。
根據要求,完成設計、編碼、測試工作。
三、?實驗方法、步驟及結果測試
? ? ? ? ? 可執行程序名:zxl.exe
? ? ?2.原理分析及步驟
??原理分析:分別定義一個一維數組和一個二維數組,一位數組用于存放用戶輸入發命令,二維數組存放各種內部命令,當用戶輸入各個命令時,都有相對應的提示顯示。
步驟:首先,定義一位數組用于存放用戶輸入發命令,二維數組存放各種內部命令;然后,用strcmp函數來判斷用戶輸入的字符串是否與數組里的字符串相等,如果相等,則輸出printf里的提示,如果不相等,則提示錯誤。
? ? ?3.主要程序段及其解釋
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char cmd[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};//定義了個二維數組,存放各種內部命令
char str[20]={0};//定義一個一維數組,用于存放用戶輸入發命令
while(1)
{
printf("Welcome to DOS!\nPlease enter the command:");
scanf("%s",&str);
if(strcmp(str,cmd[0])==0)//用了strcmp函數來判斷字符串是否相等
{
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("copy可復制信息\n");
}
else if(strcmp(str,cmd[9])==0)
{
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("copy可復制信息\n");
}
else if(strcmp(str,cmd[10])==0)
{
return 0;
}
else
{
printf("你輸入錯誤的信息,請重新輸入:\n");
}
}
return 0;
}
?
? ? ? 4.運行結果及分析
起始頁面及help:
?dir命令:
cd命令:
?
date命令:
time命令:
?
四、?實驗總結
?DOS命令解釋程序的編寫不是很難,但是做起來得花些時間。定義數組,用于存放命令,用strcmp函數來判斷字符串是否相等。在運行的過程中也有出現錯誤,是二維數組里的數字設置得太小導致出現問題,經過修改,就沒有錯誤了。利用if,else if 以及else將各個字符所代表的不同含義一一列舉,這樣子很清晰地呈現出程序整體的結構。
轉載于:https://www.cnblogs.com/zxl467408826/p/4859184.html
總結
以上是生活随笔為你收集整理的1006实验一实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1502: [NOI2005]月下柠檬树
- 下一篇: matlab 点云曲率,点云数据的主曲率