• MiniOS系统


    实验一  命令解释程序的编写

    一、目的和要求

    1. 实验目的

    (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 #include<stdio.h> 
      2 #include <stdlib.h> 
      3 # include<string.h> 
      4 main() 
      5 { 
      6     char cmd[20][20]={"dir","cd","md","rd","cls","date","time","ren", "copy","quit","help"}; 
      7     char str[10];  
      8     int i;  
      9     printf("Microsoft Windows XP [版本 5.1.2600]
    ");
     10     printf("<c> 版权所有 1985-2001 Microsoft Corp
    
    ");
     11     while(1){
     12         printf("C:Documents and Settingshskd>"); 
     13         gets(str); 
     14         strlwr(str);
     15         for(i=0;i<20;i++)
     16         { 
     17             { 
     18                 if(strcmp(str,cmd[0])==0) 
     19                 {
     20                     printf("类型:内部命令
    "); 
     21                     printf("显示一个目录中的文件和子目录。
    "); 
     22                     printf("
    "); 
     23                     printf("
    "); 
     24                     break; 
     25                 }
     26                 else if(strcmp(str,cmd[1])==0) 
     27                 {
     28                     printf("类型:内部命令
    "); 
     29                     printf("显示当前目录的名称或将其更改。
    "); 
     30                     printf("
    "); 
     31                     printf("
    "); 
     32                     break; 
     33                 }
     34                 else if(strcmp(str,cmd[2])==0) 
     35                 {
     36                     printf("类型:内部命令
    "); 
     37                     printf("创建一个新目录···
    "); 
     38                     printf("
    "); 
     39                     printf("
    "); 
     40                     break; 
     41                 }
     42                 else if(strcmp(str,cmd[3])==0) 
     43                 { 
     44                     printf("类型:内部命令
    "); 
     45                     printf("删除该目录....
    "); 
     46                     printf("
    "); 
     47                     printf("
    "); 
     48                     break; 
     49                 }
     50                 else if(strcmp(str,cmd[4])==0) 
     51                 {
     52                 /*printf("类型:内部命令
    "); 
     53                     printf("清屏···
    "); */
     54                     system("cls");
     55                     printf("
    "); 
     56                     printf("
    "); 
     57                     break; 
     58                 } 
     59                 else if(strcmp(str,cmd[5])==0) 
     60                 {
     61                     printf("类型:内部命令
    "); 
     62                     printf("显示或设置日期。
    "); 
     63                     printf("
    "); 
     64                     printf("
    "); 
     65                     break; 
     66                 } 
     67                 else if(strcmp(str,cmd[6])==0)
     68                 {
     69                     printf(" 类型:内部命令
    "); 
     70                     printf("内部命令显示或设置系统时间。
    "); 
     71                     printf("
    "); 
     72                     printf("
    "); 
     73                     break; 
     74                 }
     75                 else if(strcmp(str,cmd[7])==0) 
     76                 {
     77                     printf("类型:内部命令
    "); 
     78                     printf("重命名文件···
    "); 
     79                     printf("
    "); 
     80                     printf("
    "); 
     81                     break; 
     82                 }
     83                 else if(strcmp(str,cmd[8])==0) 
     84                 {
     85                     printf("类型:内部命令
    "); 
     86                     printf("将至少一个文件复制到另一个位置。
    "); 
     87                     printf("
    "); 
     88                     printf("
    "); 
     89                     break; 
     90                 } 
     91                 else if(strcmp(str,cmd[9])==0) 
     92                 { 
     93                     return 0;
     94                 } 
     95                 else if(strcmp(str,cmd[10])==0) 
     96                 {
     97                     //printf("类型:外部命令
    "); 
     98                     printf("dir	内部命令 显示一个目录中的文件和子目录。
    "); 
     99                     printf("cd	内部命令 显示当前目录的名称或将其更改。
    "); 
    100                     printf("md	内部命令 创建一个目录。
    "); 
    101                     printf("rd	内部命令 删除目录。.
    "); 
    102                     printf("cls	内部命令 清除屏幕。
    "); 
    103                     printf("dte	内部命令 显示或设置日期。
    "); 
    104                     printf("time	内部命令 内部命令显示或设置系统时间。
    "); 
    105                     printf("ren	内部命令 重新命名文件。
    "); 
    106                     printf("copy	内部命令 将至少一个文件复制到另一个位置。
    "); 
    107                     printf("help	外部命令 提供Windows命令的帮助信息。
    "); 
    108                     printf("quit	外部命令 退出命令解释程序
    ");
    109                     printf("
    "); 
    110                     printf("
    "); 
    111                     break;
    112                 }
    113                 else if(strcmp(str,cmd[i])!=0){ 
    114                     printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件
    "); 
    115                     printf("
    "); 
    116                     break;
    117                 }
    118             }
    119             }
    120             }
    121  }

    四、实验总结

    本次程序中仍有许多不明白的地方,只能做个简单的界面,对DOS命令更加了解

  • 相关阅读:
    ASP.NET AJAX__序言
    LINQ to SQL(4):OR设计器
    ASP.NET AJAX(11)__ScriptManager
    ASP.NET AJAX(15)__构建高性能ASP.NET AJAX应用
    LINQ to SQL(2):生成对象模型
    LINQ to SQL(3):增删改查
    ASP.NET AJAX(14)__UpdatePanel与服务器端脚本控件
    ASP.NET AJAX(13)__利用Microsoft AJAX Library开发客户端组件
    LINQ to SQL(1):基础入门
    ASP.NET AJAX(12)__浏览器兼容功能
  • 原文地址:https://www.cnblogs.com/xiaochenxi/p/5319068.html
Copyright © 2020-2023  润新知