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

专业:商软(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.      原理分析及流程图

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

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

  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5. #define N 200
  6. struct CMD
  7. {
  8. int a;
  9. char abc[50];
  10. char abc1[100];
  11. };
  12. struct CMD cmd[N];
  13. main()
  14. {
  15. FILE *fp;
  16. int i,n;
  17. char str[N];
  18. printf("Micrcmdoft Windows [版本 6.1.7601 ]\n");
  19. printf("版本所有 <c> 2009 Micrcmdoft Corporation。保留所有权利\n\n");
  20. fp=fopen("cmd.txt","r+");
  21. for(i=0;!feof(fp);i++)
  22. {
  23. fscanf(fp,"%s%s%d",cmd[i].abc,cmd[i].abc1,&cmd[i].a);
  24. n=i;
  25. }
  26. fclCMDe(fp);
  27. while(1){
  28. printf("C:\\Users\\Administrator.USER-20151120JI>");
  29. gets(str);
  30.  
  31. for(i=0;i<=n;i++)
  32. {
  33. if(stricmp(str,"help")==0)
  34. {
  35. for(i=0;i<=n;i++)
  36. {
  37. printf("%s\t%s\n",cmd[i].abc,cmd[i].abc1);
  38. }
  39. break;
  40. }
  41.  
  42. if((stricmp(str,cmd[i].abc)==0)&&(cmd[i].a==1))
  43. {
  44. printf("\"%s\"是内部命令,输入正确\n",cmd[i].abc);
  45. printf("该命令的作用是:%s\n",cmd[i].abc1);
  46. break;
  47. }
  48. else if((stricmp(str,cmd[i].abc)==0)&&(cmd[i].a==0))
  49. {
  50. printf("\"%s\"是外部命令,输入正确\n",cmd[i].abc);
  51. printf("该命令的作用是:%s\n",cmd[i].abc1);
  52. break;
  53. }
  54. else if((stricmp(str,cmd[i].abc)!=0)&&(i==n))
  55. {
  56. printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n",str);
  57. }
  58. }
  59. printf("\n");
  60. }
  61. }

实验一 操作系统模仿cmd的更多相关文章

  1. 操作系统模仿CMD

    实验一.命令解释程序的编写 专业:商软(2)班   姓名:列志华  学号:201406114254 一.        实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3 ...

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

    #include<stdio.h>#include<stdlib.h>#include<string.h>#define N 30main(){ char str[ ...

  3. 0325 实验一操作系统模拟cmd

    实验一.命令解释程序的编写 专业:商软(2)班   姓名:韩麒麟 学号:201406114253 一. 实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程 ...

  4. cmd:WIN7操作系统下cmd窗口下的复制粘贴

    1.右击cmd的顶部栏,点开属性 2.在 选项 下,勾选"快速编辑模式" 3.按住鼠标左键标注需要复制的区域 再点击一下右键,则上文的标记区域就已经被复制了,可以通过ctrl+v进 ...

  5. windows10操作系统中cmd窗口下telnet功能失效的解决方案

    查找windows自带功能,在window10中相当方便.打开windows10的设置面板,在搜索栏中搜索“windows功能”,弹出以下界面: 根据弹出的提示“启动或停用windows功能”即可弹出 ...

  6. 操作系统学习笔记4 | CPU管理 && 多进程图像

    操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈 ...

  7. [Java] cmd命令行如何切换目录

    cmd.exe是微软Windows系统基于WINDOWS上的命令解释程序,类似于微软的DOS操作系统.cmd.exe是一个32位的命令行程序,运行在Windows NT/2000/XP/2003/vi ...

  8. Oracle11g R2学习系列 之四Maven+Struts+Spring实验

    今天试一下Java调用Oracle来看一下.会不会也如昨天实验的一样坑呢?由于我对于Java也接触的不多,所以不打算直接使用该收提供的实验文档,而是自己利用Maven+Struts+Spring来自己 ...

  9. 2017-2018-1 201552326《信息安全技术》实验二——Windows口令破解

    2017-2018-1 201552326<信息安全技术>实验二--Windows口令破解 姓名:刘美岑 学号:20155326 班级:1553班 日期:10.24 一.实验环境 操作系统 ...

随机推荐

  1. 业界有很多MQ产品

    目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量 ...

  2. java JDK8 学习笔记——第18章 自定义泛型、枚举与注释

    第十八章 自定义泛型.枚举与注释 18.1 自定义泛型 泛型定义: (1)仅定义在方法上的泛型语法 (2)用来限制泛型可用类型的extends与super关键字(3)?类型通配字符的使用 18.1.1 ...

  3. 用Java操作树莓派!pi4j简介与安装

    简介 对C不熟?习惯了使用java不想换语言,但又想操作树莓派?想一边喝咖啡,一边吃树莓派蛋糕?快来使用pi4j吧! pi4j旨在为java开发者提供面友好的面向对象的API,来操控树莓派.pi4j对 ...

  4. WPF绑定Model的实例对象

    创建一个用户控件 1. behindcode指定this.DataContext=XXViewModel 2. "{Binding DataContext.EditModel.MId,Rel ...

  5. 转载:C++线程池的一个实现

    原文转自:http://www.cnblogs.com/lidabo/p/3328646.html 略有修改 Cthread类参见:http://www.cnblogs.com/tangxin-blo ...

  6. this绑定

    js中关于this的用法,在初期时候经常会弄混,即使现在,也不敢说就一定不会混,但是起码好很多了. 函数执行过程中,主要有4种方法决定this的绑定对象. 分别为:默认绑定.隐式绑定. 显示绑定和ne ...

  7. easyui Tooltip 气泡信息提示

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. Android笔记-获取图片

     1. 图片放在sdcard中,根据路径获得: Bitmap imageBitmap = BitmapFactory.decodeFile(path) (path 是图片的路径,跟目录是/sdcard ...

  9. HBASE架构解析(一)

    http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...

  10. LeetCode One Edit Distance

    原题链接在这里:https://leetcode.com/problems/one-edit-distance/ Given two strings S and T, determine if the ...