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

一、目的和要求

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. 树莓派3B+学习笔记:4、查看GPIO

    GPIO(General Purpose I/O Ports)意思为通用输入/输出端口. 可以在终端重直接查看GPIO的定义. 查看方式1: gpio readall 查看方式2: pinout 可以 ...

  2. python paramiko模块和多线程讲解

    1.paramiko 实现ssh 登录 import paramiko # 实现ssh登录 ssh_client = paramiko.SSHClient() ssh_client.set_missi ...

  3. 改脚本之dbscaner

    默认的DBscaner只是用了ipy模块支持一个段的解析,但是我想让他加载脚本进行检测 所以,直接看 def __init__(self, target, thread): self.target = ...

  4. uva 210 - Concurrency Simulator (并行程序模拟)

    from CSDN: https://blog.csdn.net/su_cicada/article/details/87898579 例题6-1 并行程序模拟( Concurrency Simula ...

  5. Go语言基础-序言

    2018年6月,第一次接触go语言,在之后通过多本书籍渐渐了解go语言之后,开启了自己go语言全栈工程师的道路.特此记录,希望能给后学的朋友提供一个方向. 语言是一门寻寻渐进的课程,结合自己这两个月的 ...

  6. Centos7最小化安装之工作站设置

    Centos7最小化安装之工作站设置 实测在Vultr的VPS上正常可用 在Vultr上怎么看桌面 两种解决方法: 使用VNC远程连接 直接使用Vultr的view console功能 我使用的是第二 ...

  7. 20155235 2006-2007-2 《Java程序设计》第1周学习总结

    20155235 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 第二章 使用的JRE不同,对JAVA的执行有什么影响 第三章 字符串的用法在JAVA和C中有 ...

  8. 对Linux命令od -tc -tx1的C语言程序实现myod-优化版

    导语 自编od C语言实现版名为myod 上个星期有一个初代版,链接- myod原版 这星期的课上要求实现myod-系统调用版本,要求如下 1 参考教材第十章内容 2 用Linux IO相关系统调用编 ...

  9. 20155327 2016-2017-2 《Java程序设计》第10周学习总结

    20155327 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. ...

  10. asp.net self host and urlacl(解决UnHandledException Message:拒绝访问的问题)

    命令提示符(管理员权限)需要添加的代码: netsh http add urlacl url=http://*:9999/ user=Everyone listen=yes 其中: url:代码中的u ...