操作系统-命令解释程序(实验一)
2016-03-24 13:23
399 查看
实验一 命令解释程序的编写(两周内)
一、目的和要求
1. 实验目的(1)掌握命令解释程序的原理;
(2)*掌握简单的DOS调用方法;
(3)掌握C语言编程初步。
2.实验要求
编写类似于DOS,UNIX的命令行解释程序
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。
二、实验内容
根据教师指定的实验课题,完成设计、编码、测试工作。三、实验环境
1.PC微机2.Windows 操作系统
3.C/C++程序开发集成环境
四、实验核心算法及运用文档
#include<stdio.h> #include<stdlib.h> #include<string.h> char or[19][20]={"dir","cd","md","rd","cls","date","time","ren","copy","javac","java","erase","chkntfs","assoc","at","attrib","call","help","quit"}; char order[10]; void cmd(int i); void main() { int i; printf("Microsoft Windows [版本 6.1.7601]\n"); printf("版权所有 <c> 2009 Microsoft Corporation。版权所有权利。\n\n"); while(1) { printf("C:\\Users\\USER>"); gets(order); if(strcmp(order,"\n")==1) { for(i=0;i<19;i++){ if(stricmp(order,or[i])==0) break; } if(i==19) printf("\"%s\"不是内部或外部命令,也不是可运行的程序或批处理文件。\n\n",order); else if(i==18) break; else if(i==4) system("cls"); else{ cmd(i); //system(order); printf("\n"); } } } } void cmd(int i){ FILE *fp; int j; int os[19][30]; fp=fopen("order.txt","r+"); for(j=0;j<19;j++) fscanf(fp,"%s",os[j]); fclose(fp); if(i>=0&&i<=16) printf("\"%s\"内部命令输入正确。\n",order); else printf("\"%s\"外部命令输入正确。\n",order); if(i==17){ for(j=0;j<19;j++){ printf("%s\t",or[j]); if(j>=0&&j<=16) printf("内部命令 "); else printf("外部命令 "); printf("%s\n",os[j]); } } else if(i==4){ system(order); } else printf("该命令的作用是:%s",os[i]); printf("\n"); }
五、运行结果
六、实验总结
这次实验可以说是一次很简单的实验,有很多运用到的代码都是以前做大作业的时候写过的了。但是还是存在一些问题,比如这次实验的拓展题就让我有些不知道怎么下手,因为cmd命令解释,如果用所以说system(order);这句代码的话就可以照样的输出本机cmd命令解释的,如果不用的话,暂时还没有想出怎么去写这个代码。相关文章推荐
- 项目日志文件存放位置
- HRBUST 1188 区间最大值 I
- Leet Code OJ 20. Valid Parentheses [Difficulty: Easy]
- 非堵塞socket实现android手机与PC的文件传输
- mysql某些值统计
- Python爬虫
- Java核心知识点-Java多线程
- hdu 1548 A strange lift (BFS)
- 一个方法连续调用多次,但方法体里面的代码只保证最后一次的执行,之前连续调用的方法体都不执行
- Win 10 删除文件“文件访问被拒,权限不足”提示的解决办法
- 关于深度学习中激活函数的思考总结(转载+原创)
- 项目计划
- 0c-34-自动释放池
- 人脸检测学习网址
- Hadoop Hive基础sql语法
- Go语言:通过组合获得接口
- OSVERSIONINFO的用法及实例
- 数据库锁表查询及解除方法
- Hadoop之hive的drop table恢复
- A Knight's Journey(DFS)