zoukankan      html  css  js  c++  java
  • 实验一报告

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

    13物联网  李小娜  201306104148

    一、 实验目的

    1)认识DOS

    2)掌握命令解释程序的原理;

    3)掌握简单的DOS调用方法;

    4)掌握C语言编程初步。

    二、 实验内容和要求

    编写类似于DOSUNIX的命令行解释程序

    1)自行定义系统提示符

    2)自定义命令集(8-10个)

    3)用户输入HELP以查找命令的帮助

    4)列出命令的功能,区分内部还是外部命令

    5)用户输入QUIT退出

    6)内部命令有dir, cd, md,rd, cls, date, time, ren, copy等。

    根据要求,完成设计、编码、测试工作。

    三、 实验方法、步骤及结果测试

    1. 源程序名1.c

    可执行程序名:1.exe

         2.原理分析及流程图

      原理分析:先将命令符用一个字符串数组存储起来等待用户输入命令进行匹配,然后将用户输入的命令用另一数组存起来,而后将该命令与已有的命令逐一进行比较,对比相同则输出对应内容,若对比后都不相同则提醒用户输入有错。

     

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

    #include<stdio.h>
    #include<string.h>//字符串头文件
    void main()
    {
     char *a[11]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};
     //字符指针数组a用于存储命令符,数组b存储用户输入的命令符
     char b[11];
     printf("欢迎使用,输入help可显示所有命令
    ");
     while(1){
       printf("操作系统>实验一>DOS>");
       scanf("%s",b); //用户输入命令符
       //输入的命令与数组各元素进行比较,对应匹配成功执行相关功能
       //strcmp功能为将两参数进行对比,对比完全一致则为0
       if(strcmp(b,a[0])==0)
       { printf("	dir:内部命令,查看当前所在目录的文件和文件夹
    ");}
      else if(strcmp(b,a[1])==0)
       { printf("	cd:内部命令,进入特定的目录
    ");}
      else if(strcmp(b,a[2])==0)
       { printf("	md:内部命令,建立特定的文件夹
    ");}
     else if(strcmp(b,a[3])==0)
       { printf("	rd:内部命令,删除特定的文件夹
    ");}
     else if(strcmp(b,a[4])==0)
       { printf("	cls:内部命令,清屏功能
    ");}
     else if(strcmp(b,a[5])==0)
       { printf("	date:内部命令,设置日期功能
    ");}
     else if(strcmp(b,a[6])==0)
       { printf("	time:内部命令,设置或显示系统时期
    ");}
     else if(strcmp(b,a[7])==0)
       { printf("	ren:内部命令,更改文件名称
    ");}
     else if(strcmp(b,a[8])==0)
       { printf("	copy:内部命令,拷贝一个或多个文件到指定盘
    ");}
     else if(strcmp(b,a[9])==0)
       { 
                printf("	dir:内部命令,查看当前所在目录的文件和文件夹
    ");
                printf("	cd:内部命令,进入特定的目录
    ");
                printf("	md:内部命令,建立特定的文件夹
    ");
                printf("	rd:内部命令,删除特定的文件夹
    ");
                printf("	cls:内部命令,清屏功能
    ");
                printf("	date:内部命令,设置日期功能
    ");
                printf("	time:内部命令,设置或显示系统时期
    ");
                printf("	ren:内部命令,更改文件名称
    ");
                printf("	copy:内部命令,拷贝一个或多个文件到指定盘
    ");
                printf("	quit:退出
    ");}
     else if(strcmp(b,a[10])==0)
       { return ;}//return 为退出函数
    else {printf("	输入有错,请重新输入!
    ");}    //若都匹配不成功则显示输入有错提示
     }
    }

          4.运行结果及分析

    用户进入界面后,给出使用提示:

     

    输入help可显示所有命令符及其作用:

     

    举例输入time命令后的界面:

     

    输入命令符出错,给予输错提示:

     

    输入quit,退出程序:

     

    四、 实验总结

      本次实验其实不会太难,只是太久没运用C语言的知识,一开始有些生疏。其中遇到的问题主要是使用字符串处理函数strcmp进行比较用户输入的命令与原有命令的大小;另一问题则是实现当输入quit时直接退出函数的功能,开始想到用exit函数实现,找了点资料后知道要引用头文件sdlib.h,后发现可直接简单的使用return语句便可实现功能。

  • 相关阅读:
    Linux 下QT安装教程
    内核中断及按键驱动程序
    Linux 输入子系统原理理解(原创)
    深入分析Linux内核源码oss.org.cn/kernel-book/
    [MSDN]最新Win7 SP1简体中文所有版本下载
    递归打印级联目录
    递归与迭代学习(联级目录的创建与删除)
    PHP三种方法实现多文件上传
    PHP实现商城购物车类(SESSION+单例模式 )(亲测)
    PHP生成缩略图、验证码类封装
  • 原文地址:https://www.cnblogs.com/dmbs/p/4858768.html
Copyright © 2011-2022 走看看