实验一报告--认识DOS
实验一 DOS命令解释程序的编写
13物联网 黄鸿佳 201306104107
一. 实验目的
(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等。
三. 实验方法、步骤及结果测试
1.源程序名:1.c
可执行文件名:1.exe
2.原理图分析和流程图
原理分析:将命令符用二维数组存储起来,然后将用户输入的命令符用另一数组存起来,然后将该命令与原有的命令逐一进行比较匹配,匹配相同的则输出相应信息,若比较后都不相同则提醒用户这个命令符不存在,重新输入。

3.主要程序及解释:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char *cmd[10]={"dir","cd","md","cls","date","time","copy","quit","help"};
char b[10];
//字符指针cmd用于存储命令符,数组b存储用户输入的命令符
int a;
while(1){
printf("请你输入提示符,输入help可查看所有命令:>");
gets(b);
//输入的命令符与数组各元素进行比较匹配,匹配成功的显示相应信息
for(a=0;a<10;a++){
{
if(strcmp(b,cmd[0])==0)
//strcmp功能将两个参数进行比较,如果一致则为0
{
printf("类型:内部命令\n");
printf("作用:查看当前的目录\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[1])==0)
{
printf("类型:内部命令\n");
printf("作用:显示当前目录的名称\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[2])==0)
{
printf("类型:内部命令\n");
printf("作用:创建一个新目录\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[3])==0)
{
printf("类型:内部命令\n");
printf("作用:清屏\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[4])==0)
{
printf("类型:内部命令\n");
printf("作用:显示或设置日期\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[5])==0)
{
printf("类型:内部命令\n");
printf("作用:显示或设置系统时间\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[6])==0)
{
printf("类型:内部命令\n");
printf("作用:将至少一个文件复制到另一个位置\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[7])==0)
{
return 0;
}
else if(strcmp(b,cmd[8])==0)
{
printf("类型:外部命令\n");
printf("dir 内部命令 显示一个目录中的文件和子目录。\n");
printf("cd 内部命令 显示当前目录的名称或将其更改。\n");
printf("md 内部命令 创建一个目录。\n");
printf("cls 内部命令 清除屏幕。\n");
printf("date 内部命令 显示或设置日期。\n");
printf("time 内部命令 内部命令显示或设置系统时间。\n");
printf("cope 内部命令 将至少一个文件复制到另一个位置。\n");
printf("help 外部命令 提供Windows命令的帮助信息。\n");
printf("quit 外部命令 退出命令解释程序\n");
printf("\n");
break;
}
else if(strcmp(b,cmd[a])!=0)
{
printf("这个命令不存在,请重新输入!\n");
printf("\n");
break;
}
}
}
}
}
4.运行结果及分析
提示输入

输入命令符后的显示

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

输入quit命令符

四.实验总结:
本次实验看起来容易,但是由于太久没有使用C语言的知识,一开始还是有点吃力的,在这个过程中遇到过用scanf的话输入错误的命令符将会不停的提示,后来改用了gets,另一个就是strcmp函数的使用,通过查找资料和同学讨论后终于学会运用这个函数,完成这个实验我的收获还是很大的,而且我也深刻地意识到一个道理,温故而知新。
实验一报告--认识DOS的更多相关文章
- 实验一、熟悉DOS命令
实验一.熟悉DOS命令 实验一.熟悉DOS命令 一. 实验目的 1.从操作系统理论的观点来了解和掌握DOS有关用户接口的特点: 2.熟悉常用DOS操作命令(md.cd.rd.copy.m ...
- 20145204&20145212信息安全系统实验四报告
20145204信息安全设计基础实验四报告 博客链接:信息安全设计基础实验
- 汇编语言程序入门实验一:在dos下对用户输入作出应答
汇编语言程序入门实验一:在dos下对用户输入作出应答 1,背景 成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功.但是也有一些问题.问题1:学校的系统目前是wind ...
- 汇编语言程序入门实验二:在dos下建立子目录操作
汇编语言程序入门实验二:在dos下建立子目录操作 1,背景 在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载.安装 ...
- 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)
20172310 2017-2018-2 <程序设计与数据结构>实验三报告(敏捷开发与XP实践) 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172 ...
- 20172301 《Java软件结构与数据结构》实验三报告
20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...
- 20172301 《Java软件结构与数据结构》实验二报告
20172301 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...
- 20172329 2018-2019 《Java软件结构与数据结构》实验三报告
20172329 2018-2019-2 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 王文彬 学号:2017232 ...
- 20172329 2018-2019-2 《Java软件结构与数据结构》实验二报告
20172329 2018-2019-2 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 王文彬 学号:2017232 ...
随机推荐
- js中原型继承的三种方式
- eclipse color theme 选择一款适合你的代码样式
1 点击eclipse菜单栏上的Help ->Install New Softwave , 点击add按钮 随便写个名字 ,添加 地址 http://eclipse-color-theme ...
- Windows版的各种Python库安装包下载地址与安装过程
在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找.安装方便,总结如下: windows版的各种Python库安装包下载地址:http://www.lfd.u ...
- sql server 2008 外键关联的设置和取消
直接上图片 选中表右击-设计 找到需要设置外键的字段.右击-关系,在弹出的对话框中点击添加 选择右边的小按钮点击.选择主键表和关联的主键ID,以及外建表的关联字段. 建立外键完成. 删除的话选中某个外 ...
- Qt之QMutex
概述 QMutex 类使得线程之间可序列化,文档中的描述为provides access serialization between threads 它被设计的初衷是用来保护一个对象.数据结构.代码段 ...
- HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”
网站发布到IIS上,访问时出现错误 原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装 解决:开始->所有程序->附件->右键点击“命令提 ...
- JavaScript学习(一)—处理事件
一.处理事件(一) 事件(event)是用户在访问页面时执行的操作.提交表单和在图像上移动鼠标就是两种事件.当浏览器探测到一个事件时,比如用鼠标单击或按键,它可以触发与这个事件相关联的JavaScri ...
- Linux基础-常用命令
常用的压缩命令 一.tar 1.压缩:tar zcvf [压缩包名].tar.gz [待压缩的文件名 ... ] 2.解压缩:tar zxvf [压缩包名].tar.gz -C [指定的解压目录] 3 ...
- 转:fatal error: SDL/SDL.h: No such file or directory
Ubuntu的新得立已经包含SDL库,所以通过几个简单的命令就可以安装,比windows还傻瓜! sudo apt-get install libsdl1.2-dev(比较大,10M左右) 附加包: ...
- 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化
一.内存管理基本知识 1.S3C2440最多会用到两级页表:以段的方式进行转换时只用到一级页表,以页的方式进行转换时用到两级页表.页的大小有三种:大页(64KB),小页(4KB),极小页(1KB).条 ...