• Java编程案例:买飞机票


    编程案例:

    一、目的

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

    二、涉及到的知识点

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

    三、编程思维

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

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

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

    案例一:买飞机票
    需求:

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

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

    1. import java.util.Scanner;
    2. public class AirTicket {
    3. public static void main(String[] args) {
    4. // 在main方法内
    5. // 1.创建一个键盘录入的对象,用于用户录入机票原价、仓位类型,月份信息
    6. Scanner sc = new Scanner(System.in);
    7. // 1.2用户开始进行录入,并接收录入的机票原价、仓位信息、月份信息
    8. System.out.println("请您输入机票原价:");
    9. double money = sc.nextDouble();
    10. System.out.println("请您输入仓位类型:");
    11. String airCabin = sc.next();
    12. System.out.println("请您输入月份(1-12):");
    13. int month = sc.nextInt();
    14. //3.调用方法:将录入的机票原价、仓位类型、月份信息传递给形参、输出最终结果
    15. System.out.println("机票优惠后的价格:"+calc(money,airCabin,month));
    16. }
    17. // 2.定义一个实现计算机票最终的优惠价格的方法
    18. // 2.1设置三个形参:double money,String airCabin,int month,用于接收用户录入的实参
    19. public static double calc(double money,String airCabin,int month){
    20. // 2.2使用if分支判断
    21. if (month >=5 && month <=10){
    22. // 判断是否是旺季录入的月份是否>=5<=10
    23. switch (airCabin){
    24. case "头等舱":
    25. money *=0.9;
    26. break;
    27. // 2.2是头等舱,录入的机票原价乘以0.9,等于优惠9折后的机票价格
    28. case "经济舱":
    29. money*=0.85;
    30. break;
    31. // 2.2是经济舱,录入的机票原价乘以0.85,等于优惠85折后的机票价格
    32. default:
    33. System.out.println("您输入的仓位类型有误,请重新输入");
    34. money = -1;
    35. // 如果都不是说明仓位类型录入有误,无法进行价格计算表示为-1
    36. }
    37. }else if (month == 11||month == 12 ||month >=1&&month<=4){
    38. // 2.2判断是否为淡季,使用switch分支判断:录入的仓位类型是头等舱还是经济舱
    39. switch (airCabin){
    40. case "头等舱":
    41. money *=0.7;
    42. break;
    43. // 2.2是头等舱录入的机票原价乘以0.7,等于优惠7折后的机票价格
    44. case "经济舱":
    45. money*=0.65;
    46. break;
    47. // 2.2是经济舱录入的机票原价乘以0.65,等于优惠65折后的机票价格
    48. default:
    49. System.out.println("您输入的仓位有误,请重新输入");
    50. money = -1;
    51. // 仓位有误无法进行价格计算
    52. }
    53. }else {
    54. System.out.println("您输入月份有误,请重新输入");
    55. money = -1;
    56. // 录入的月份小于1且大于12时说明录入的月份有误无法进行价格计算,表示为-1
    57. }
    58. return money; //2.3返回最终价格
    59. }
    60. }

    控制台输出结果:

     

     

     

  • 相关阅读:
    2023/9/9总结
    在Ubuntu18.04安装适合jdk8的eclipse
    1.2 Hadoop简介-hadoop-最全最完整的保姆级的java大数据学习资料
    系统架构最佳实践 -- 相关JAVA架构
    黑群晖video station评级问题
    【云原生进阶之PaaS中间件】第一章Redis-2.3.3集群模式
    LEADTOOLS 入门教程: 将注释刻录到图像上的 C# .NET Core 控制台应用程序
    ubuntu 修改磁盘名称
    用于视觉检测的线扫远心镜头VS-LTC系列
    Python中的shape[0]、shape[1]和shape[-1]分别是什么意思(附代码)
  • 原文地址:https://blog.csdn.net/weixin_58618735/article/details/128106489