首页 > 编程语言 >期末所需分数.java

期末所需分数.java

时间:2024-09-18 16:35:17浏览次数:10  
标签:分数 java Scanner System 期末 成绩 输入 out

原始问题描述

期末考试满分100分,平时成绩满分40分。总评成绩由期末考成绩的60%和平时成绩组成。已知平时成绩,求期末考试至少需得多少分,以确保总评成绩不低于60分。

原始版本参考代码

import java.util.Scanner;

public class FishTank {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("你目前的平时分是:");
        int peacetimeScore = sc.nextInt();

        int target = 60; // target:目标成绩
        int realExamScore = target - peacetimeScore;
        // realExamScore:真实期末考试成绩.即已经乘以0.6以后的成绩
        // examScore:表面期末考试成绩.例如60*0.6=36,60是表面成绩,36是真实成绩
        double examScore = realExamScore / 0.6;
        System.out.printf("你期末需要考%.1f分才能不挂科\n", examScore);
    }
}

改进版问题描述

输入:想取得的总评分数、当前平时分

输出:期末考所需分数

要求:

一,应用if和循环语句,总评分数在0到100分之间、当前平时分在0到40分之间才属于合法输入,否则不予计算;

二,程序应当可以反复执行,而不是计算一次就结束;

三,注意程序的可读性、易读性、类的命名、代码缩进等。

改进版参考代码

import java.util.Scanner;

public class FishTank {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("*****************输入任意字母可结束程序**");
            System.out.print("你目前的平时分是:");
            int peacetimeScore = sc.nextInt();
            if (peacetimeScore < 0 || peacetimeScore > 40) {
                System.out.println("非法输入,不予计算!");
                continue;
            }

            System.out.print("你的目标成绩是:");
            int target = sc.nextInt(); // target:目标成绩
            if (target < peacetimeScore || target > 100) {
                System.out.println("非法输入,不予计算!");
                continue;
            }

            int realExamScore = target - peacetimeScore;
            // realExamScore:真实期末考试成绩.即已经乘以0.6以后的成绩
            // examScore:表面期末考试成绩.例如60*0.6=36,60是表面成绩,36是真实成绩
            double examScore = realExamScore / 0.6;
            System.out.printf("你期末需要考%.1f分\n", examScore);
        }
    }
}

输入输出参考:

*****************输入任意字母可结束程序**
你目前的平时分是:24
你的目标成绩是:80
你期末需要考93.3分
*****************输入任意字母可结束程序**
你目前的平时分是:24
你的目标成绩是:60
你期末需要考60.0分
*****************输入任意字母可结束程序**
你目前的平时分是:35
你的目标成绩是:60
你期末需要考41.7分
*****************输入任意字母可结束程序**
你目前的平时分是:35
你的目标成绩是:80
你期末需要考75.0分
*****************输入任意字母可结束程序**
你目前的平时分是:iyiititit
Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:947)
    at java.base/java.util.Scanner.next(Scanner.java:1602)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2267)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2221)
    at FishTank.main(FishTank.java:10)

详尽注释版(通过ChatGPT添加)

import java.util.Scanner;  // 导入Scanner类,用于从控制台读取用户输入

public class FishTank {  // 定义一个名为FishTank的类,类是Java程序的基本组成部分
    public static void main(String[] args) {  // main方法是程序的入口,程序从这里开始执行
        Scanner sc = new Scanner(System.in);  // 创建一个Scanner对象,sc用于读取用户输入

        // 进入一个无限循环,程序会一直运行直到用户输入错误或非法数据
        while (true) {
            // 输出一个提示框,说明用户可以通过输入任意字母结束程序
            System.out.println("*****************输入任意字母可结束程序**");

            // 提示用户输入当前平时分(平时成绩),这是一个整数
            System.out.print("你目前的平时分是:");

            // 尝试读取用户输入的平时分数,如果输入了非数字,程序将会抛出异常
            int peacetimeScore = sc.nextInt();

            // 检查用户输入的平时分是否有效,平时分的范围应在0到40之间
            if (peacetimeScore < 0 || peacetimeScore > 40) {
                // 如果输入不合法,提示非法输入,并跳过本次计算,重新开始循环
                System.out.println("非法输入,不予计算!");
                continue;  // continue语句会让程序跳到下一次循环,忽略后面的代码
            }

            // 提示用户输入他们的目标总成绩,目标成绩是100分制
            System.out.print("你的目标成绩是:");

            // 尝试读取用户输入的目标分数,这个分数是期末考试的最终目标
            int target = sc.nextInt();

            // 检查目标分数是否合法。目标成绩应该大于平时分且小于等于100
            if (target < peacetimeScore || target > 100) {
                // 如果输入的目标成绩不合法,提示非法输入,并重新开始循环
                System.out.println("非法输入,不予计算!");
                continue;  // 跳过后续代码,重新开始循环
            }

            // 计算真实的期末考试成绩,即需要在期末考试中得多少分
            // realExamScore = 目标总成绩 - 平时分数
            int realExamScore = target - peacetimeScore;

            // 期末考试分数占总成绩的60%,所以计算表面期末考试分数
            // examScore = realExamScore / 0.6 表示真实期末成绩除以0.6,得出表面成绩
            double examScore = realExamScore / 0.6;

            // 输出用户在期末考试中需要考多少分,保留一位小数
            System.out.printf("你期末需要考%.1f分\n", examScore);
        }
    }
}

 

标签:分数,java,Scanner,System,期末,成绩,输入,out
From: https://www.cnblogs.com/xkxf/p/18418772

相关文章

  • Javaweb之SpringBootWeb案例之修改员工的修改回显的详细解析
     3.修改员工需求:修改员工信息编辑在进行修改员工信息的时候,我们首先先要根据员工的ID查询员工的信息用于页面回显展示,然后用户修改员工数据之后,点击保存按钮,就可以将修改的数据提交到服务端,保存到数据库。具体操作为:根据ID查询员工信息保存修改的员工信息3.1查询回显3.1.1接口......
  • java+vue计算机毕设大学生法律咨询系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会,随着法治观念的深入人心和互联网技术的飞速发展,大学生群体对法律知识的需求日益增长。然而,面对复杂的法律条文和实际问题,大学生往往感到迷......
  • java+vue计算机毕设德云社票务系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着文化娱乐产业的蓬勃发展,相声艺术作为中国传统文化的瑰宝,在现代社会中焕发出新的生机。德云社,作为相声界的领军品牌,其演出活动频繁且备受观众喜爱......
  • java+vue计算机毕设丹徒高级中学校车预约【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育事业的快速发展和城市化进程的加速,丹徒高级中学作为地区内的重要教育机构,面临着学生数量增长与交通出行需求日益增长的双重挑战。传统的校车......
  • 488.中国风中秋节专题网页 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • java计算机毕业设计漫语在线论坛设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络社区已成为人们交流思想、分享信息、建立社交关系的重要平台。在线论坛作为网络社区的一种典型形式,凭借其开放性、互动......
  • java计算机毕业设计家庭智能理财管理(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,智能化已成为现代生活的重要特征,尤其在金融管理领域,家庭智能理财管理的需求日益凸显。在快节奏的现代生活中,家庭财务管理变得复杂......
  • java计算机毕业设计列车调度信息系统的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着铁路交通的飞速发展,列车调度作为保障铁路运输安全、高效运行的核心环节,其信息化水平直接影响着铁路系统的整体运营效率和服务质量。传统的人工调......
  • java计算机毕业设计旅游指南网站(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,旅游行业正经历着前所未有的变革。传统旅游方式逐渐被线上规划、预订与评价所取代,旅游指南网站作为连接旅游者与目的地的重要桥......
  • Java 23连夜官宣发布,IDEA亲测可用!
    0前言官宣发布:IDEA已支持下载:1JEPsJEP455PrimitiveTypesinPatterns,instanceof,andswitch(Preview)通过允许在所有模式上下文中使用原始类型模式,增强了模式匹配,并扩展了instanceof和switch以适用于所有原始类型。这是一项预览语言特性。JEP466Class-Fi......