我是靠谱客的博主 动人摩托,最近开发中收集的这篇文章主要介绍命令解释程序的编写实验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验一、命令解释程序的编写实验

商软1班   谭宇森  201406114139

一、        实验目的

(1)掌握命令解释程序的原理;

(2)掌握简单的DOS调用方法;

(3)掌握C语言编程初步。

 

二、        实验内容和要求

实验内容

根据教师指定的实验课题,完成设计、编码、测试工作。

实验要求

编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

(2)自定义命令集(8-10个)

(3)用户输入HELP以查找命令的帮助

(4)列出命令的功能,区分内部还是外部命令

(5)用户输入QUIT退出

(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

三、        实验方法、步骤及结果测试

 1.      源程序名:miniOS.c

可执行程序名:miniOS.exe

2.      原理分析及流程图

1. 命令解释程序的原理:

命令解释程序的主要功能是:

接受和执行一条用户从键盘输入的命令,它通常保存一张命令名字(动词)表,其中记录着所有操作命令及其处理程序的入口地址或有关信息。

 

2. 命令解释程序实现的两种方式 :

1) 一种是它自身包含了命令的执行代码;

2) 另一种是由专门的“系统程序” 实现,自身不含命令处理代码,也不进行处理,仅仅把这条命令对应的命令文件装入内存执行。例如:在DOS操作系统中,dir、cd、cls等命令的执行代码包含在系统自身内核中,称为内部命令;format、help等命令的执行代码在外部文件中,称为外部命令。

 

3. 编程实现流程

显示程序提示信息;

While(1)

{ 显示提示符;

接收键盘的字符串;

判断是否quit程序退出指令,是则退出;

判断是否内部命令,并给出相应的信息,否则给出错误信息;

 

显示退出程序信息;

首先查了cmd有哪些命令指示符,分别有什么作用,在自己电脑的cmd输入一些字符看对应的结果。通过在自己电脑输入命令指示符复制到程序的显示输出中,使得用起来像真的一样。

3.      主要程序段及其解释:

#include<stdio.h>
#include <string.h>
void header();
void Input();
void Output();
struct Cmd{
char cmd[30];
char function[500];
int post;
};
main()
{
header();
Input();

}
void header()
{
printf("Microsoft Windows XP [版本 5.1.2600]n");
printf("<C> 版权所有 1985-2001 Microsoft Corpn");
}
void Input()
{
printf("n");
char cmd[100];
printf("Document and SettingAdministrator>:");
scanf("%s",&cmd);
if(strcmp(cmd,"dir")==0)
printf("显示一个目录中的文件和子目录。");
else if(strcmp(cmd,"cd")==0)
printf("显示当前目录的名称或将其更改");
else if(strcmp(cmd,"md")==0)
printf("创建目录。");
else if(strcmp(cmd,"rd")==0)
printf("删除目录。");
else if(strcmp(cmd,"cls")==0)
printf("创建目录。");
else if(strcmp(cmd,"date")==0)
printf("显示或设置日期。");
else if(strcmp(cmd,"time")==0)
printf("显示或设置系统时间。");
else if(strcmp(cmd,"ren")==0)
printf("重命名文件。");
else if(strcmp(cmd,"copy")==0)
printf("将至少一个文件复制到另一个位置。");
else if(strcmp(cmd,"javac ")==0)
printf("将某一个java程序进行编译。");
else if(strcmp(cmd,"java")==0)
printf("运行某一个已编译的java文件。");
else if(strcmp(cmd,"erase")==0)
printf("删除至少一个文件。");
else if(strcmp(cmd,"chkntfs")==0)
printf("显示或修改启动时间磁盘检查。");
else if(strcmp(cmd,"assoc")==0)
printf("显示或修改文件扩展名关联。");
else if(strcmp(cmd,"at")==0)
printf("计划在计算机上运行的命令和程序.");
else if(strcmp(cmd,"attrib")==0)
printf("显示或更改文件属性。");
else if(strcmp(cmd,"call")==0)
printf("从另一个批处理程序调用这一个。");
else if(strcmp(cmd,"help")==0)
{
printf("命令指示符有以下命令");
printf("ndir 显示一个目录中的文件和子目录。");
printf("ncd 显示当前目录的名称或将其更改。") ;
printf("nmd 创建目录。") ;
printf("nrd 删除目录。") ;
printf("ncls 清除屏幕。") ;
printf("ndate 显示或设置日期。") ;
printf("ntime 显示或设置系统时间。") ;
printf("nren 重命名文件。") ;
printf("ncopy 将至少一个文件复制到另一个位置。") ;
printf("njavac 将某一个java程序进行编译。") ;
printf("njava 运行某一个已编译的java文件。") ;
printf("nerase 删除至少一个文件。") ;
printf("nchkntfs 显示或修改启动时间磁盘检查。") ;
printf("nassoc 显示或修改文件扩展名关联。") ;
printf("nat 计划在计算机上运行的命令和程序。") ;
printf("nattrib 显示或更改文件属性。") ;
printf("ncall 从另一个批处理程序调用这一个。") ;
}
else
printf("输入错误,没有这命令,可输入help查看指令。");
//Output(cmd);
printf("n");
Input();
}

4.      运行结果及分析

 

 

四、        实验总结

虽然方法有点蠢,但是已经有进步了,继续加油

转载于:https://www.cnblogs.com/dalaotan/p/5319556.html

最后

以上就是动人摩托为你收集整理的命令解释程序的编写实验的全部内容,希望文章能够帮你解决命令解释程序的编写实验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部