实验一  命令解释程序的编写

一、目的和要求

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系统的更多相关文章

  1. 2012高校GIS论坛

    江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...

  2. 实验一 MiniOS

    实验一.命令解释程序的编写实验 商软1班   杨晶晶  201406114102 一.        实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程初 ...

  3. 在Openfire上弄一个简单的推送系统

    推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...

  4. 数据库优化案例——————某市中心医院HIS系统

    记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...

  5. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  6. win7安装时,避免产生100m系统保留分区的办法

    在通过光盘或者U盘安装Win7操作系统时,在对新硬盘进行分区时,会自动产生100m的系统保留分区.对于有洁癖的人来说,这个不可见又删不掉的分区是个苦恼.下面介绍通过diskpart消灭保留分区的办法: ...

  7. iOS---iOS10适配iOS当前所有系统的远程推送

    一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...

  8. (系统架构)标准Web系统的架构分层

    标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层 ...

  9. Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...

随机推荐

  1. 数构与算法 | 什么是大 O 表示算法时间复杂度

    正文: 开篇我们先思考这么一个问题:一台老式的 CPU 的计算机运行 O(n) 的程序,和一台速度提高的新式 CPU 的计算机运 O(n2) 的程序.谁的程运行效率高呢? 答案是前者优于后者.为什么呢 ...

  2. React with webpack - part 1

    http://jslog.com/2014/10/02/react-with-webpack-part-1/

  3. Oracle入门第二天(下)——单行函数

    一.概述 以下内容完整参阅,参考官方文档函数手册部分:https://docs.oracle.com/cd/E11882_01/nav/portal_5.htm 离线chm手册英文版:链接:https ...

  4. 2015526 《Java程序设计》实验二实验报告

    2015526 <Java程序设计>实验二实验报告 一.单元测试和TDD 用程序解决问题时,要学会写以下三种代码: 伪代码 产品代码 测试代码 正确的顺序应为:伪代码(思路)→ 测试代码( ...

  5. # 2016-2017-2 20155319 《Java程序设计》实验四Android程序开发实验报告

    2016-2017-2 20155319 <Java程序设计>实验四Android程序开发实验报告 实验一 实验内容 Android Stuidio的安装测试: 参考<Java和An ...

  6. stardict词库

    http://download.huzheng.org/zh_CN/ sudo tar -jxvf *   -C /usr/share/stardict/dic

  7. installshield 判断mdmcpq.inf和usbser.sys 是否 存在

    1.产品上位机程序,需要驱动支持,在安装  exe程序的时候,连同NET框架4.0和 .inf驱动文件,一起安装, 安装驱动的时候,会发现, 如果系统 C:\Windows\Inf 缺少mdmcpq. ...

  8. python 多线程笔记(1)-- 概念

    本文对不使用线程和使用线程做了一个对比. 假设有两件事情:听歌.看电影 一.不用线程 import time songs = ['爱情买卖','朋友','回家过年','好日子'] movies = [ ...

  9. 【LG3237】[HNOI2014]米特运输

    题面 洛谷 题解 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include < ...

  10. 【转】CentOS Linux解决Device eth0 does not seem to be present(linux)

    原文来自:http://www.linuxidc.com/Linux/2012-12/76248.htm 在VMware里克隆出来的CentOS Linux.. ifconfig...没有看到eth0 ...