实验一 命令解释程序的编写
一、 实验目的
(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主要总体设计问题。
主要间断的通过一个循环就可以实现要求,循环加选择判断的语句格式
整体大致思路:
显示程序提示信息;
While(1) (循环语句)
{ 显示提示符;
接收键盘的字符串;
判断是否quit程序退出指令,是则退出;
(利用if-else语句进行分支选择,用a.equals("help")对字符串进行判断)
判断是否内部命令,并给出相应的信息,否则给出错误信息;
}
显示退出程序信息;
- 2. 主要程序段及其解释:
主要功能的程序段:
while(true) //程序循环体,用户循环输入
{
a=null;
System.out.printf("C:/>"); //提示输入
a=sc.nextLine(); //获取用户输入的字符
if(a.equals("quit")||a.equals("exit")) //先判断是否退出
{
System.out.printf("退出命令,谢谢使用!拜拜。。");
System.exit(0);
}
else if(a.equals("help")||a.equals("HELP")) //打印所有的内部系统命令
System.out.println("help||exit---帮助\ncopy---复制\nmd---创建文件夹 \ntime---修改系统时间 "
+ "\nver---查询系统版本 \nmove---移动文件夹或文件 \nrd---删除文件夹或文件 \ntype---显示文本文件 "
+ "\ndir---显示目录\ncls---清屏");
//个别命令的判断
else if(a.equals("copy")||a.equals("COPY"))
System.out.println("系统命令:复制");
else if(a.equals("MD")||a.equals("md"))
System.out.println("系统命令:创建文件夹");
else if(a.equals("time")||a.equals("TIME"))
System.out.println("系统命令:修改系统时间");
else if(a.equals("ver")||a.equals("VER"))
System.out.println("系统命令:查询系统版本");
else if(a.equals("move")||a.equals("MOVE"))
System.out.println("系统命令:移动文件夹或文件");
else if(a.equals("rd")||a.equals("RD"))
System.out.println("系统命令:删除文件夹或文件");
else if(a.equals("type")||a.equals("TYPE"))
System.out.println("系统命令:显示文本文件");
else if(a.equals("dir")||a.equals("DIR"))
System.out.println("系统命令:显示目录");
else if(a.equals("cls")||a.equals("CLS"))
System.out.println("系统命令:清屏");
else
System.out.println("没有该内部系统命令,请重试,或退出“quit”");
}
- 3. 运行结果及分析
结果符合预期及其分析。
程序执行:
程序help命令可打印出程序设定的命令提示符:
个别命令的提示:
非内部命令的输入:
退出:
四、 实验总结
在这次的实验里面,其实内容根要求不难,理清楚思路之后可以用简单的语句实现基本功能,这次实验运用一个循环结构为大致框架,可以让用户输入命令字符串一次又一次,直到输入退出命令才退出循环,推出程序。
其中,要判断是否内部命令,只需要用if-else语句和equals()酒可以进行判断选择。程序就基本出来了。这一次本想按照老师德想法利用文档,但是没清楚怎么做,失败没做出来,但是还是会继续尝试的。