实验一、命令解释程序的编写
专业:商业软件工程1班 姓名:周诗琦 学号:201406114108
一、 实验目的
(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. 源程序名:压缩包文件中源程序名 MiniOS.cpp
可执行程序名:MiniOS.exe
2. 原理分析及流程图
本次实验主要是用while语句进行选择,用if、else if等循环语句嵌套做出判断。
利用strcmp进行判断,当输入与对应的命令相等时,则可以显示其命令解释,还可输入help进行查看命令行提示,输入quit后则退出程序。
3. 主要程序段及其解释:
1 #include<stdio.h> 2 #include<string.h> 3 void main() 4 { 5 char mingling[15][15]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"}; 6 char ch[15]; 7 printf("Microsoft Windows XP [版本 5.1.2600] "); 8 printf("<c> 版权所有 1985-2001 Microsoft Corp."); 9 printf("c:UsersAdministrator"); 10 11 while(1) 12 { 13 printf("请输入命令>"); 14 gets(ch);//读入字符串 15 if(strcmp(ch,mingling[0])==0) 16 { 17 printf("dir 内部命令 显示一个目录中的文件和子目录 "); 18 } 19 else if(strcmp(ch,mingling[1])==0) 20 { 21 printf("cd 内部命令 显示当前目录的名称或将其更改。 "); 22 } 23 else if(strcmp(ch,mingling[2])==0) 24 { 25 printf("md 内部命令 创建一个目录。 "); 26 } 27 else if(strcmp(ch,mingling[3])==0) 28 { 29 printf("rd 内部命令 删除目录。 "); 30 } 31 else if(strcmp(ch,mingling[4])==0) 32 { 33 printf("cls 内部命令 清除屏幕 "); 34 } 35 else if(strcmp(ch,mingling[5])==0) 36 { 37 printf("date 内部命令 显示或设置日期 "); 38 } 39 else if(strcmp(ch,mingling[6])==0) 40 { 41 printf("time 内部命令 内部命令显示或设置系统时间 "); 42 } 43 else if(strcmp(ch,mingling[7])==0) 44 { 45 printf("ren 内部命令 重新命名文件 "); 46 }else if(strcmp(ch,mingling[8])==0) 47 { 48 printf("cope 内部命令 将至少一个文件复制到另一个位置 "); 49 } 50 else if(strcmp(ch,mingling[9])==0) 51 { 52 printf("dir 内部命令 显示一个目录中的文件和子目录 "); 53 printf("cd 内部命令 显示当前目录的名称或将其更改。 "); 54 printf("md 内部命令 创建一个目录。 "); 55 printf("rd 内部命令 删除目录。 "); 56 printf("cls 内部命令 清除屏幕 "); 57 printf("date 内部命令 显示或设置日期 "); 58 printf("time 内部命令 内部命令显示或设置系统时间 "); 59 printf("ren 内部命令 重新命名文件 "); 60 printf("cope 内部命令 将至少一个文件复制到另一个位置 "); 61 printf("help 外部命令 提供Windows命令的帮助信息 "); 62 printf("quit 外部命令 退出命令解释程序 "); 63 } 64 else if(strcmp(ch,mingling[10])==0) 65 return; 66 else 67 { 68 printf("你输入错误的信息,请重新输入: "); 69 } 70 } 71 }
四、 实验总结
原本是想通过读取文件进行对比判断后打印文件内容的方法,但是由于本身对C语言的运用不够熟悉,所以选择了简单的直接的键盘读取和直接printf。在今后的学习中要加强对编程的运用,熟悉更多的方法,以便更好地辅助操作系统的学习。