MiniOS系统
实验一 命令解释程序的编写
一、目的和要求
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等。
#include<stdio.h>
#include <stdlib.h>
# include<string.h>
main()
{
char cmd[][]={"dir","cd","md","rd","cls","date","time","ren", "copy","quit","help"};
char str[];
int i;
printf("Microsoft Windows XP [版本 5.1.2600]\n");
printf("<c> 版权所有 1985-2001 Microsoft Corp\n\n");
while(){
printf("C:Documents and Settingshskd>");
gets(str);
strlwr(str);
for(i=;i<;i++)
{
{
if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("显示一个目录中的文件和子目录。\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("显示当前目录的名称或将其更改。\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("创建一个新目录···\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("删除该目录....\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
/*printf("类型:内部命令\n");
printf("清屏···\n"); */
system("cls");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("显示或设置日期。\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf(" 类型:内部命令\n");
printf("内部命令显示或设置系统时间。\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("重命名文件···\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
printf("类型:内部命令\n");
printf("将至少一个文件复制到另一个位置。\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[])==)
{
return ;
}
else if(strcmp(str,cmd[])==)
{
//printf("类型:外部命令\n");
printf("dir\t内部命令 显示一个目录中的文件和子目录。\n");
printf("cd\t内部命令 显示当前目录的名称或将其更改。\n");
printf("md\t内部命令 创建一个目录。\n");
printf("rd\t内部命令 删除目录。.\n");
printf("cls\t内部命令 清除屏幕。\n");
printf("dte\t内部命令 显示或设置日期。\n");
printf("time\t内部命令 内部命令显示或设置系统时间。\n");
printf("ren\t内部命令 重新命名文件。\n");
printf("copy\t内部命令 将至少一个文件复制到另一个位置。\n");
printf("help\t外部命令 提供Windows命令的帮助信息。\n");
printf("quit\t外部命令 退出命令解释程序\n");
printf("\n");
printf("\n");
break;
}
else if(strcmp(str,cmd[i])!=){
printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件\n");
printf("\n");
break;
}
}
}
}
}
四、实验总结
本次程序中仍有许多不明白的地方,只能做个简单的界面,对DOS命令更加了解
MiniOS系统的更多相关文章
- 2012高校GIS论坛
江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...
- 实验一 MiniOS
实验一.命令解释程序的编写实验 商软1班 杨晶晶 201406114102 一. 实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程初 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- win7安装时,避免产生100m系统保留分区的办法
在通过光盘或者U盘安装Win7操作系统时,在对新硬盘进行分区时,会自动产生100m的系统保留分区.对于有洁癖的人来说,这个不可见又删不掉的分区是个苦恼.下面介绍通过diskpart消灭保留分区的办法: ...
- iOS---iOS10适配iOS当前所有系统的远程推送
一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...
- (系统架构)标准Web系统的架构分层
标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层 ...
- Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
随机推荐
- Mysql修改密码以及权限问题
mysql修改密码小步骤 错误分析: 一开始是密码错误导致,先添加skip-grant-tables(这个配置无视权限的,添加直接回车登录即可),尽心修改密码,发现错误照旧 百度了一下,发现是mysq ...
- Python学习 :异常处理
异常处理 什么是异常处理 - python解释器检测到错误,触发异常(也允许程序员自己触发了异常) - 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,只与异常处理有关) - 如果 ...
- abc sort
c: #include<stdio.h>//从大到小 int main(){ int a, b, c; int x = 0; printf("input message:\n&q ...
- C#中的抽象方法,虚方法,接口之间的对比
1.首先来看一看抽象类 抽象类是特殊的类,不能够被实例化:具有类的其他特性:抽象方法只能声明于抽象类中,且不包含任何实现 (就是不能有方法体),派生类也就是子类必须对其进行重写.另外,抽象类可以派生自 ...
- 参考 https://raspberrypi.stackexchange.com/questions/3617/how-to-install-unrar-nonfree > 1.卸载unrar-free。 $ sudo apt-get remove unrar-free \ 2.通过编辑确保您拥有源存储库/etc/apt/sources.list。 $ cat /etc/apt/sources.
from my CSDN: https://blog.csdn.net/su_cicada/article/details/86939944 参考 https://raspberrypi.stacke ...
- Git 创建并管理局域网仓库
Git 作为当前比较流行的代码管理工具,可以实现多人协作,不同版本代码管理. 本文内容基于Ubuntu. 0. 配置git信息 git config --global user.name XXX # ...
- nw
https://github.com/nwjs/nw.js/wiki/List-of-apps-and-companies-using-nw.js
- Linux入门第五天——shell脚本入门(下)基础语法之循环
一.循环 1.不定循环 有两种形式: while [ condition ] <==中括号内的状态就是判断式 do <==do 是循环的开始! 程序段落 done <==done 是 ...
- 20155202 2016-2017-2《Java程序设计》课程总结
20155202 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业1:第一次写随笔,我眼中的师生关系--未来我的大学生活 预备作业2:第二次随笔-- ...
- 《JAVA程序设计》 实验二 Java面向对象程序设计
<JAVA程序设计> 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解 ...