Java编程案例:买飞机票

news2024/11/24 14:58:22

编程案例:

一、目的

  • 复习前半段课程学习的Java编程知识,能够使用所学的知识解决问题,提升同学们的编程能力。

二、涉及到的知识点

  • 变量、数组。
  • 运算符:基本运算符、关系运算符、逻辑运算符…
  • 程序流程控制:if、switch; for、while; 死循环、循环嵌套。
  • 跳转关键字:break、continue、return。
  • 方法

三、编程思维

  • 使用所学的Java技术解决问题的思维方式和编写代码实现出来的能力。

四、关于提升编程思维和编程能力的建议

  • 编程思维和编程能力不是一朝一夕就可以形成的,需要时间的沉淀和大量练习。
  • 前期:先模仿;后期:再创新
  • 具体实施:勤于练习代码、勤于思考、熟能生巧

案例一:买飞机票
需求:

机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
机票最终优惠价格的计算方案如下:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
分析:

键盘录入机票原价、仓位类型、月份信息,将机票最终优惠价格的计算方案封装成一个方法,并调用该方法返回机票最终的优惠价格;
方法内部:判断月份是淡季还是旺季,然后再判断是头等舱还是经济舱,之后分别计算对应季节、仓位类型的机票价格优惠计算,最终将优惠价格返回
调用方法,将用户输入的机票原价、仓位类型、月份信息传递给形参
实现:
 

import java.util.Scanner;

public class AirTicket {
    public static void main(String[] args) {
//        在main方法内
//        1.创建一个键盘录入的对象,用于用户录入机票原价、仓位类型,月份信息
        Scanner sc = new Scanner(System.in);
//        1.2用户开始进行录入,并接收录入的机票原价、仓位信息、月份信息
        System.out.println("请您输入机票原价:");
        double money = sc.nextDouble();
        System.out.println("请您输入仓位类型:");
        String airCabin = sc.next();

        System.out.println("请您输入月份(1-12):");
        int month = sc.nextInt();
//3.调用方法:将录入的机票原价、仓位类型、月份信息传递给形参、输出最终结果
        System.out.println("机票优惠后的价格:"+calc(money,airCabin,month));

    }
//    2.定义一个实现计算机票最终的优惠价格的方法
//    2.1设置三个形参:double money,String airCabin,int month,用于接收用户录入的实参
    public static double calc(double money,String airCabin,int month){
//        2.2使用if分支判断
        if (month >=5 && month <=10){
//            判断是否是旺季录入的月份是否>=5且<=10,

            switch (airCabin){
                case "头等舱":
                    money *=0.9;
                    break;
//            2.2是头等舱,录入的机票原价乘以0.9,等于优惠9折后的机票价格
                case "经济舱":
                    money*=0.85;
                    break;
//                    2.2是经济舱,录入的机票原价乘以0.85,等于优惠85折后的机票价格
                default:
                    System.out.println("您输入的仓位类型有误,请重新输入");
                    money = -1;
//                    如果都不是说明仓位类型录入有误,无法进行价格计算表示为-1
            }
        }else if (month == 11||month == 12 ||month >=1&&month<=4){
//            2.2判断是否为淡季,使用switch分支判断:录入的仓位类型是头等舱还是经济舱
            switch (airCabin){
                case "头等舱":
                    money *=0.7;
                    break;
//                    2.2是头等舱录入的机票原价乘以0.7,等于优惠7折后的机票价格
                case "经济舱":
                    money*=0.65;
                    break;
//                    2.2是经济舱录入的机票原价乘以0.65,等于优惠65折后的机票价格
                default:
                    System.out.println("您输入的仓位有误,请重新输入");
                    money = -1;
//                    仓位有误无法进行价格计算
            }
        }else {
            System.out.println("您输入月份有误,请重新输入");
            money = -1;
//            录入的月份小于1且大于12时说明录入的月份有误无法进行价格计算,表示为-1
        }
        return money;               //2.3返回最终价格
    }

}

控制台输出结果:

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

np.meshgrid()函数

文章目录(1)自己理解(2)官方解释(3)参数:3.1 x1, x2,…, xn:array_like3.2 sparse:bool, optional 默认false3.3 copy:bool, optional(1)自己理解 np.meshgrid(a, b,indexing "xy") 函数会返回 b.shape() 行 &#xff0c;a.shape() 列的二维数组。 因此 i, j 都是 …

【序列召回推荐】(task6)多兴趣召回Comirec-SA

note Comirec-SA基于attention的多兴趣建模&#xff0c;论文中先通过attention提取单一兴趣&#xff0c;再推广到多兴趣建模。另外使用贪心算法优化带有准确度多样性的目标函数。DR把MIND的attention换成argmax&#xff08;还有初始化方式不同、序列胶囊到兴趣胶囊用可学习权重…

2.线性代数基础

1.矩阵 2. 特殊矩阵 正交矩阵 AATE&#xff08;E为单位矩阵&#xff0c;AT表示“矩阵A的转置矩阵”。&#xff09;或ATAE&#xff0c;则n阶实矩阵A称为正交矩阵 正交矩阵有如下性质&#xff1a; A是正交矩阵&#xff0c;AT也是正交矩阵A的各行是单位向量且两两正交&#xff0…

html实现ezuikit.js萤石云直播监控,ezuikit.js实时监控实现,萤石云实时监控简单实现

效果图 实现 下面的播放url获取&#xff1a;登录萤石云->控制台->我的资源->设备列表->列表中&#xff1a;查看通道->监控地址 appKey和appSecret获取&#xff1a;登录萤石云->控制台->我的账号->应用信息->右侧&#xff1a;应用密钥 下载ezuikit…

(服务器客户端)网络通信是怎么实现的?7000字爆肝----原来java网络编程技术功不可没(多线程,URL,InetAddressm,TCP,UDP)集结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 java ⭐java网络编程技术⭐ 文章目录⭐java网络编程技术⭐&#x1f468;‍&#x1f4bb;一&#xff0c;URL类…

[附源码]Python计算机毕业设计Django的4s店车辆管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

虎牙、斗鱼同道同命:共同御寒

配图来自Canva可画 回顾游戏直播行业过去十年&#xff0c;先是直播行业野蛮发展玩家快速跑马圈地&#xff0c;而后历经千播大战形成斗鱼、虎牙分天下的市场格局&#xff0c;现在头部平台进入精细化、多元化运作阶段&#xff0c;市场竞争愈加激烈。 也就是说&#xff0c;游戏直…

4G DTU能装4G物联网卡吗?

科技的发展日新月异&#xff0c;我们国家的发展战略也是支持高新科技公司的发展&#xff0c;所以越来越多的高新科技公司出现&#xff0c;但凡是高新科技公司&#xff0c;在设备的联网中&#xff0c;都会用到物联卡&#xff0c;所以物联卡的市场也愈发火爆&#xff0c;那么今天…

食物链【并查集+不知道1是A,B,C哪一类的?用x,x+n,x+n+n分别表示A,B,C中有个1】【并查集中用距离表示关系】【压缩路径】

欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09; 文章字体风格&#xff1a; 红色文字表示&#xff1a;重难点 蓝色文字表示&#xff1a;思…

jenkins项目构建类型 -----Pipeline流水线项目构建

壹&#xff0c;概念 pipeline 是一套运行在jenkins上得工作流框架&#xff0c;将原本运行于单个或者多个节点得任务连接起来&#xff0c;用来实现单个任务难以完成得复杂流程编排和可视化得工作。 贰 优点 代码持久可停止多功能可扩展 叁 如何创建Jenkins Pipeline pipeli…

计算机物联网控制|5.5常规控制方案 5.6先进控制方案

11.16日课堂作业 1.已知模拟PID算式为 试推导差分增量算式。 2.PID参数Kc、Ti、Td对系统动态特性和稳态特性有何影响&#xff1f; 目录 11.16日…

[附源码]计算机毕业设计springboot高校实验室仪器设备管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Telemetry原理

Telemetry是一种网络设备监控技术&#xff0c;提供周期采样网络设备内的统计数据和状态数据的能力。 一、Telemetry概述 1.1、技术背景&#xff1a; 网络设备的统一监控和性能管理是运维平台的重要功能&#xff0c;设备的监控数据包括数据、控制和管理平面数据。 获取设备监…

学习Python的8天

1、异常处理机制 Python 中&#xff0c;用try except语句块捕获并处理异常&#xff0c;其基本语法结构如下所示&#xff1a; try:可能产生异常的代码块 except [ (Error1, Error2, ... ) [as e] ]:#(e是别名&#xff0c;可以自己起)处理异常的代码块1 except [ (Error3, Error…

【强化学习论文合集 | 2020年合集】一. ICML-2020 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

Workfine使用Oracle Express Edition数据库

Workfine 应用环境和工具 Win10 专业版操作系统Windows Terminaldocker desktop 4.10.1 安装设置Oracle Express Edition数据库 1、获取Oracle XE 18.4.0 docker 镜像&#xff0c;在 Windows Terminal 终端里执行如下命令 docker pull gvenzl/oracle-xe:18.4.0 2、下载成功…

小啊呜产品读书笔记001:《邱岳的产品手记-14》第26讲 写好产品文档的诀窍 第27讲 产品案例分析: QuartzHooked的对话式交互

小啊呜产品读书笔记001&#xff1a;《邱岳的产品手记-14》第26讲 写好产品文档的诀窍 & 第27讲 产品案例分析&#xff1a; Quartz&Hooked的对话式交互一、今日阅读计划二、泛读&知识摘录1、第26讲 写好产品文档的诀窍2、第27讲 产品案例分析&#xff1a; Quartz&am…

web前端-javascript-function函数(函数说明,创建和调用函数,其他方法函数声明创建函数、函数表达式创建函数)

函数 //var fun new Function("console.log(Hello 这是我的第一个函数);"); //fun();function fun2() {console.log("这是我的第二个函数");alert("哈哈哈哈");document.write("~~~~(>_<)~~~~"); }//console.log(fun2); //调用…

[附源码]计算机毕业设计springboot惠农微信小程序论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nginx加载Lua脚本lrucache缓存

1、简介 lrucache缓存是单进程的&#xff0c;就像redis一样&#xff0c;所以不需要锁。 2、nginx配置 #lua_code_cache off; # 把这个缓存打开&#xff0c;因为里面的在new对象的时候&#xff0c;只允许实例一个对象&#xff0c;如果不打开的话 # 每次次请求会创建一个对象&a…