操作系统——实验一

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

一、 实验目的

(1)掌握命令解释程序的原理;

(2)掌握简单的DOS调用方法;

(3)掌握C语言编程初步。

二、 实验内容和要求

1、实验内容:根据教师指定的实验课题,完成设计、编码、测试工作。

2、实验要求:编写类似于DOS,UNIX的命令行解释程序

(1)自行定义系统提示符

(2)自定义命令集(8-10个)

(3)用户输入HELP以查找命令的帮助

(4)列出命令的功能,区分内部还是外部命令

(5)用户输入QUIT退出

(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

三、 实验方法、步骤及结果测试

1、实验方法:运用C语言中的while循环语句来控制整个命令解释程序,在循环内运用if和else if语句,条件就利用strcmp函数进行筛选。

2、实验步骤:先定义两个字符串数组,一个存放输入的显示提示符,另一个提前定义好相关命令dir, cd, md, rd, cls, date, time, ren, copy等。然后用while循环语句嵌套if和else if语句。当输入命令正确显示此命令的解释,若输入为外部命令,显示输入错误需重新输入。

3、源代码:

 1 #include<stdio.h>
 2  #include<string.h>
 3   main()
 4   {   //用数组表示所有的命令,从0开始,
 5      char cmd[20][20]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit"};
 6
 7       char str[20];
 8
 9  //在while语句内,if,else if中,表示当输入不同的命令,就调用数组的元素,显示相应的信息,
10      //help 提示帮助,quit退出程序,
11
12      while(1){
13     printf("D:/>请输入显示符:");
14     gets(str); //从键盘输入,显示提示信息
15
16
17      if(strcmp(str,cmd[0])==0)
18      {
19          printf("dir 表示无参数:查看当前所在目录的文件和文件夹\n");}
20     else if(strcmp(str,cmd[1])==0)
21      {
22         printf("cd 目录名:进入特定的目录。\n");
23      }
24      else if(strcmp(str,cmd[2])==0)
25      {
26          printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹\n");
27      }
28      else if(strcmp(str,cmd[3])==0)
29      {
30          printf("rd 目录名:删除特定的文件夹。\n");
31      }
32      else if(strcmp(str,cmd[4])==0)
33      {
34          printf("cls 目录名:表示清屏功能\n");
35     }
36      else if(strcmp(str,cmd[5])==0)
37      {
38          printf("data 设置日期命令 ,功能是设置日期\n");
39      }
40     else if(strcmp(str,cmd[6])==0)
41      {
42          printf("time系统时钟设置命令,功能:设置或显示系统时期。\n");
43      }
44      else if(strcmp(str,cmd[7])==0)
45      {
46          printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名 目的文件名。\n");
47      }
48      else if(strcmp(str,cmd[8])==0)
49      {
50          printf("copy表示复制命令,他的功能是复制信息\n");
51      }
52
53      //输入help显示所有内部命令
54      else if(strcmp(str,cmd[9])==0)
55      {
56         printf("dir无参数:查看当前所在目录的文件和文件夹\n");
57         printf("cd 目录名:进入特定的目录。 \n");
58         printf("md 目录名:建立特定的文件夹。dos下面习惯叫目录,win下面习惯叫文件夹)\n ");
59         printf("rd 目录名:删除特定的文件夹。\n");
60         printf("cls 目录名:表示清屏功能\n");
61         printf("data 设置日期命令 ,功能是设置日期\n");
62         printf("TIME系统时钟设置命令,功能:设置或显示系统时期。\n");
63         printf("ren表示文件改个名字,ren命令的格式是:ren 源文件名 目的文件名。\n");
64         printf("copy表示复制命令,他的功能的复制信息\n");
65      }
66      else if(strcmp(str,cmd[10])==0)
67
68         return printf("Thank you,你已退出命令解释程序!");
69
70      else
71      {
72         printf("你输入错误的信息,请重新输入:\n");
73      }
74
75      }
76  } 
              4.运行结果如下:            

时间: 2024-10-14 00:44:24

操作系统——实验一的相关文章

[操作系统实验lab3]实验报告

[感受]: 这次操作系统实验感觉还是比较难的,除了因为助教老师笔误引发的2个错误外,还有一些关键性的理解的地方感觉还没有很到位,这些天一直在不断地消化.理解Lab3里的内容,到现在感觉比Lab2里面所蕴含的内容丰富很多,也算是有所收获,和大家分享一下我个人的一些看法与思路,如果有错误的话请指正. [关键函数理解]: 首先第一部分我觉得比较关键的是对于一些非常关键的函数的理解与把握,这些函数是我们本次实验的精华所在,虽然好几个实验都不需要我们自己实现,但是这些函数真的是非常厉害!有多厉害,呆会就知

[Ubuntu]操作系统实验笔记

前些日子为了更新Ubuntu到14.04这个LTS版本,连带着把Windows也重新安装了一遍.懒得再安装虚拟机了,尝试一下在Ubuntu14.04这个64位系统里做操作系统实验咯. 1.安装交叉编译器 第一个要解决的问题就是交叉编译器,材料里提供的是x86平台上的交叉编译器.按道理来说64位系统应该是支持32程序的呢.试一下. 先不吐槽说说明文档里面的代码了.首先要解决的是各种权限问题.sudo su似乎不能全部搞定. 经过一堆权限不够的提示后我对安装已经基本没有信心了. 2.安装gxemul

0311 了解和熟悉操作系统实验

实验0.了解和熟悉操作系统实验 专业:商业软件工程2班   姓名:王俊杰  学号:201406114252 一.        实验目的 (1)掌握操作系统的定义和概念: (2)了解各类操作系统的发展历史: 二.        实验内容和要求 使用网络搜索了解各类计算机操作系统的知识,并整理成一篇文档. 实验方法.步骤及结果测试 了解和掌握内容包括: 计算机操作系统的定义和概念: 操作系统是方便用户.管理和控制计算机软硬件资源的系统软件(或程序集合). 从用户角度看,操作系统可以看成是对计算机硬

实验0、了解和熟悉操作系统实验

实验0.了解和熟悉操作系统实验 专业:商业软件工程2班   姓名:韩麒麟  学号:201406114253 一.        实验目的 (1)掌握操作系统的定义和概念: (2)了解各类操作系统的发展历史: 二.        实验内容和要求 使用网络搜索了解各类计算机操作系统的知识,并整理成一篇文档. 三.实验方法.步骤及结果测试 了解和掌握内容包括: 1.计算机操作系统的定义和概念: 操作系统(Operating System,简称OS)是管理电脑硬件与软件资源的程序,同时也是计算机系统的内

0311 实验0、了解和熟悉操作系统实验

实验0.了解和熟悉操作系统实验 专业:商软(2)班   姓名:列志华  学号:201406114254 一.        实验目的 (1)掌握操作系统的定义和概念: (2)了解各类操作系统的发展历史: 二.        实验内容和要求 使用网络搜索了解各类计算机操作系统的知识,并整理成一篇文档. 实验方法.步骤及结果测试 了解和掌握内容包括: 一.  计算机操作系统的定义和概念: 操作系统是现代计算机系统中不可缺少的系统软件,是其他所有系统软件和应用软件的运行基础.操作系统控制和管理整个计算

操作系统实验报告二

  操作系统实验报告二 姓名:许恺 学号:2014011329 日期:10月14日 题目1:编写线程池 关键代码如下: 1.Thread.h #pragma once #ifndef __THREAD_H #define __THREAD_H #include <vector> #include <string> #include <pthread.h> #pragma comment(lib,"x86/pthreadVC2.lib") using

[操作系统实验lab4]实验报告

昨天跟老师建议了OS实验改革的事情,感觉助教老师给的指导书挺坑哈,代码注释也不全.我也算沦落到看别人家的源码了... 我参考的源码注释是:https://github.com/benwei/MIT-JOS/ 这个源码质量暂且不评价,但这个注释质量真心不错!!!良心注释啊!!! 本不想去找源码注释啥来看的,毕竟可能一不小心就抄袭了源码的思想?不知道HT和WLM是怎么写的,他们做的都好快啊=.=难道只有我一个人做OS实验的周期是1~2周吗... 哎,不吐槽了,这篇文章留着慢慢更,不着急.感觉在鸣神的

操作系统实验报告四

操作系统实验4 题目1:编写页面内存的LRU替换算法 在实验3基础上考虑,如果当前分配的内存或保存页面的数据项已经被用完,这时再有新的网页请求,需要对已在内存中的网页数据进行替换,本实验内容需要使用LRU算法来对内存中的网页数据进行替换 题目2:编写页面内存的LFU替换算法 实现LFU(最少访问频率的页面替换)算法来管理内存页面 实验报告要求: 实验报告封面如下页所示. 按照题目要求,完成相关实验题目. 2.1报告中要包含完成此题目所查阅的一些关键技术材料.例如内存结构的设计.分配管理.回收方法

操作系统实验报告三

操作系统实验报告三 姓名:许恺 学号:2014011329 日期:2016.11.22 题目1:设计一段内存结构,能够缓存一定数量的网页,在客户端访问时,首先从内存中查找是否存在客户端访问的网页内容,如果存在,则直接从内存中将相应的内容返回给客户端:如果不存在,则从磁盘中将网页内容读入到内存,并返回给客户端   1.思想以及准备怎么做 在刚刚读完题目之后我的想法已经有了一点感觉要怎样做了,因为报告拖了比较久,所以老师也说过很多,好了直奔主题,首先要设计一段内存结构,用来缓存网页,其实就是做几个能

操作系统实验指导书(完整版)

操作系统实验指导书 烟台大学计算机学院 操作系统课程组 2008-9-20 第一部分  操作系统上机指导   Linux操作系统环境: RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL) Red Flag Linux release 4.0 (HOT) (2.4)   登录到系统 常用命令练习: 用root账号(超级用户)注册,口令为computer(注意大小写).注册成功出现#号(超级用户系统提示符,普通用户