操作系统命令行解释
實驗一 命令解釋程序的編寫
一、 實驗目的
(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等。
三、 實驗方法、步驟及結果測試
1主要總體設計問題。
主要間斷的通過一個循環就可以實現要求,循環加選擇判斷的語句格式
整體大致思路:
顯示程序提示信息;
While(1) (循環語句)
{ 顯示提示符;
接收鍵盤的字符串;
判斷是否quit程序退出指令,是則退出;
(利用if-else語句進行分支選擇,用a.equals("help")對字符串進行判斷)
判斷是否內部命令,并給出相應的信息,否則給出錯誤信息;
}
顯示退出程序信息;
2. 主要程序段及其解釋:
主要功能的程序段:
while(true) //程序循環體,用戶循環輸入
{
a=null;
System.out.printf("C:/>"); //提示輸入
a=sc.nextLine(); //獲取用戶輸入的字符
if(a.equals("quit")||a.equals("exit")) //先判斷是否退出
{
System.out.printf("退出命令,謝謝使用!拜拜。。");
System.exit(0);
}
else if(a.equals("help")||a.equals("HELP")) //打印所有的內部系統命令
System.out.println("help||exit---幫助\ncopy---復制\nmd---創建文件夾 \ntime---修改系統時間 "
+ "\nver---查詢系統版本 \nmove---移動文件夾或文件 \nrd---刪除文件夾或文件 \ntype---顯示文本文件 "
+ "\ndir---顯示目錄\ncls---清屏");
//個別命令的判斷
else if(a.equals("copy")||a.equals("COPY"))
System.out.println("系統命令:復制");
else if(a.equals("MD")||a.equals("md"))
System.out.println("系統命令:創建文件夾");
else if(a.equals("time")||a.equals("TIME"))
System.out.println("系統命令:修改系統時間");
else if(a.equals("ver")||a.equals("VER"))
System.out.println("系統命令:查詢系統版本");
else if(a.equals("move")||a.equals("MOVE"))
System.out.println("系統命令:移動文件夾或文件");
else if(a.equals("rd")||a.equals("RD"))
System.out.println("系統命令:刪除文件夾或文件");
else if(a.equals("type")||a.equals("TYPE"))
System.out.println("系統命令:顯示文本文件");
else if(a.equals("dir")||a.equals("DIR"))
System.out.println("系統命令:顯示目錄");
else if(a.equals("cls")||a.equals("CLS"))
System.out.println("系統命令:清屏");
else
System.out.println("沒有該內部系統命令,請重試,或退出“quit”");
}
3. 運行結果及分析
結果符合預期及其分析。
程序執行:
程序help命令可打印出程序設定的命令提示符:
個別命令的提示:
非內部命令的輸入:
退出:
四、 實驗總結
在這次的實驗里面,其實內容根要求不難,理清楚思路之后可以用簡單的語句實現基本功能,這次實驗運用一個循環結構為大致框架,可以讓用戶輸入命令字符串一次又一次,直到輸入退出命令才退出循環,推出程序。
其中,要判斷是否內部命令,只需要用if-else語句和equals()酒可以進行判斷選擇。程序就基本出來了。這一次本想按照老師德想法利用文檔,但是沒清楚怎么做,失敗沒做出來,但是還是會繼續嘗試的。
總結
- 上一篇: 函数动态参数实现format
- 下一篇: Qt图片自适应窗口控件大小(使用setS