Java小白入门200例52之实现淡旺季飞机票打折

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例52之实现淡旺季飞机票打折相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  51.根据出生日期计算星座
►下一篇待更新     

案例描述

某航空公司为吸引更多的顾客推出了优惠活动。原来的飞机票价为 3000 元,活动时,4~11 月旺季,头等舱 9 折,经济舱 8 折;1~3 月、12 月淡季,头等舱 5 折,经济舱 4 折,求机票的价格。

案例表格分析

月份舱位折数
4~11头等舱9折
4~11经济舱8折
12~3头等舱5折
12~3经济舱4折

方案1

用 if else 来实现

package demo.demo52;

import java.util.Scanner;

public class Ticket {

	public static void main(String[] args) {
		//得到月份
		int month = getMonth();
		//得到舱位
		int kind = getKind();
		//计算票价
		double rate = cal(month, kind);
		
		System.out.println("您选择的机票价格为:"+rate);
	}

	// 得到输入月份
	private static int getMonth() {
		int res = 0;
		System.out.println("请输入月份(1、2、3、4...):");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你月份输入的格式错误,请重新输入!");
			// 进行递归操作
			res = getMonth();
		}
		return res;
	}
	
	// 得到输入的仓位
	private static int getKind() {
		int res = 0;
		System.out.println("请输入舱位,数字1为头等舱,数字2为经济舱:");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你舱位输入的格式错误,请重新输入!");
			// 进行递归操作
			res = getKind();
		}
		return res;
	}
	//计算票价
	private static double cal(int month,int kind ) {
		double res=3000;
		// 旺季的票价计算
        if (month <= 11 && month >= 4) {
            if (kind == 1) { // 旺季头等舱
            	res = res * 0.9;
            } else if (kind == 2) { // 旺季经济舱
            	res = res * 0.8;
            }else {
				System.out.println("月份的输入有问题");
			}
        }
        // 淡季的票价计算
        else if ((month >= 1 && month <= 3) || month == 12) {
            if (kind == 1) { // 淡季头等舱
            	res = res * 0.5;
            } else if (kind == 2) { // 淡季经济舱
            	res = res * 0.4;
            }else {
            	System.out.println("舱位的输入有问题");
			}
        }
		return res;
	}
}

测试运行

请输入月份(1、2、3、4…):
1
请输入舱位,数字1为头等舱,数字2为经济舱:
1
您选择的机票价格为:1500.0

方案2

用 switch case 来实现

package demo.demo52;

import java.util.Scanner;

public class Ticket2 {

	public static void main(String[] args) {
		// 得到月份
		int month = getMonth();
		// 得到舱位
		int kind = getKind();
		// 计算票价
		double rate = cal(month, kind);

		System.out.println("您选择的机票价格为:" + rate);
	}

	// 得到输入月份
	private static int getMonth() {
		int res = 0;
		System.out.println("请输入月份(1、2、3、4...):");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你月份输入的格式错误,请重新输入!");
			// 进行递归操作
			res = getMonth();
		}
		return res;
	}

	// 得到输入的仓位
	private static int getKind() {
		int res = 0;
		System.out.println("请输入舱位,数字1为头等舱,数字2为经济舱:");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你舱位输入的格式错误,请重新输入!");
			// 进行递归操作
			res = getKind();
		}
		return res;
	}

	// 计算票价
	private static double cal(int month, int kind) {
		double res = 3000;
		switch (month) {
			// 旺季的票价计算
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
				if (kind == 1) { // 旺季头等舱
					res = res * 0.9;
				} else if (kind == 2) { // 旺季经济舱
					res = res * 0.8;
				} else {
					System.out.println("月份的输入有问题");
				}
				break;
			
			// 淡季的票价计算
			case 1:
			case 2:
			case 3:
			case 12:
	
				if (kind == 1) { // 淡季头等舱
					res = res * 0.5;
				} else if (kind == 2) { // 淡季经济舱
					res = res * 0.4;
				} else {
					System.out.println("舱位的输入有问题");
				}
				break;
			default:
				break;
		}

		return res;
	}
}

测试运行

请输入月份(1、2、3、4…):
4
请输入舱位,数字1为头等舱,数字2为经济舱:
1
您选择的机票价格为:2700.0

小结

这节总结了“实现淡旺季飞机票打折”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  51.根据出生日期计算星座
►下一篇待更新     

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例52之实现淡旺季飞机票打折的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例29之实现乘法口诀表

Java小白入门200例36之Java实现字符串大小写转换

Java小白入门200例98之Java异常

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类