操作系统 实验一、命令解释程序的编写
2016-03-25 15:17
309 查看
一、实验目的
(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)中源程序名[b]MiniOS[/b].c
可执行程序名:[b]MiniOS[/b].exe
2.原理分析及流程图
主要总体设计问题。
(包括存储结构,主要算法,关键函数的实现等)
3.主要程序段及其解释:
实现主要功能的程序段,重要的是程序的注释解释。
四、代码
五、结果截图
六、总结
在编程的时候,很多时候要好好的结合老师发来的案例和通过百度搜索来解决问题和疑惑,还好在通过与同学的讨论结果下才能运行出来。
(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)中源程序名[b]MiniOS[/b].c
可执行程序名:[b]MiniOS[/b].exe
2.原理分析及流程图
主要总体设计问题。
(包括存储结构,主要算法,关键函数的实现等)
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.\n"); printf("\nc:\\Users\\Administrator>"); while(1) { 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"); } } }
五、结果截图
六、总结
在编程的时候,很多时候要好好的结合老师发来的案例和通过百度搜索来解决问题和疑惑,还好在通过与同学的讨论结果下才能运行出来。
相关文章推荐
- JavaWeb项目开发案例精粹-第2章投票系统-002配置文件及公共类
- printf被编译器优化导致纯字符串打印问题(gcc不使用标准库)
- mysql分表分区
- Linux opencv Cmake无界面更改配置的方法
- thinking in java 笔记 3
- 批处理启动和停止服务命令集批量执行dos命令
- “Connection refused” vs “No route to host”
- PAT (Advanced Level) Practise 1086 Tree Traversals Again (25)
- github初步使用
- MagicalRecord的拖入工程文件时报错MagicalRecord/MagicalRecordDeprecationMacros.h file not find。
- Http、TCP/IP协议与Socket之间的区别(转载)
- css读书笔记4:字体和文本
- ip地址的组成(网络位+主机位)
- C# Activator.CreateInstance()方法使用
- 导数据问题汇总
- 浅析通用爬虫软件—— 集搜客与八爪鱼采集器
- Step by Step - Exchange 2013 Email Message Size Restriction Detail
- 父类和子类 同名成员变量和静态成员变量
- Bzoj3589:动态树:树链剖分+容斥原理+树链的并
- 庆祝三周年:Docker 推出面向 Mac/Windows 平台的测试版