实验一 命令解释程序的编写
一、目的和要求
- 掌握命令解释程序的原理;
- 掌握简单的DOS调用方法;
- 掌握C语言编程初步。
二、实验要求
编写类似于DOS,UNIX的命令行解释程序
- 自行定义系统提示符
- 自定义命令集
- 用户输入HELP以查找命令的帮助
- 列出命令的功能,区分内部还是外部命令
- 用户输入QUIT退出
- 内部命令有dir,cd,md,rd,cls,date,time,ren,copy等
三、编程实现流程
显示程序提示信息;
While(1)
{ 显示提示符;
接收键盘的字符串;
判断是否quit程序退出指令,是则退出;
判断是否内部命令,并给出相应的信息,否则给出错误信息;
}
显示退出程序信息;
具体实现:
- 整体体现
本程序利用C语言文件存储的方式实现cmd命令相关信息的存储,相关代码片段为:
FILE *fp;
fp=fopen("E:\\caozuo.txt","a+");打开文件,采用可写入方式,原文件夹的文件不会覆盖,将会在文件最后面加上。
fclose(fp);关闭文件。
2.显示提示符
显示界面输入,界面如下:
3.接收键盘的字符串;
接受键盘输入的字符串,输入的字符串采用结构体的方法实现,存储到TXT文件中,可以方便一直使用。具体实现代码如下:
1 void input() 2 { FILE *fp; 3 fp=fopen("E:\\caozuo.txt","a+"); 4 int i; 5 int n; 6 printf("请输入你要录入的个数n\n:"); 7 scanf("%d",&n); 8 for(i=0;i
上面这段是录入信息的代码片段。
接受键盘输入命令符进行判断则定义一个数组search[]和已有的存储的信息进行判断,例如:
char search[5];
scanf("%s",search);
判断语句(部分):if(strcmp(search,other[i])==0)
4.判断是否quit程序退出指令,是则退出;并显示退出程序信息
实现代码:
1 for(i=0;i<2;i++) 2 { 3 if(strcmp(search,another[i])==0) 4 { printf(" quit 外部命令 将退出命令解释程序 \n"); 5 printf("\n"); 6 printf("程序结束\n "); 7 printf("\n"); 8 9 exit (0);10 }
实现结果如图:
5.判断是否内部命令,并给出相应的信息,否则给出错误信息;
判断(随机):
四、实验拓展
实现大小写的输入:
本程序主要是实现大写转为小写即可,小写能实现:
实现具体代码为:
1 for( i=0;i
实现此功能需要加上头文件#include <string.h>和#include <ctype.h>
实现结果为:
五:实验总结
了解了cmd的运行与实现,和最基础的命令相关信息。
六、源程序为:
1 #include2 #include 3 #include 4 #include 5 #define N 10 6 7 typedef struct cmd 8 { 9 char name[5]; 10 char type[10]; 11 char function[30]; 12 }CMD; 13 CMD cmd[N]; 14 15 void input() 16 { FILE *fp; 17 fp=fopen("E:\\caozuo.txt","a+"); 18 int i; 19 int n; 20 printf("请输入你要录入的个数n\n:"); 21 scanf("%d",&n); 22 for(i=0;i