• 实验一 操作系统模仿cmd


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

    专业:商软(2)班   姓名:王俊杰  学号:201406114252

    一、        实验目的

    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.      源程序名:压缩包文件中源程序名 MiniOS.cpp

                     可执行程序名:MiniOS.exe

            2.      原理分析及流程图

                      本次实验主要是把命令放到记事本里面,最后通过程序来读取文档,这样的做法主要是方便更改数据。

                       最后通过用户输入的字符串,比较是否与记事本里面的命令名一样,相同则输出该命令的所有信息,

      

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    #define N 200
    struct CMD
    {
    int a;
    char abc[50];
    char abc1[100];
    };
    struct CMD cmd[N];
    main()
    {
    FILE *fp;
    int i,n;
    char str[N];
    printf("Micrcmdoft Windows [版本 6.1.7601 ] ");
    printf("版本所有 <c> 2009 Micrcmdoft Corporation。保留所有权利 ");
    fp=fopen("cmd.txt","r+");
    for(i=0;!feof(fp);i++)
    {
    fscanf(fp,"%s%s%d",cmd[i].abc,cmd[i].abc1,&cmd[i].a);
    n=i;
    }
    fclCMDe(fp);
    while(1){
    printf("C:\Users\Administrator.USER-20151120JI>");
    gets(str);

    for(i=0;i<=n;i++)
    {
    if(stricmp(str,"help")==0)
    {
    for(i=0;i<=n;i++)
    {
    printf("%s %s ",cmd[i].abc,cmd[i].abc1);
    }
    break;
    }

    if((stricmp(str,cmd[i].abc)==0)&&(cmd[i].a==1))
    {
    printf(""%s"是内部命令,输入正确 ",cmd[i].abc);
    printf("该命令的作用是:%s ",cmd[i].abc1);
    break;
    }
    else if((stricmp(str,cmd[i].abc)==0)&&(cmd[i].a==0))
    {
    printf(""%s"是外部命令,输入正确 ",cmd[i].abc);
    printf("该命令的作用是:%s ",cmd[i].abc1);
    break;
    }
    else if((stricmp(str,cmd[i].abc)!=0)&&(i==n))
    {
    printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件 ",str);
    }
    }
    printf(" ");
    }
    }

     

     

  • 相关阅读:
    基于jQuery仿淘宝产品图片放大镜代码
    【家育通】 关于我们
    新房装修三大空鼓解决方法 为家居装修做好前奏
    MVC5+EF6 入门完整教程十一:细说MVC中仓储模式的应用
    MVC5+EF6 入门完整教程十
    MVC5+EF6 入门完整教程九
    MVC5+EF6 入门完整教程八
    MVC5+EF6 入门完整教程七
    MVC5+EF6 入门完整教程六
    MVC5+EF6 入门完整教程五
  • 原文地址:https://www.cnblogs.com/wangjunjie123/p/5318911.html
Copyright © 2020-2023  润新知