实验一报告
实验一、认识DOS实验
专业:物联网工程 姓名:张欣怡 学号201306104135
一、 实验目的
(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等。
三、 实验方法、步骤及结果测试
- 源程序名:1230.c 可执行程序名:1230.exe
- 原理分析及流程图
主要总体设计问题:用C语言编写一个解释DOS系统的某些指令的解释。输入某个指令,就会显示这个指令的意思。
核心的程序段(算法):
显示程序提示信息;
While(1)
{ 显示提示符;
接收键盘的字符串;
判断是否quit程序退出指令,是则退出;
判断是否内部命令,并给出相应的信息,否则给出错误信息;
}
显示退出程序信息;
本程序定义一个字符数组,输入一个字符串,用gets获得,用字符串的比较,对应到某个字符数组里的其中一个。用if--else实现选择;用while进行循环,可以进行查询。但运行quit指令时,程序就会退出。
3.主要程序段及其解释:
#include<stdio.h>
#include<string.h>
void main()
{
char cmd[20][20]={"dir","cd","md","rd","data","copy","help","quit"}; /*定义一个字符数组
char cm[20];
printf("`````````````欢迎进入DOS系统``````````````");
while(1){ /*用while循环进行连续查询
printf("\n输入:");
gets(cm);
if(strcmp(cm,cmd[0])==0) /* 输入的字符与数组中第0个字符进行比较
{
printf("dir 查看当前所在目录的文件和文件夹\n"); /*若匹配则输出该字符的解释
}
else if(strcmp(cm,cmd[1])==0) /* 若不匹配,则与其他的进行比较
{
printf("cd 进入特定的目录\n");
}
else if(strcmp(cm,cmd[2])==0) {
printf("md 建立特定的目录\n");
}
else if(strcmp(cm,cmd[3])==0) {
printf("rd 删除特定的文件夹\n");
}
else if(strcmp(cm,cmd[4])==0) {
printf("data 设置日期命令\n");
}
else if(strcmp(cm,cmd[5])==0) {
printf("copy 复制文件\n");
}
else if(strcmp(cm,cmd[6])==0) { /* 输入help指令则输出在数组定义的所有字符的解释
printf("dir 查看当前所在目录的文件和文件夹\n");
printf("cd 进入特定的目录\n");
printf("md 建立特定的目录\n");
printf("rd 删除特定的文件夹\n");
printf("data 设置日期命令\n");
printf("copy 复制文件\n");
}
else if(strcmp(cm,cmd[7])==0) { /*若输入quit,则退出程序
printf("退出!");
return;
}
else { /*如果输入数组中没有定义的字符或其他,则显示错误信息
printf("输入错误,重新输入: ");
}
}
}
4.运行结果及分析
四、 实验总结
在本次实验中,刚开始还不知道用什么软件写,所以感觉很困难。后面发现这是一个用C语言写的一个程序,就有了头绪。在实验中,对数组的定义要加一对双引号。程序的其他部分,进行的还是挺顺利的。