03-25实验一、命令解释程序的编写
实验一、命令解释程序的编写
专业:商软二班 姓名:颜文生 学号: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. 源程序名:压缩包文件(rar或zip)中源程序名×××.c
可执行程序名:×××.exe
- 2. 原理分析及流程图
主要总体设计问题。
(包括存储结构,主要算法,关键函数的实现等)
- 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);
}
}
}
}
- 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)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程初步. 二. 实验内容和要求 1.实验内容:根据教师指定的实验课题,完 ...
- 实验一 命令解释程序的编写
一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程序 (1)自行定义 ...
- 实验一 命令解释程序的编写
一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程序 (1)自行定义 ...
- 实验一 DOS命令解释程序的编写
一.目的和要求 1. 实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法: (4)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程 ...
- 实验一 命令解释程序编写
#include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #d ...
- 操作系统-命令解释程序(实验一)
实验一 命令解释程序的编写(两周内) 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS, ...
- linux命令解释程序实验,实验二 命令解释程序的使用
实验二 命令解释程序的使用 一.实验目的 掌握UNIX或LINUX环境下命令解释程序的使用 能对编写简单的C程序,进行编译运行和调试. 二.实验内容 输入LINUX相关命令后记录系统输出 简单的C程序 ...
- C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc
实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...
- xp系统c 语言命令重定向,Xp命令解释程序cmd.exe概述
条件处理符号&(顺序执行命令),&&(前一个成功则执行后一个), ||(前一个失败执行后一个) 例子:dir&arp ;先执行dir,接着执行arp d ...
最新文章
- TensorFlow官方入门实操课程-全连接神经网络分类
- 一个包的TcpServer流程
- css折线效果,CSS3 box-shadow实现纸张的曲线投影效果 张鑫旭-鑫空间-鑫生活
- Hive on Spark和Spark sql on Hive,你能分的清楚么
- 升级php5.4 mysql5.5_在CentOS上把PHP从5.4升级到5.5
- 计算机本地磁盘加密,我可以将onedrive本地文件夹转移到BitLocker加密文件夹吗?...
- CSSSCSS的学习笔记
- ubuntu 重装系统备份数据 ubuntu安装kde桌面
- 设计模式学习笔记——外观模式
- c语言中逻辑运算符中感叹号,某棋牌 -官网
- Sublime 常用操作
- 一款软件测试脚本生成工具
- Rayleigh-Ritz法和Galerkin法
- 习题——路由与交换机技术(五)
- 美术课程对计算机的好处,学美术的十大好处
- Akm函数递归和非递归
- AI绘画 新多功能controlnet插件,草图上色,动作骨架提取等功能,安装及下载教程
- Java中print()\println()\printf()的区别及用法
- 英语学习也可以“做中学”
- 申请coursera助学金模板转载