命令解释程序供参考

上传人:鲁** 文档编号:496146560 上传时间:2023-07-22 格式:DOC 页数:10 大小:501.50KB
返回 下载 相关 举报
命令解释程序供参考_第1页
第1页 / 共10页
命令解释程序供参考_第2页
第2页 / 共10页
命令解释程序供参考_第3页
第3页 / 共10页
命令解释程序供参考_第4页
第4页 / 共10页
命令解释程序供参考_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《命令解释程序供参考》由会员分享,可在线阅读,更多相关《命令解释程序供参考(10页珍藏版)》请在金锄头文库上搜索。

1、实验一、命令解释程序实验专业:软件工程 姓名:陈朝杰 学号:201206014147一、 实验目的(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. 源程序名:cmd.cpp 可执行程序名:cmd.

2、exe命令及其说明文件:cmd.txt2. 原理分析及流程图开始读取文件将文件中的奇数行存储到cmd字符数组中,偶数行存储到fun字符数组中读取用户输入的字符流,并存储到str字符数组中str是否为 quit是 否Str是否为help是输出所有cmd和fun否否与cmdi匹配输出非操作命令是输出funi结束3. 主要程序段及其解释:实现主要功能的程序段,重要的是程序的注释解释。 /*=定义变量=*/int i=0,j=0,n; /定义变量char str10; /用于存储用户输入的命令(字符串流)char strsd100; /用于存储获取的当前目录char cmd2010; /用于存储从文件

3、中读取的命令char fun2050; /用于读取从文件中读取的命令的功能说明/*=文件读取=*/char filename = D:cmd.txt; /命令及其功能说明的文件的路径及其文件名FILE *fp; /文件指针char StrLine50; /每行最大读取的字符数if(fp = fopen(filename,r) = NULL) /判断文件是否存在及可读 printf(error!); return -1; /*=读取文件并存储到cmd和fun中=*/while (!feof(fp) if(i%2=0) /如果是单行,则存到cmd【】(命令)中fgets(StrLine,10,fp

4、); strcpy(cmdi/2,StrLine);cmdi/2strlen(cmdi/2)-1=0; /消除从文件读入字符串时的换行符else /如果是偶数行,则存到fun【】(功能说明)中 fgets(StrLine,50,fp); strcpy(funi/2,StrLine);funi/2strlen(funi/2)-1=0; /消除从文件读入字符串时的换行符n=i/2+1; /n为命令的个数i+; for(i=strlen(funn-1)-1;i=50;i+) /消除文件最后读入的结束符(?)funn-1i=0;/printf(%dn,n);fclose(fp); /关闭文件/*=判断

5、用户输入的命令 并作出相应的回应=*/ while(strcmp(str,quit)!=0) /判断用户输入的是否为quit,是则跳出循环结束程序if(strcmp(str,help)=0) /判断用户输入的是否为help,是则输出所有的cmd【】,fun【】for(i=0;in;i+)printf( %stt%sn,cmdi,funi);else /用户输入的不是help,则在cmd【】中进行配对for(i=1;i,strsd);gets(str); /进行循环4.运行结果及分析1.输入help命令: 分析:程序输出所有命令及其功能2.输入cls命令: 分析:程序能正确输出其功能 3.输入q

6、uit: 分析:程序能正常退出4. 输入time 分析:文件中并没有time这个命令(没加入),故提示不是操作命令5. 输入time 分析:此时已在文件中加入了time命令,故可以输出其功能说明四、 实验总结通过这次的实验,复习了c语言。许多忘记或从未记住过的知识重新看了一遍。字符串配对部分在同学的帮助下认识到了错误的所在,通过查找资料找到了具体的解决方法,完成了作业。体会:有很多东西要彻底弄懂才能正确的运用于自己所写的程序中。源代码:#include #include#includeint main() /*=定义变量=*/int i=0,j=0,n; /定义变量char str10; /用

7、于存储用户输入的命令(字符串流)char strsd100; /用于存储获取的当前目录char cmd2010; /用于存储从文件中读取的命令char fun2050; /用于读取从文件中读取的命令的功能说明/*=文件读取=*/char filename = D:cmd.txt; /命令及其功能说明的文件的路径及其文件名FILE *fp; /文件指针char StrLine50; /每行最大读取的字符数if(fp = fopen(filename,r) = NULL) /判断文件是否存在及可读 printf(error!); return -1; /*=读取文件并存储到cmd和fun中=*/w

8、hile (!feof(fp) if(i%2=0) /如果是单行,则存到cmd【】(命令)中fgets(StrLine,10,fp); strcpy(cmdi/2,StrLine);cmdi/2strlen(cmdi/2)-1=0; /消除从文件读入字符串时的换行符else /如果是偶数行,则存到fun【】(功能说明)中 fgets(StrLine,50,fp); strcpy(funi/2,StrLine);funi/2strlen(funi/2)-1=0; /消除从文件读入字符串时的换行符n=i/2+1; /n为命令的个数i+; for(i=strlen(funn-1)-1;i,strsd); /输出当前目录gets(str); /获取用户输入的命令/*=判断用户输入的命令 并作出相应的回应=*/ while(strcmp(str,quit)!=0) /判断用户输入的是否为quit,是则跳出循环结束程序if(strcmp(str,help)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号