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

专业:商软二班  姓名:颜文生  学号:201406114256

一、        实验目的

(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. 1.      源程序名:压缩包文件(rarzip)中源程序名×××.c

可执行程序名:×××.exe

  1. 2.      原理分析及流程图

主要总体设计问题。

(包括存储结构,主要算法,关键函数的实现等)

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

//自行定义系统提示符

void Define(CMD c[20])

{

int i=0;

char *name[11]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};

char *type[11]={"内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","外部命令","外部命令"};

char *func[11]={"显示一个目录中的文件和子目录","显示当前目录的名称或将其更改","创建一个目录","删除目录","清除屏幕","显示或设置日期",

"内部命令显示或设置系统时间","重新命名文件","将至少一个文件复制到另一个位置","提供Windows命令的帮助信息","退出命令解释程序"};

//将已定义好的提示符依次赋值给数组c

for(i=0;i<11;i++)

{

strcpy(c[i].command_name,name[i]);

strcpy(c[i].command_type,type[i]);

strcpy(c[i].command_func,func[i]);

}

}

//从键盘输入命令提示符,并输出相关结果

void Input(CMD c[20])

{

char name[20];

int i;

while(1)

{

printf("C:\\Documents and Settings\\Administrator>");

gets(name);

//若输入help或HELP,则输出全部提示符信息

if(strcmp("HELP",name)==0 || strcmp("help",name)==0)

{

for(i=0;i<11;i++)

{

printf("%s",c[i].command_name);

putchar('\t');

printf("%s",c[i].command_type);

putchar('\t');

printf("%s",c[i].command_func);

putchar('\n');

}

putchar('\n');

}

//若输入quit,则退出程序

else if(strcmp("quit",name)==0)

{

return;

}

else

{

for(i=0;i<11;i++)

{

if(strcmp(c[i].command_name,name)==0)

{

printf("%s",c[i].command_name);

putchar('\t');

printf("%s",c[i].command_type);

putchar('\t');

printf("%s",c[i].command_func);

putchar('\n');

putchar('\n');

break;

}

}

//若没有输入自定义的提示符,则给出相关提示

if(i>=11)

{

printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n\n",name);

}

}

}

}

  1. 4.      运行结果及分析

     

四、        实验总结

难点:没有具体完成命令提示符的现实功能。以及没有其他命令提示符的主要功能介绍,如ASSOC,CALL等。

自身程序缺点:简单地完成各个命令提示符的相关介绍,并没有像系统提供的那样全面。不过这让我了解了程序运行原理。

 

源代码:

#include<stdio.h>
#include<string.h>
struct cmd
{char command_name[10];  //提示符名字char command_type[10];  //提示符命令类型char command_func[100]; //提示符功能
};
typedef struct cmd CMD;
void Head();
void Define(CMD c[20]);
void Input(CMD c[20]);
main()
{CMD c[20];Head();    Define(c);Input(c);
}//设置控制台头部
void Head()
{printf("Microsoft Windows XP  [版本 5.1.2600]\n");printf("(C) 版权所有 1985-2001 Microsoft Corp.\n\n");
}
//自行定义系统提示符
void Define(CMD c[20])
{int i=0;char *name[11]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};char *type[11]={"内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","内部命令","外部命令","外部命令"};char *func[11]={"显示一个目录中的文件和子目录","显示当前目录的名称或将其更改","创建一个目录","删除目录","清除屏幕","显示或设置日期","内部命令显示或设置系统时间","重新命名文件","将至少一个文件复制到另一个位置","提供Windows命令的帮助信息","退出命令解释程序"};//将已定义好的提示符依次赋值给数组cfor(i=0;i<11;i++){strcpy(c[i].command_name,name[i]);strcpy(c[i].command_type,type[i]);strcpy(c[i].command_func,func[i]);}
}//从键盘输入命令提示符,并输出相关结果
void Input(CMD c[20])
{char name[20];int i;while(1){printf("C:\\Documents and Settings\\Administrator>");gets(name);//若输入help或HELP,则输出全部提示符信息if(strcmp("HELP",name)==0 || strcmp("help",name)==0){    for(i=0;i<11;i++){printf("%s",c[i].command_name);putchar('\t');printf("%s",c[i].command_type);putchar('\t');printf("%s",c[i].command_func);putchar('\n');}putchar('\n');}//若输入quit,则退出程序else if(strcmp("quit",name)==0){return;}else{for(i=0;i<11;i++){if(strcmp(c[i].command_name,name)==0){printf("%s",c[i].command_name);putchar('\t');printf("%s",c[i].command_type);putchar('\t');printf("%s",c[i].command_func);putchar('\n');putchar('\n');break;}}//若没有输入自定义的提示符,则给出相关提示if(i>=11){printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n\n",name);}}}
}

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yanwensheng/p/5318955.html

03-25实验一、命令解释程序的编写相关推荐

  1. 实验1 命令解释程序的编写

    实验1 命令解释程序的编写 一. 实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程初步. 二. 实验内容和要求 1.实验内容:根据教师指定的实验课题,完 ...

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

    一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程序 (1)自行定义 ...

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

    一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程序 (1)自行定义 ...

  4. 实验一 DOS命令解释程序的编写

    一.目的和要求 1. 实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法: (4)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程 ...

  5. 实验一 命令解释程序编写

    #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #d ...

  6. 操作系统-命令解释程序(实验一)

    实验一  命令解释程序的编写(两周内) 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS, ...

  7. linux命令解释程序实验,实验二 命令解释程序的使用

    实验二 命令解释程序的使用 一.实验目的 掌握UNIX或LINUX环境下命令解释程序的使用 能对编写简单的C程序,进行编译运行和调试. 二.实验内容 输入LINUX相关命令后记录系统输出 简单的C程序 ...

  8. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc

    实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...

  9. xp系统c 语言命令重定向,Xp命令解释程序cmd.exe概述

    条件处理符号&(顺序执行命令),&&(前一个成功则执行后一个), ||(前一个失败执行后一个) 例子:dir&arp         ;先执行dir,接着执行arp d ...

最新文章

  1. TensorFlow官方入门实操课程-全连接神经网络分类
  2. 一个包的TcpServer流程
  3. css折线效果,CSS3 box-shadow实现纸张的曲线投影效果 张鑫旭-鑫空间-鑫生活
  4. Hive on Spark和Spark sql on Hive,你能分的清楚么
  5. 升级php5.4 mysql5.5_在CentOS上把PHP从5.4升级到5.5
  6. 计算机本地磁盘加密,我可以将onedrive本地文件夹转移到BitLocker加密文件夹吗?...
  7. CSSSCSS的学习笔记
  8. ubuntu 重装系统备份数据 ubuntu安装kde桌面
  9. 设计模式学习笔记——外观模式
  10. c语言中逻辑运算符中感叹号,某棋牌 -官网
  11. Sublime 常用操作
  12. 一款软件测试脚本生成工具
  13. Rayleigh-Ritz法和Galerkin法
  14. 习题——路由与交换机技术(五)
  15. 美术课程对计算机的好处,学美术的十大好处
  16. Akm函数递归和非递归
  17. AI绘画 新多功能controlnet插件,草图上色,动作骨架提取等功能,安装及下载教程
  18. Java中print()\println()\printf()的区别及用法
  19. 英语学习也可以“做中学”
  20. 申请coursera助学金模板转载

热门文章

  1. 如何在ArcMap中监听键盘鼠标事件
  2. 变量、中文-「译」javascript 的 12 个怪癖(quirks)-by小雨
  3. 瑞星:ATM出现漏洞 银行:哪有这回事?
  4. vs2008 C++ 没有找到MSVCR90D.dll 问题
  5. 近期要推出的ISA2006系列文章
  6. 快速书写常见的 Kotlin 代码 MD
  7. python标准库学习9
  8. C# List Sort
  9. 算法----两数之和
  10. 算法------数组---------存在重复元素