操作系统实验一.命令解释程序的编写
2016-03-25 13:07
78 查看
实验一、命令解释程序的编写
专业:商业软件工程1班 姓名:周诗琦 学号:201406114108
一、 实验目的
(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. 源程序名:压缩包文件中源程序名 MiniOS.cpp
可执行程序名:MiniOS.exe
2. 原理分析及流程图
本次实验主要是用while语句进行选择,用if、else if等循环语句嵌套做出判断。
利用strcmp进行判断,当输入与对应的命令相等时,则可以显示其命令解释,还可输入help进行查看命令行提示,输入quit后则退出程序。
3. 主要程序段及其解释:
四、 实验总结
原本是想通过读取文件进行对比判断后打印文件内容的方法,但是由于本身对C语言的运用不够熟悉,所以选择了简单的直接的键盘读取和直接printf。在今后的学习中要加强对编程的运用,熟悉更多的方法,以便更好地辅助操作系统的学习。
专业:商业软件工程1班 姓名:周诗琦 学号:201406114108
一、 实验目的
(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. 源程序名:压缩包文件中源程序名 MiniOS.cpp
可执行程序名:MiniOS.exe
2. 原理分析及流程图
本次实验主要是用while语句进行选择,用if、else if等循环语句嵌套做出判断。
利用strcmp进行判断,当输入与对应的命令相等时,则可以显示其命令解释,还可输入help进行查看命令行提示,输入quit后则退出程序。
3. 主要程序段及其解释:
#include<stdio.h> #include<string.h> void main() { char mingling[15][15]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"}; char ch[15]; printf("Microsoft Windows XP [版本 5.1.2600]\n"); printf("<c> 版权所有 1985-2001 Microsoft Corp."); printf("c:\Users\Administrator"); while(1) { printf("请输入命令>"); gets(ch);//读入字符串 if(strcmp(ch,mingling[0])==0) { printf("dir 内部命令 显示一个目录中的文件和子目录\n"); } else if(strcmp(ch,mingling[1])==0) { printf("cd 内部命令 显示当前目录的名称或将其更改。\n"); } else if(strcmp(ch,mingling[2])==0) { printf("md 内部命令 创建一个目录。\n"); } else if(strcmp(ch,mingling[3])==0) { printf("rd 内部命令 删除目录。\n"); } else if(strcmp(ch,mingling[4])==0) { printf("cls 内部命令 清除屏幕\n"); } else if(strcmp(ch,mingling[5])==0) { printf("date 内部命令 显示或设置日期\n"); } else if(strcmp(ch,mingling[6])==0) { printf("time 内部命令 内部命令显示或设置系统时间\n"); } else if(strcmp(ch,mingling[7])==0) { printf("ren 内部命令 重新命名文件\n"); }else if(strcmp(ch,mingling[8])==0) { printf("cope 内部命令 将至少一个文件复制到另一个位置\n"); } else if(strcmp(ch,mingling[9])==0) { printf("dir 内部命令 显示一个目录中的文件和子目录\n"); printf("cd 内部命令 显示当前目录的名称或将其更改。\n"); printf("md 内部命令 创建一个目录。\n"); printf("rd 内部命令 删除目录。\n"); printf("cls 内部命令 清除屏幕\n"); printf("date 内部命令 显示或设置日期\n"); printf("time 内部命令 内部命令显示或设置系统时间\n"); printf("ren 内部命令 重新命名文件\n"); printf("cope 内部命令 将至少一个文件复制到另一个位置\n"); printf("help 外部命令 提供Windows命令的帮助信息\n"); printf("quit 外部命令 退出命令解释程序\n"); } else if(strcmp(ch,mingling[10])==0) return; else { printf("你输入错误的信息,请重新输入:\n"); } } }
四、 实验总结
原本是想通过读取文件进行对比判断后打印文件内容的方法,但是由于本身对C语言的运用不够熟悉,所以选择了简单的直接的键盘读取和直接printf。在今后的学习中要加强对编程的运用,熟悉更多的方法,以便更好地辅助操作系统的学习。
相关文章推荐
- Java通过几种经典的算法来实现数组排序
- spinlock剖析与改进
- Linux下指定配置文件启动redis方式
- 实验一 命令解释程序的编写
- linux --- shell command
- Hadoop版本选择探讨
- Java中final、finally、finalize的区别 | Java基础
- The JRE could not be found.Edit the server and change the JRE location
- 基本类型与引用类型
- 1001 of greedy strategy
- 用C#来编程获取MAC
- Hadoop YARN安装部署初探
- x264代码剖析——核心算法之宏块编码中的量化编码
- x264代码剖析——核心算法之宏块编码中的量化编码
- LoadRunner 性能测试脚本
- Extjs给TextField赋值
- Memcached 常见的问题
- vmstat命令
- 练猫步
- 如何编写YARN应用程序