日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OS实验一实验报告

發布時間:2023/11/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OS实验一实验报告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗一、命令解釋程序的編寫實驗

專業:商業軟件工程?? 姓名:王澤鍇? 學號:201406114113

一、實驗目的

(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.源程序名:MiniOS.cpp

     可執行程序名:MiniOS.exe

    2.原理分析及流程圖

    進入程序操作頁面,輸入命令后,判斷是否存在相應的命令,如果不存在則提示說命令錯誤。如果存在則輸入該命令是內部命令或者外部命令,并解釋該命令的作用。

    3.主要程序段及其解釋:

    #include<stdio.h>

    #include<stdlib.h>

    #include<string.h>

    #define N 30

    main()

    {

    ??? char str[N];

    ??? int i,j;

    ??? char cmd[N][N] = {"dir","cd","md","rd","cls","date","time","ren","copy","quit","help"};

    ??? printf("Microsoft Windows XP [版本 5.1.2600]\n");

    ??? printf("<C> 版權所有 1985-2001 Microsoft Crop.\n");

    ??? while(1)

    ??? {

    ?????????? printf("\nC:\\Documents and Settings\Administrator>");

    ?????????? gets(str);

    ?????????? for(i=0;i<20;i++)

    ?????????? {??????

    ????????????????? {??

    ???????????????????????? if(strcmp(str,cmd[0])==0)?

    ???????????????????????? {???

    ??????????????????????????????? printf("類型:內部命令\n");?

    ??????????????????????????????? printf("顯示一個目錄中的文件和子目錄。\n");???????

    ??????????????????????????????? break;?????

    ???????????????????????? }?

    ???????????????????????? else if(strcmp(str,cmd[1])==0)

    ???????????????????????? {???

    ??????????????????????????????? printf("類型:內部命令\n");???

    ??????????????????????????????? printf("顯示當前目錄的名稱或將其更改。\n");???????

    ??????????????????????????????? break;????

    ???????????????????????? }???

    ???????????????????????? else if(strcmp(str,cmd[2])==0)??

    ???????????????????????? {??

    ??????????????????????????????? printf("類型:內部命令\n");??

    ??????????????????????????????? printf("創建一個目錄。\n");?????

    ??????????????????????????????? break;??

    ???????????????????????? }? ??

    ???????????????????????? else if(strcmp(str,cmd[3])==0)???

    ???????????????????????? {?

    ??????????????????????????????? printf("類型:內部命令\n");???

    ??????????????????????????????? printf("刪除目錄。\n");???

    ??????????????????????????????? break;?????

    ???????????????????????? }???

    ???????????????????????? else if(strcmp(str,cmd[4])==0)???

    ???????????????????????? {?????????

    ??????????????????????????????? printf("類型:內部命令\n");??

    ??????????????????????????????? printf("清除屏幕。\n");

    ??????????????????????????????? break;????

    ???????????????????????? }??

    ???????????????????????? else if(strcmp(str,cmd[5])==0)??

    ???????????????????????? {???

    ??????????????????????????????? printf("類型:內部命令\n");

    ??????????????????????????????? printf("顯示或設置日期。\n");????

    ??????????????????????????????? break;?????

    ???????????????????????? }??

    ???????????????????????? else if(strcmp(str,cmd[6])==0)?

    ???????????????????????? {??

    ??????????????????????????????? printf("類型:內部命令\n");????

    ??????????????????????????????? printf("內部命令顯示或設置系統時間。\n");??????

    ??????????????????????????????? break;???

    ???????????????????????? }?

    ???????????????????????? else if(strcmp(str,cmd[7])==0)?

    ???????????????????????? {??

    ??????????????????????????????? printf("類型:內部命令\n");???

    ??????????????????????????????? printf("重新命名文件。\n");?????

    ??????????????????????????????? break;???

    ???????????????????????? }???

    ???????????????????????? else if(strcmp(str,cmd[8])==0)?????

    ???????????????????????? {????

    ??????????????????????????????? printf("類型:內部命令\n");??

    ??????????????????????????????? printf("將至少一個文件復制到另一個位置。\n");????

    ??????????????????????????????? break;???

    ???????????????????????? }??????

    ???????????????????????? else if(strcmp(str,cmd[9])==0)??

    ???????????????????????? {???

    ??????????????????????????????? exit(0);

    ???????????????????????? }??

    ???????????????????????? else if(strcmp(str,cmd[10])==0)???

    ???????????????????????? {

    ??????????????????????????????? printf("類型:外部命令\n");

    ??????????????????????????????? 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("copy 內部命令 將至少一個文件復制到另一個位置。\n");

    ??????????????????????????????? printf("help 外部命令 提供Windows命令的幫助信息。\n");

    ??????????????????????????????? printf("quit 外部命令 退出命令解釋程序\n");????

    ??????????????????????????????? /* printf("CALL\t從一個批處理程序調用這一個。\n");

    ??????????????????????????????? printf("CMD\t打開另一個Windows命令解釋窗口。\n");

    ??????????????????????????????? printf("COLOR\t設置默認控制臺前景和背景顏色。\n");

    ??????????????????????????????? printf("DEL\t刪除至少一個文件。\n");??

    ??????????????????????????????? printf("EXIT\t退出命令解釋程序。\n");?

    ??????????????????????????????? printf("FIND\t在一個或多個文件中搜索一個文本字符串。\n");??

    ??????????????????????????????? printf("MKDIR\t創建一個目錄。\n");???

    ??????????????????????????????? printf("MODE\t配置系統設備。\n");??

    ??????????????????????????????? printf("PRINT\t打印一個文本文件。\n");???

    ??????????????????????????????? printf("REPLACE\t替換文件。\n");

    ??????????????????????????????? printf("RENAME\t重新命名文件。\n");*/?

    ??????????????????????????????? printf("\n有關工具的詳細信息,請參閱聯機幫助中的命令行參考。\n");

    ??????????????????????????????? break;??????????

    ???????????????????????? }

    ???????????????????????? else if(strcmp(str,cmd[i])!=0)

    ???????????????????????? {? ???

    ??????????????????????????????? printf("此命令不是內部或外部命令,也不是可運行的程序或批處理文件\n");?

    ??????????????????????????????? printf("\n");???

    ??????????????????????????????? break;

    ???????????????????????? }

    ????????????????? }

    ?????????? }

    ??? }????

    }

    4.運行結果及分析

    實驗結果與預期的一致。

    四、實驗總結

      命令解釋程序總體來說還是比較簡單的,主要的難度在于讀取文件,還有作比較的地方,由于一開始采用讀取文檔的方法,但問題沒得到解決,之后采用了直接存儲在數組中。

    轉載于:https://www.cnblogs.com/wangzekai/p/5289113.html

    總結

    以上是生活随笔為你收集整理的OS实验一实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。