雨刷程序功能扩展设计

下面是一种更加“高
级”的雨刷系统需求:
表 2 “高级”手动雨刷系统控制速度表 控制杆档位 停止 间歇 间歇 间歇 间歇 间歇 低速 高速 超高速 刻度盘刻度 — 1 2 3 4 5 — — — 雨刷速度/分钟 0 4 6 12 15 20 30 60 90
即控制杆多出来一个“超高速”档位,其雨刷摆动速度为 90;刻度盘多出两个刻度,刻度 4 时
雨刷摆动速度为 15,刻度 5 时雨刷摆动速度为 20。
4.1 输入规范
输入共 2 行,第一行为一个整型数字,取值范围为[1,2],其中 1 代表表 1 所描述的雨刷系统,2
代表表 2 所描述的雨刷系统;第二行为若干个用一个或多个空格分开且以数字 0 结束的整型数字,取
值范围为[1,4],其中 1 代表控制杆升档操作、2 代表控制杆降档操作、3 代表刻度盘升刻度操作、4
代表刻度盘降刻度操作、0 代表操作结束(输入时只要遇到 0 即认为输入结束)。
例如:
1
1 1 1 2 3 2 4 3 3 1 2 0
第一行的 1 代表选择第一种雨刷操作
第二行的数字分别代表:控制杆升档(1)、升档(1)、升档(1)、降档(2)、刻度盘升刻度
(3)、降档(2)、降刻度(4)、升刻度(3)、升刻度(3)、升档(1)、降档(2)、结束操作
(0)
4.2 输出规范
程序的输出行数根据每一次对控制杆/刻度盘操作次数而定,每一次对控制杆/刻度盘进行了操作,
则输出一行数据。格式为:操作类型/控制杆当前档位/刻度盘当前刻度/雨刷当前速度
其中,操作类型共四种,分别为 Lever up、Lever down、Dial up、Dial down;控制杆当前档位
显示中文内容,例如停止、间歇、低速、高速、超高速(表 2);刻度盘当前刻度显示为数值,例如
5 / 6
1、2、3、4、5(4、5 见表 2);雨刷当前速度显示为整型数值。具体说明见表 1 和表 2。针对输入示
例,其示例输出为:
Lever up/间歇/1/4
Lever up/低速/1/30
Lever up/高速/1/60
Lever down/低速/1/30
Dial up/低速/2/30
Lever down/间歇/2/6
Dial down/间歇/1/4
Dial up/间歇/2/6
Dial up/间歇/3/12
Lever up/低速/3/30
Lever down/间歇/3/12
此外,需要注意:
(1)当输入的第一行数据非法时,系统输出“Wrong Format”;
(2)当第二行输入无任何合法输入时,系统不做任何输出;
(3)当对控制杆或刻度盘的操作超过界限时(例如控制杆位于“停止”档位时降档),此时系
统仍然显示当前的信息(即控制杆位于“停止”档位时的输出信息),不报错。
数据输入及输出字符编码采用 utf-8 格式,例如,逗号为英文半角字符“,”,而非中文全角字
符“,”。

在这里插入代码片
import java.util.Scanner; 

public class Main {
     
	public static void main(String[] args){
      
		int choice = 0;   
		Scanner input = new Scanner(System.in); 
		int number = input.nextInt();
		if(number!=1&&number!=2) {
   
			System.out.print("Wrong Format");
			System.exit(0);
		}
		choice = input.nextInt(); 
		Lever lever = new Lever(1,number);   
		Dial dial = new Dial(1,number);   
		Brush brush = new Brush(0);     
		Agent agent = new Agent(number,lever,dial,brush);
		if(number==1) {
   
		while(choice != 0){
   
			switch(choice){
   
			case 1://Lever up
				agent.getLever().leverUp();
				System.out.print("Lever up/");
				break;
		    case 2://Lever down     
		    	agent.getLever().leverDown();
		    	System.out.print("Lever down/");
		    	break;
		    case 3://Dial up     
		    	agent.getDial().dialUp();
		    	System.out.print("Dial up/");
		    	break;    
		    case 4://Dial down    
		    	agent.getDial().dialDown();
		    	System.out.print("Dial down/");
		    	break;
		    default:
		    	System.out.print("");
		    case 0://Terminate 
		    	System.exit(0)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值