【Java——成绩等级评定】

文章目录

    • (一)编程实现
      • 方法一、采用并列式多分支结构评定成绩等级
      • 方法二、采用嵌套式多分支结构评定成绩等级
      • 方法三、采用延拓式多分支结构评定成绩等级
      • 方法四、采用开关式多分支结构评定成绩等级
    • (二)讲解知识点
        • 1、并列式多分支结构
        • 2、嵌套式多分支结构
        • 3、延拓式多分支结构
        • 4、开关式多分支结构
    • (三)拓展练习
      • 任务1、确定给定日期是一年的第几天
      • 任务 2、构建可进不可退的多级菜单系统
      • 任务3、根据收入计算个人所得税

  • 对百分制成绩评定等级
    (100, +∞):超出范围
    [90, 100]:优秀
    [80, 90):良好
    [70, 80):中等
    [60, 70):及格
    [0, 60):不及格
    (-∞, 0):超出范围

(一)编程实现

方法一、采用并列式多分支结构评定成绩等级

  • 思路:有多少种情况,就并列写多少个单分支,分支之间相互独立
    【Java——成绩等级评定】_第1张图片
    【Java——成绩等级评定】_第2张图片
  • net.huawei.p02.t03创建Task03_1
    【Java——成绩等级评定】_第3张图片
    【Java——成绩等级评定】_第4张图片
  • 怎么解决这个问题呢?很简单,在处理部分之前将level初始化为空字符串.
    【Java——成绩等级评定】_第5张图片
  • 运行程序,查看结果(测试七种情况)
    【Java——成绩等级评定】_第6张图片
    【Java——成绩等级评定】_第7张图片
    【Java——成绩等级评定】_第8张图片
    【Java——成绩等级评定】_第9张图片
    【Java——成绩等级评定】_第10张图片
    在这里插入图片描述
    【Java——成绩等级评定】_第11张图片
  • 总结:并列式多分支结构,优点是易于理解,但缺点是效率低(思考一下,为什么效率低),其实这个程序可以作点优化,因为成绩大于100分或小于0分都是超出范围,所以可以将这两个并列的分之合而为一。
    【Java——成绩等级评定】_第12张图片

方法二、采用嵌套式多分支结构评定成绩等级

  • 思路1、从高分到低分来划分各个分数段
    【Java——成绩等级评定】_第13张图片
  • net.huawei.p02.t03包里创建Task03_2
    【Java——成绩等级评定】_第14张图片
    【Java——成绩等级评定】_第15张图片
  • 运行程序,查看结果(测试七种情况)
    【Java——成绩等级评定】_第16张图片
    【Java——成绩等级评定】_第17张图片
    【Java——成绩等级评定】_第18张图片
    【Java——成绩等级评定】_第19张图片
    【Java——成绩等级评定】_第20张图片
    【Java——成绩等级评定】_第21张图片
    【Java——成绩等级评定】_第22张图片
  • 思路2、从低分到高分来划分各个分数段
    【Java——成绩等级评定】_第23张图片
  • net.huawei.p02.t03包里创建**Task03_2_**类
    【Java——成绩等级评定】_第24张图片

【Java——成绩等级评定】_第25张图片

  • 运行程序,查看结果(测试七种情况)
    【Java——成绩等级评定】_第26张图片
    【Java——成绩等级评定】_第27张图片
    【Java——成绩等级评定】_第28张图片
    【Java——成绩等级评定】_第29张图片
    【Java——成绩等级评定】_第30张图片
    【Java——成绩等级评定】_第31张图片

在这里插入图片描述

  • 总结:嵌套式多分支结构,优点是层次分明、效率高,但缺点是嵌套层次太多时显得很繁。

方法三、采用延拓式多分支结构评定成绩等级

  • 思路1:从高分到低分来划分各个分数段
    【Java——成绩等级评定】_第32张图片
  • net.huawei.p02.t03包里创建Task03_3
    【Java——成绩等级评定】_第33张图片
    【Java——成绩等级评定】_第34张图片
  • 运行程序,查看结果
    【Java——成绩等级评定】_第35张图片
    【Java——成绩等级评定】_第36张图片
    在这里插入图片描述
    【Java——成绩等级评定】_第37张图片
    【Java——成绩等级评定】_第38张图片
    【Java——成绩等级评定】_第39张图片
    【Java——成绩等级评定】_第40张图片
  • 思路2、从低分到高分来划分各个分数段
    【Java——成绩等级评定】_第41张图片
  • net.huawei.p02.t03包里创建**Task03_3_**类
    【Java——成绩等级评定】_第42张图片

【Java——成绩等级评定】_第43张图片

  • 运行程序,查看结果
    【Java——成绩等级评定】_第44张图片
    【Java——成绩等级评定】_第45张图片
    【Java——成绩等级评定】_第46张图片
    【Java——成绩等级评定】_第47张图片
    【Java——成绩等级评定】_第48张图片
    【Java——成绩等级评定】_第49张图片
    【Java——成绩等级评定】_第50张图片
  • 总结:延拓式多分支结构,优点是只有一层,并且效率高。希望同学们务必掌握这一种多分支处理方式。

方法四、采用开关式多分支结构评定成绩等级

  • 关键点在于将成绩变量整除10,以便将各个分数段转换成离散的整数值,这样才能用开关式多分支结构来进行处理。
  • net.huawei.p02.t03包里创建Task03_4
    【Java——成绩等级评定】_第51张图片
    【Java——成绩等级评定】_第52张图片
  • 运行程序,查看结果
    【Java——成绩等级评定】_第53张图片
    【Java——成绩等级评定】_第54张图片
    【Java——成绩等级评定】_第55张图片
    【Java——成绩等级评定】_第56张图片
    【Java——成绩等级评定】_第57张图片
    【Java——成绩等级评定】_第58张图片
    【Java——成绩等级评定】_第59张图片
  • 总结:开关式多分支结构,优点是书写简洁,并且效率高,但缺点是只能针对离散型的情况进行处理。开关式多分支结构里的测试表达式,类型可以是整数、字符、甚至可以是字符串。

(二)讲解知识点

  • 多分支结构可有四种处理方式:并列式、嵌套式、延拓式、开关式
1、并列式多分支结构

【Java——成绩等级评定】_第60张图片

2、嵌套式多分支结构

【Java——成绩等级评定】_第61张图片

3、延拓式多分支结构

【Java——成绩等级评定】_第62张图片

4、开关式多分支结构

【Java——成绩等级评定】_第63张图片

(三)拓展练习

任务1、确定给定日期是一年的第几天

  • 要求输入年、月、日,最好能判断用户输入的是否是合法日期
  • 比如2022年3月31日, 那是今年的第90天(31 + 28 + 31 = 90)
  • 比如2000年3月31日,那是2000年的第91天(31 + 29 + 31 = 91)

任务 2、构建可进不可退的多级菜单系统

【Java——成绩等级评定】_第64张图片

  • 采用开关式多分支结构来实现菜单系统
  • net.huawei.p02.t03包里创建XExercise02
    【Java——成绩等级评定】_第65张图片
  • 先完成一级菜单
    【Java——成绩等级评定】_第66张图片
  • 运行程序,查看结果
    【Java——成绩等级评定】_第67张图片
    【Java——成绩等级评定】_第68张图片
    【Java——成绩等级评定】_第69张图片
  • 采用模块化思想,创建一个登录方法 login(),然后再用户选择1菜单项时调用它
    【Java——成绩等级评定】_第70张图片
  • 编写**login()**方法
    【Java——成绩等级评定】_第71张图片
  • 运行程序,测试登录方法
    【Java——成绩等级评定】_第72张图片
    【Java——成绩等级评定】_第73张图片
  • 登录成功之后,定义名片管理方法 - cardManagment()
    【Java——成绩等级评定】_第74张图片
  • 编写**cardManagement()**方法代码
    【Java——成绩等级评定】_第75张图片
  • 运行程序,测试名片管理方法
    【Java——成绩等级评定】_第76张图片
  • 现在这个菜单系统是可进但是不可退,有一个入口,但有多个入口,等我们学了循环结构之后,我们可以改进这个菜单系统,使之成为可进可退的多级菜单系统,保证系统只有唯一的入口和唯一的出口。

任务3、根据收入计算个人所得税

  • 个人所得税税率表一(综合所得适用)
    【Java——成绩等级评定】_第77张图片

你可能感兴趣的:(Java课程学习,intellij-idea,java)