DOS命令解释程序的编写
实验一、DOS命令解释程序的编写
专业:物联网工程 姓名:黄淼 学号:201306104145
一、 实验目的
(1)认识DOS;
(2)掌握命令解释程序的原理;
(3)掌握简单的DOS调用方法;
(4)掌握C语言编程初步。
二、 实验内容和要求
根据要求,完成设计、编码、测试工作。
编写类似于DOS,UNIX的命令行解释程序
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir, cd, md,rd, cls, date, time, ren, copy等。
三、 实验方法、步骤及结果测试
- 源程序名:压缩包文件(rar或zip)中源程序名 hm.c
可执行程序名:hm.exe
2.原理分析及流程图
采用数组来存储功能
关键函数:strcmp(p,h[10])==0)来判断用户输入的字符串是否与该数组元素符合
3.主要程序段及其解释:
#include<stdio.h>
#include<string.h>
main()
{
char p[11];
char h[11][11]={"dir","cd","md","rd","cls","date","time",
"ren","copy","help","arp","start","mem","winver","format","quit"};
printf("帮助:\n");
printf("内部功能 :\n");
printf("1:dir目录:\n");
printf("2:cd进入目录:\n");
printf("3:md建立文件夹\n");
printf("4:rd删除文件夹\n");
printf("5:cls清屏\n");
printf("6:date设置日期\n");
printf("7:time设置或显示系统时间\n");
printf("8:ren改文件名\n");
printf("9:copy复制\n");
printf("9:copy复制\n");
printf("10:help帮助\n");
printf("11:arp退出\n");
printf("12:start开始\n");
printf("13:mem查看cpu\n");
printf("14:winver弹出窗口\n");
printf("15:format盘符\n");
printf("16:quit退出\n");
while(1)
{
gets(p);
if(strcmp(p,h[15])==0) break;
else if(strcmp(p,h[9])==0)
{
printf("帮助:\n");
printf("内部功能 :\n");
printf("1:dir目录\n");
printf("2:cd进入目录:\n");
printf("3:md建立文件夹\n");
printf("4:rd删除文件夹\n");
printf("5:cls清屏\n");
printf("6:date设置日期\n");
printf("7:time设置或显示系统时间\n");
printf("8:ren改文件名\n");
printf("9:copy复制\n");
printf("10:help帮助\n");
printf("11:arp退出\n");
printf("12:start开始\n");
printf("13:mem查看cpu\n");
printf("14:winver弹出窗口\n");
printf("15:format盘符\n");
printf("16:quit退出\n");
}
else if(strcmp(p,h[0])==0) printf("dir(内部功能):目录\n");
else if(strcmp(p,h[1])==0) printf("cd(内部功能):进入目录\n");
else if(strcmp(p,h[2])==0) printf("md(内部功能):建立文件夹\n");
else if(strcmp(p,h[3])==0) printf("rd(内部功能):删除文件夹\n");
else if(strcmp(p,h[4])==0) printf("cls(内部功能):清屏\n");
else if(strcmp(p,h[5])==0) printf("date(内部功能):设置日期"\n);
else if(strcmp(p,h[6])==0) printf("time(内部功能):设置或显示系统时间\n");
else if(strcmp(p,h[7])==0) printf("ren(内部功能):改文件名\n");
else if(strcmp(p,h[8])==0) printf("copy(内部功能):复制\n");
else if(strcmp(p,h[9])==0) printf("help(内部功能):帮助\n");
else if(strcmp(p,h[10])==0) printf("arp 查看和处理ARP缓存\n");
else if(strcmp(p,h[11])==0) printf("start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 \n");
else if(strcmp(p,h[12])==0) printf("mem 查看cpu使用情况\n");
else if(strcmp(p,h[13])==0) printf("winver 弹出一个窗口显示版本信息\n");
else if(strcmp(p,h[14])==0) printf("format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS\n");
else printf("出入错误,请重新输入!\n");
}
}
4.运行结果及分析
进入程序之前会有提示帮助:
用户输入help也会显示帮助:
输入dir便会显示如图所示的图片:
输入错误便会提示:
输入quit则直接退出:
四、 实验总结
在大一的时候就已经学过了C语言,所以,这次的作业比较轻松,不过一开始在运行的时候不知道用什么来运行程序,期待下一次的作业。
DOS命令解释程序的编写的更多相关文章
- 实验一 DOS命令解释程序的编写
一.目的和要求 1. 实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法: (4)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程 ...
- 关于dos命令行脚本编写
dos常用命令另查 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用的,只是cmd文件中允许 ...
- C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
本篇主要体验:编写C#,IL代码,用"VS2012开发人员命令提示"编译成程序集,并运行程序. □ C#文件编译为程序集 →在F盘创建as文件夹→在as文件夹下创建MyClass. ...
- 实验一 命令解释程序cmd的编写
#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 30main(){ char str[ ...
- system , DOS 命令
其实C语言也可以控制电脑关机什么的啊,以前竟然无知的连这个都不知道.悲哀啊.让各路大牛尽情嘲笑啊.. #include<stdio.h> #include<stdlib.h> ...
- 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?
作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...
- DOS命令大全!
一)MD——建立子目录 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前 ...
- c#执行Dos命令
一个执行Dos命令的窗口程序,与各位分享. 效果图: 具体实现在代码中有详细的注释,请看代码. 实现执行CMD命令的核心代码(Cmd.cs): [csharp] using S ...
- DOS命令教学之详解批处理
批处理文件是由一个或一个以上的DOS命令及可执行命令组成的带有扩展名.BAT的文件.当用户以批处理文件名为命令时,DOS会自动依次执行文件中的命令.批处理文件的特点是一次建立可多次执行.下面,寻修网h ...
随机推荐
- java中的单例设计模式
单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供 ...
- jstl和jsp脚本变量相互访问
1.jsp脚本访问jstl标准动作的变量,可以通过隐式的范围变量来获取,对于页面作用域的变量,可以通过pageContext.getAttribute()来获取,也可以通过动作来获取: <c:s ...
- 优秀的web前端工程师要具备什么
优秀的前端工程师需要具备良好的沟通能力,因为你的工作与很多人的工作息息相关.在任何情况下,前端工程师至少都要满足下列四类客户的需求. 产品经理--这些是负责策划应用程序的一群人.他们能够想象出怎样通过 ...
- [UML]转:浅谈UML的概念和模型之UML九种图
转自:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UM ...
- 山东理工大学第七届ACM校赛-学区房问题 分类: 比赛 2015-06-26 10:23 89人阅读 评论(0) 收藏
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 铁牌狗在学区B有一套面积为S1平方米的房子,现在他为了让后代进化成金牌狗,决定在学区A购 ...
- JAVA基础知识之JVM-——通过反射查看类信息
Class实例 当类被加载之后,JVM中就会生成一个Class实例,通过这个实例就可以访问JVM中的这个类.有三种方式可以获取Class对象 使用Class的静态方法forName(完整包名) 调用类 ...
- 如何查看tensorflow版本与存储位置
import tensorflow as tf tf.__version__ __看着是一个下划线,实际上是两个下划线,中间有空格 tf.__path_
- 解析xml,几种方式
市面上解析xml分两种方式,1.dom 2.sax ,xml解析常见的一共有三种开发包,1.jaxp 2.jdom 3.dom4j,这三种方式最常用的是dom4j,jaxp和jdom很少有人用, ...
- IOS自定义仪表盘
登录|注册 周海锋 的专栏 Objective-C/Cocos2d/Cocos2d-x/Php/JS 目录视图 摘要视图 订阅 2016软考项目经理实战班 学院周年礼-顶 ...
- zookeeper系列之二—zookeeper历史
Zookeeper是什么? Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby的一个开源版本.它是为分布式应用提供一致性服务的软件,提供的功能包括:配置服 ...