实验一、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语言,所以,这次的作业比较轻松,不过一开始在运行的时候不知道用什么来运行程序,期待下一次的作业。