博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验一 命令解释程序的编写
阅读量:5322 次
发布时间:2019-06-14

本文共 2294 字,大约阅读时间需要 7 分钟。

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

专业:商软(2)班   姓名:卢晓洵  学号:201406114211

一、   实验目的

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

可执行程序名:test2.exe

 2.      原理分析及流程图

存储结构:

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

 

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

#include
#include
void main() { char *b[11]={
"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"}; int pan(char ch1[],char *j[11]); char a[10],*p=a; printf("Microsoft Windows XP [版本 5.1.2600]\n(C) 版权所有 1985-2001 Microsoft Corp.\n"); while(strcmp(a,b[10])!=0) { printf("\nC:\\Documents and Settings\\hskd>"); scanf("%s",a); strlwr(a);//字母不分大小写 pan(p,b); }}int pan(char ch1[],char *j[11]) { int i; for(i=0;i<11;i++) if(strcmp(ch1,j[i])==0) { switch(i) { case 0:printf("dir 内部命令 查看当前所在目录的文件和文件夹 带参数\n"); break; case 1:printf("cd 内部命令 进入特定的目录 不带参数\n"); break; case 2:printf("md 内部命令 建立特定的文件夹 不带参数\n"); break; case 3:printf("rd 内部命令 删除特定的文件夹 带参数\n"); break; case 4:printf("cls 内部命令 表示清屏功能 不带参数\n"); system("cls");//清屏功能 break; case 5:printf("date 内部命令 设置日期 不带参数\n"); break; case 6:printf("time 内部命令 设置或显示系统时期 不带参数\n"); break; case 7:printf("ren 内部命令 表示文件改个名字 不带参数\n"); break; case 8:printf("copy 内部命令 将至少一个文件复制到另一个位置 带参数\n"); break; case 9:printf("dir 内部命令 查看当前所在目录的文件和文件夹 带参数\t\ncd 内部命令 进入特定的目录 不带参数\t\nmd 内部命令 建立特定的文件夹 不带参数\t\nrd 内部命令 删除特定的文件夹 带参数\t\ncls 内部命令 表示清屏功能 不带参数\t\ndate 内部命令 设置日期 不带参数\t\ntime 内部命令 设置或显示系统时期 不带参数\t\nren 内部命令 表示文件改个名字 不带参数\t\ncopy 内部命令 表示复制命令 带参数\nEnter \" quit\" to quit this program!!\n"); break; case 10:printf("Thanks for using it!\n"); break; } return 1; } if(strcmp(ch1,j[i])!=0) printf("输入命令错误!\n"); return 0;}

运行结果:

四、实验总结

该程序实现了不分字母大小写、清屏、增加参数属性功能,但是存储方式是用指针数组存储,不能够存其他属性,不够便利。

转载于:https://www.cnblogs.com/jinyechutao11/p/5319042.html

你可能感兴趣的文章
音视频基础知识(一)
查看>>
CyclicBarrier的使用
查看>>
小程序开发笔记
查看>>
Web框架高级功能之模板、拦截器、Json、打包
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
安装scikit-learn过程记录
查看>>
数据库的标识符可以有多长
查看>>
新手村之循环!循环!循环!
查看>>
在创业公司上班的感受
查看>>
Shell脚本
查看>>
masm32V11配置
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
通过Python、BeautifulSoup爬取Gitee热门开源项目
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
android代码控制seekbar的样式
查看>>