Java实验八

VS Code配置MinGW64编译非线性优化库NLopt VS Code用MinGW64编译C++代码安装MSYS2软件并配置非线性优化库NLopt和测试引用库代码的完整具体步骤。:若使用非UCRT版本(如传统MinGW64),替换所有路径中的。库文件会自动安装到MSYS2的。 阅读详情

 实验八  异常处理

1. 编写一个程序,要求从键盘输入一个圆的半径(double类型),计算并输出圆的面积。在没有加入异常处理机制时,输入的数据不是double型数据(如字符串“abc”)会产生什么结果?加入异常处理机制后,让程序在输入不正确的类型数据时给出错误提示并要求重新输入。  

import java.util.InputMismatchException;
import java.util.Scanner;
public class Text1 {
    final static double PI=3.14;
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        double r=0;
        boolean inputIsVaild=false;
        while(!inputIsVaild){
            try{
                System.out.println("请输入圆的半径");
                r=Double.parseDouble(input.nextLine());
                inputIsVaild=true;
            }catch (NumberFormatException e){
                System.out.println("输入的数据类型不是double类型,请重试");
            }
        }
        double area=r*r*PI;
        System.out.println(area);
    }

 

 

2. 分析下面的程序。

(1)程序在运行时会产生哪些异常?怎样捕获并处理异常?

(2)修改代码:不管程序在执行过程中会不会产生异常,最后都输出“程序运行结束”。

import java.util.Scanner;

public class ExceptionSample {

public static void main(String[] args) {

    Scanner sc=new Scanner(System.in);

    int a[]=new int[5];

    int n,sum=0;

    int average;

              n=sc.nextInt();

              for(int i=0;i<n;i++){

                 a[i]=sc.nextInt();

                 sum=sum+a[i];

              }

              average=sum/n;

              System.out.println(average);

      }

}

import java.util.Scanner;
import java.util.InputMismatchException;
public class Text2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        try {
            int a[] = new int[5];
            int n, sum = 0;
            int average;
            n = sc.nextInt();
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
                sum = sum + a[i];
            }
            average = sum / n;
            System.out.println(average);
        } catch (InputMismatchException e) {
            System.out.println("输入的数据格式不符合要求!");
        } catch (ArithmeticException e) {
            System.out.println("除0异常!");
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组格式异常!");
        } finally {
            System.out.println("程序运行异常!");
        }
    }
}

 

3、设计一个程序,输入两个整数和一个算术运算符(+、-、*、/),根据运算符,计算两个整数的运算结果。考虑到用户输入的数据不合法,需要捕获异常(数据格式异常、除零异常)。

import java.util.InputMismatchException;
import java.util.Scanner;
public class Text1 {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int a=input.nextInt();
        int b=input.nextInt();
        String str=input.nextLine();
        try {
            if (str.equals("+")) {
                System.out.println("相加为:" + (a + b));
            }
            if (str.equals("-")) {
                System.out.println("相减为:" + (a - b));
            }
            if (str.equals("*")) {
                System.out.println("相乘为:" + (a * b));
            }
            if (str.equals("+")) {
                System.out.println("相除为:" + (a / b));
            }
        }
        catch (ArithmeticException e){
            System.out.println("除0异常!");
        }catch (InputMismatchException e) {
            System.out.println("数据格式异常!");
        }
    }

}

 

 

4、设计一个程序,根据三角形的三边求三角形面积。要求自定义一个异常类IllegaException,在求面积的方法area()中声明抛出这个异常类型,当从键盘输入三条边的数据不能构成三角形时抛出异常。

import java.util.InputMismatchException;
import java.util.Scanner;
 class IllegaException extends Exception {
     public IllegaException(String msg) {
         super(msg);
     }
 }
    public class Text2 {
        public static void main(String[] args) throws IllegaException {
            Scanner input = new Scanner(System.in);
            try {
                System.out.println("请输入第一条边:");
                double x = input.nextDouble();
                System.out.println("请输入第二条边:");
                double y = input.nextDouble();
                System.out.println("请输入第三条边:");
                double z = input.nextDouble();
                double p = (x + y + z) / 2;
                double area=area(x,y,z);
                System.out.println("三角形的面积为:"+ area);
                }catch(IllegaException e){
                System.out.println("异常信息:" + e.getMessage());
            } catch (Exception e) {
                System.out.println("输入数据不合法!");
            }
            }
        public static double area(double a, double b, double c) throws IllegaException {
            if (a + b <= c || a + c <= b || b + c <= a) {
                throw new IllegaException("三条边无法构成三角形!");
            }
            double p = (a + b + c) / 2;
            return Math.sqrt(p * (p - a) * (p - b) * (p - c));
        }
        }

 

 

高通开发系列 - Bootloader之lk匹配dtb和dtbo中msm-id和board-id的知识 lk匹配dtb和dtbo中的msm-id和board-id等知识 阅读详情

相关推荐

vue高德地图POI关键字搜索定位

最近在项目中遇到了关于地图的问题,首先为了满足需求从而使用的是JSAPI为2.0版本的。需求是根据关键字搜索定位到该位置。值得注意的是在使用 AMap.Event.addListener时 Event一定要大写的E,不然页面会报错。在地图上定义一个输入框,根据输入的位置进行提示,然后点击后跳转到对应的位置并打点标记。JSAPI主要使用这两个。

YL 2136

实验八 异常处理

异常处理

foxmaxiaoyu的博客 594

CMOS中的 latch-up 闩锁效应、添加tap解决latch-up、使用combained area绘制TAP TAP的作用 IC后端版图【VLSI】

本文详细阐述了闩锁效应latch-up问题、如何通过添加Tap来解决。详细讲述了如何通过combained area来绘制TAP

Jie_MSD的博客 1万+

实训

1. 编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现: ² 在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用户输入; ² 在catch语句块中,捕获被0除所产生的异常,并输出异常信息; 在finally语句块中,输出一条语句。 import java.util.Scanner; public clas...

weixin_30535565的博客 371

ST-LINK调试STM32H743必看:CubeMX工程中缺失的这行代码导致程序跑飞

本文深入剖析了使用ST-LINK调试STM32H743时,因CubeMX工程中缺失电源电压档位配置代码而导致程序跑飞或出现“Can not access memory”错误的问题。文章解释了H7系列电源与时钟耦合的核心原理,提供了具体的代码修复方案和系统化的调试排查思路,帮助开发者从根本上解决这一常见调试困境。

weixin_29191669的博客 281

GR00TN1.7国内本地下载+模型下在+hugingface无法连接,本地模型下载

GR00TN1.7

alsj123456的博客 97

Java实验报告-异常

1.编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样进行异常处理。 import java.util.InputMismatchException; import java.util.Scanner; public class Test1 { public static void ...

Laic Zhang的博客 4982

如何使用Calibre PERC抽出 点到点/p2p 电阻

@[TOC](如何使用Calibre PERC抽点到点(p2p)电阻) 一、前言 需要实现的功能是从gds中抽出net的点到点的电阻。如下图这样。 二、准备工作 lvs rule pex rule(必要时可以自己定义RC rule) gds p2p点的坐标 定义prode.defs 因为p2p的点是变化的,所以每次prode定义都要重新出,对应的perc rule也是根据每个p2p点的定义来的,perc rule也是每次都要重新出。如果需要可以写一个脚本自动出这些定义文件。 PROBE_POINTS

kobayashiyou的博客 1万+

新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)

了解了 WebIDE 的界面布局以及常用功能的使用,你可以进一步通过鼠标点击菜单栏中的每一个按钮了解 WebIDE 提供的全部功能。 WebIDE 非常适合频繁使用命令行工具的项目、前端项目、以及涉及 Web 服务的项目开发,实验中的示例项目只能算作抛砖引玉,希望你Notebook 的基本使用技巧,这对后续的学习非常重要。正如前面所说,Jupyter Notebook 在数据科学、机器学习、深度学习领域非常的流行,熟练运用 Jupyter Notebook 将为未来的学习工作提供极大便利。

兴趣使然的编程菜鸟 3968

gnss变形监测基础(四)

监测站的数据采样率指的是监测站在单位时间内收集数据的频率,通常以赫兹(Hz)为单位。在GNSS变形监测中,数据采样率决定了监测系统能够捕捉到的变形动态变化的详细程度和时间分辨率。例如,一个采样率为1Hz的GNSS监测站意味着它每秒钟收集一次位置数据;而一个采样率为10Hz的监测站则每秒钟收集10次位置数据。较高的采样率能够提供更细致的时间序列数据,有助于分析快速变化的动态过程,如地震活动或建筑物的振动响应。然而,较高的采样率也意味着数据量更大,可能需要更多的存储空间和更强大的数据处理能力。

我的博客 1292

android11.0 Launcher3 高端定制之循环滑动

待机界面可以向左、向右循环切换页面 效果图 修改清单 packages/apps/Launcher3/res/values-zh-rCN/strings.xml packages/apps/Launcher3/res/values/config.xml packages/apps/Launcher3/res/values/strings.xml packages/apps/Launcher3/res/xml/launcher_preferences.xml packages/apps/Launc

cczhengv 1549

Java小知识,关于输入double,float,和字符类

Java小知识,关于输入double,float,和字符类型 分析:可以使用Scanner类,不同的方法中可以输入不同类型的值。如nextInt()输入的为int类型,nextDouble()输入的是double类型。. 直接上代码,显而易见: import java.util.Scanner; public class scanner { public static void main(String[] args) { Scanner sc=new Scanner(System.i

qq_51917627的博客 716

7、Python高光谱分析工具(PyHAT)简介

Python高光谱分析工具(PyHAT)是一个开源、跨平台的Python库及图形用户界面,用于行星光谱数据的可视化与分析。它支持多种高光谱传感器数据,如火星勘测轨道飞行器的CRISM、月船1号的M3以及SELENE Kaguya SP点光谱仪,提供预处理、衍生产品生成、统计学习和机器学习分析功能。PyHAT基于Pandas和NumPy构建,兼容Jupyter和QGIS环境,旨在解决现有光谱分析方法缺乏开源实现、难以探索性分析和算法分散的问题。其模块化架构涵盖数据输入/输出、通用光谱变换、测绘与点观测工具及高

aa123的博客 138

SWUST--Java实验(八) 网络编程

import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import java.awt.Fon...

CasT1R's Blog 1037

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java实验 实验八

java java实验八

2301_80677138的博客 1584

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java实验报告(八)

1.设计一个线程类,它能输出 50 以内的奇数或偶数。用书中介绍的四种构造线程方法,创建两个线程对象,分别输出奇数和偶数。 2. 给定容量 1000 的 int 型数组,依次存储数据 0~999。下面代码采用多线 程技术计算其累加和。 3. 功能:实现多人竞争打电话,借助互斥机制,确保每个人的说话是连续 的。 class DianHuaTing{//此类对象仅提供多人打电话的共享资源 private final String dht="我是电话亭"; } class App{ public static

future_dreaming的博客 737

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java课程实验报告实验八——抽象类和接口

一、实验目的 1.设计和使用抽象类 2.定义接口以及实现接口的类 3.理解接口继承和多态 二、实验内容 1.(P455,13.1)【三角形类】设计一个扩展自抽象类GeometriObject的新的Triangle类。绘制Triangle类和GeometricObject类的UML图并实现Triangle类。编写一个测试程序,提示用户输入三角形的三条边、一种颜色以及一个表明该三角形是否填充的布尔值。程序应该根据用户的输入,使用这些边以及颜色和是否填充的信息,创建一个Triangle对象。程序应该显示面积、周长

yeweij226的博客 1万+

JAVA实验八 数据库应用

实验目的: 了解数据库系统、关系模型、客户-服务器模式等基本概念,掌握 SQL的数据定义、数据操纵和数据查询等语句的语法;了解 JDBC 各种数据库驱动程 序类型,熟悉 JDBC 提供的接口和类,掌握指定驱动类型、连接数据库、执行 SQL语句、处理结果集等操作方法。 实验内容: 数据库应用程序 1)首先在数据库应用程序中创建数据库 Studentinfo,按照下表的结构在数据库中建立"student"表。 源代码: create table student (Name Char(10), Sex Char

努力学习的小菜同学 3582

实验八 java多线程操作_20182310实验八实验报告

20182310 2019-2020 《数据结构与面向对象程序设计》实验八 树报告课程:《程序设计与数据结构》班级: 1823姓名: 周烔学号:20182310实验教师:王志强实验日期:2019年11月11日必修/选修: 必修1.实验内容1.参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorde...

weixin_34234884的博客 307

java jdbc实验,实验八 Java-JDBC编程

目录1. 掌握加载JDBC驱动程序;2. 掌握数据库连接的创建;3. 掌握Statement对象的创建;4. 掌握Statement接口数据库进行增加、删除、修改和查询操作;5. 掌握Statement对象的executeQuery()和executeUpdate()方法的使用;6. 掌握PreparedStatement接口数据库进行增加、删除、修改和查询操作;7. 掌握setString()、...

weixin_39784195的博客 569

从零开始学JAVA(实验八)

浙江万里学院实验报告 课程名称: 面向对象程序设计 实验名称:实验 八 Java核心API

want_to_fly_的博客 327

java复习八实验

(1)有TV.java、Family.java和Main.java3个源文件,其中TV.java中的TV类负责创建“电视”对象,Family.java中的Family类负责创建“家庭”对象,Main.java是主类。System.out.println("zhangSanFamily将电视更换到" + m + "频道");System.out.println("将\"惊慌失错\"替换为\"惊慌失措\"的字符串:");System.out.println("将\"登陆\"替换为\"登录\"的字符串:");

weixin_64495579的博客 470

JAVA实验八 线程

编写一个程序,模拟三个售票窗口同时进行售票,总共有20张票可售,每个窗口每次售出一张票,要求打印出售票的过程,即哪个窗口售出一张票,剩余几张票。票全部售完后三个线程结束,并输出“票已售罄”。 class Text{ int s; void count() { for(int i=1;i<=10;i++) { int a=1; for(int j=1;j<=10;j++) { a=a*j; } s=s+a; } } } public class Dog

菜鸡的优快云云存档 520

Java 实验八 常用实用类

实验8.1 检索简历 实验8.2 main( )方法的参数化

qq_69055252的博客 2160
上一篇: Java实验六
下一篇: 湖北师范大学—Python程序设计1.1四则运算
汽水爆炸
博客等级 码龄4年 1903粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值