Java程序设计 课件项目9 9.4 math和random类_第1页
Java程序设计 课件项目9 9.4 math和random类_第2页
Java程序设计 课件项目9 9.4 math和random类_第3页
Java程序设计 课件项目9 9.4 math和random类_第4页
Java程序设计 课件项目9 9.4 math和random类_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计语言概述8.5math和random类8.5math和random类

Math类是Java标准库中的一个工具类,提供了丰富的数学运算方法,用于执行基本和复杂的数学计算。这些方法包括三角函数、指数运算、对数运算、四舍五入等。Math类中的所有方法都是静态的,可以直接通过类名调用。

Random类是Java标准库中的一个工具类,用于生成随机数。它提供了生成随机整数、浮点数、布尔值等的方法。Random类在模拟、游戏开发、数据生成等场景中非常有用。01Random类01Math类的特点

Math类中的所有方法都是静态的,可以直接通过Math类名调用,而无需创建对象。Math类的方法是线程安全的,可以在多线程环境中安全使用。

Math类提供了两个常用的数学常量:Math.PI(圆周率π)和Math.E(自然对数的底数e)。静态方法常量线程安全02常用方法02常用方法

1.基本数学运算

绝对值:Math.abs(x),返回参数的绝对值。

最大值:Math.max(x,y),返回两个参数中的最大值。

最小值:Math.min(x,y),返回两个参数中的最小值。

四舍五入:Math.round(x),返回最接近参数的整数。

向上取整:Math.ceil(x),返回大于或等于参数的最小整数。

向下取整:Math.floor(x),返回小于或等于参数的最大整数。代码如下所示:intabsValue=Math.abs(-10);//10intmaxValue=Math.max(10,20);//20intminValue=Math.min(10,20);//10longroundedValue=Math.round(10.6);//11doubleceilValue=Math.ceil(10.1);//11.0doublefloorValue=Math.floor(10.9);//10.002常用方法

2.三角函数

正弦:Math.sin(x),返回参数的正弦值。

余弦:Math.cos(x),返回参数的余弦值。

正切:Math.tan(x),返回参数的正切值。

反正切:Math.atan(x),返回参数的反正切值。应用场景如下:doublesinValue=Math.sin(Math.PI/2);//1.0doublecosValue=Math.cos(0);//1.0doubletanValue=Math.tan(Math.PI/4);//1.0doubleatanValue=Math.atan(1);//0.7853981633974483(即π/4)02常用方法

3.指数和对数

指数:Math.exp(x),返回e的x次幂。

自然对数:Math.log(x),返回参数的自然对数。

以10为底的对数:Math.log10(x),返回参数的以10为底的对数。应用场景如下::doubleexpValue=Math.exp(1);//2.718281828459045doublelogValue=Math.log(Math.E);//1.0doublelog10Value=Math.log10(100);//2.002常用方法4.指数和对数幂运算:Math.pow(x,y),返回x的y次幂。平方根:Math.sqrt(x),返回参数的平方根。doublepowValue=Math.pow(2,3);//8.0doublesqrtValue=Math.sqrt(16);//4.05.随机数随机数:Math.random(),返回一个0到1之间的随机浮点数。doublerandomValue=Math.random();//例如:0.12345678903Random类的特点04常用方法04常用方法

1.生成随机整数

无界随机整数:nextInt(),生成一个随机整数,范围是Integer.MIN_VALUE到Integer.MAX_VALUE。

有界随机整数:nextInt(intbound),生成一个随机整数,范围是0到bound-1。使用方式如下所示:importjava.util.Random;publicclassRandomExample{publicstaticvoidmain(String[]args){Randomrandom=newRandom();intrandomInt=random.nextInt();//生成一个无界的随机整数System.out.println("无界随机整数:"+randomInt);intrandomIntBound=random.nextInt(100);//生成一个0到99之间的随机整数System.out.println("有界随机整数(0到99):"+randomIntBound);}}04常用方法

2.生成随机浮点数

随机浮点数:nextDouble(),生成一个0到1之间的随机浮点数。

随机浮点数(指定范围):通过简单的数学运算可以生成指定范围的随机浮点数。示例代码如下:importjava.util.Random;publicclassRandomExample{publicstaticvoidmain(String[]args){Randomrandom=newRandom();doublerandomDouble=random.nextDouble();//生成一个0到1之间的随机浮点数System.out.println("随机浮点数(0到1):"+randomDouble);doublerandomDoubleRange=50+random.nextDouble()*50;//生成一个50到100之间的随机浮点数System.out.println("随机浮点数(50到100):"+randomDoubleRange);}}04常用方法3.生成随机布尔值随机布尔值:nextBoolean(),生成一个随机布尔值。例如:importjava.util.Random;publicclassRandomExample{publicstaticvoidmain(String[]args){Randomrandom=newRandom();booleanrandomBoolean=random.nextBoolean();//生成一个随机布尔值System.out.println("随机布尔值:"+randomBoolean);}}04常用方法4.生成随机字节数组随机字节数组:实用nextBytes(byte[]bytes),生成一个随机字节数组:publicclassRandomExample{publicstaticvoidmain(String[]args){Randomrandom=newRandom();byte[]randomBytes=newbyte[10];random.nextBytes(randomBytes);//填充随机字节数组System.out.print("随机字节数组:");for(byteb:randomBytes){System.out.print(b+"");}}}05设置种子值05设置种子值

可以通过构造器Random(longseed)设置种子值,相同的种子值会生成相同的随机数序列。应用代码如下:importjava.util.Random;publicclassRandomExample{publicstaticvoidmain(String[]args){Randomrandom1=newRandom(12345L);Randomrandom2=newRandom(12345L);System.out.println("随机数1:"+random1.nextInt(100));//输出:随机数1:75System.out.println("随机数2:"+random2.nextInt(100));//输出:随机数2:75}}06项目演练04项目演练项目名称:智能健康助手场景设计:这是一个命令行应用程序,用于帮助用户管理健康数据,包括体重、身高、运动记录等。系统支持以下功能:1.用户注册:输入基本信息(姓名、年龄、身高、体重等)。2.BMI计算:根据用户的身高和体重计算BMI(身体质量指数)。3.运动记录:用户可以记录每天的运动时间(分钟)和运动类型(如跑步、游泳等)。4.健康建议:根据BMI和运动记录,系统提供个性化的健康建议。5.历史记录查询:用户可以查看自己的历史运动记录和BMI变化。6.退出系统:退出程序。04项目演练项目结构:HealthAssistant/├──src/│

├──Main.java//主入口│

├──User.java//用户类│

├──HealthManager.java//健康管理类│

├──ExerciseRecord.java//运动记录类│

├──Util.java//工具类(包含随机数生成、日期计算等)├──README.md//项目说明文档└──run04项目演练1.定义User类importjava.time.LocalDate;publicclassUser{privateStringname;privateintage;privatedoubleheight;//身高(米)privatedoubleweight;//体重(千克)privateLocalDateregistrationDate;privateArrayList<ExerciseRecord>exerciseRecords;publicUser(Stringname,intage,doubleheight,doubleweight){=name;this.age=age;this.height=height;this.weight=weight;this.registrationDate=LocalDate.now();this.exerciseRecords=newArrayList<>();}publicStringgetName(){returnname;}publicintgetAge(){returnage;}publicdoublegetHeight(){returnheight;}publicdoublegetWeight(){returnweight;}04项目演练publicLocalDategetRegistrationDate(){returnregistrationDate;}publicdoublecalculateBMI(){returnweight/(height*height);}publicvoidaddExerciseRecord(ExerciseRecordrecord){exerciseRecords.add(record);}publicArrayList<ExerciseRecord>getExerciseRecords(){returnexerciseRecords;}@OverridepublicStringtoString(){return"姓名:"+name+",年龄:"+age+",身高:"+height+"米,体重:"+weight+"千克";}}04项目演练importjava.time.LocalDate;publicclassExerciseRecord{privateLocalDatedate;privateStringexerciseType;privateintduration;//运动时间(分钟)publicExerciseRecord(LocalDatedate,StringexerciseType,intduration){this.date=date;this.exerciseType=exerciseType;this.duration=duration;}publicLocalDategetDate(){returndate;}2.实现ExerciseRecord类publicStringgetExerciseType(){returnexerciseType;}publicintgetDuration(){returnduration;}@OverridepublicStringtoString(){return"日期:"+date+",运动类型:"+exerciseType+",持续时间:"+duration+"分钟";}}04项目演练importjava.time.LocalDate;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassHealthManager{privateList<User>users=newArrayList<>();privateScannerscanner=newScanner(System.in);publicvoidregisterUser(){System.out.print("请输入您的姓名:");Stringname=scanner.nextLine();System.out.print("请输入您的年龄:");intage=scanner.nextInt();scanner.nextLine();//清除缓冲区System.out.print("请输入您的身高(米):");doubleheight=scanner.nextDouble();scanner.nextLine();//清除缓冲区System.out.print("请输入您的体重(千克):");doubleweight=scanner.nextDouble();scanner.nextLine();//清除缓冲区Useruser=newUser(name,age,height,weight);users.add(user);System.out.println("注册成功!");}publicvoiddisplayUsers(){if(users.isEmpty()){System.out.println("暂无用户信息!");return;}for(Useruser:users){System.out.println(user);System.out.println("BMI:"+user.calculateBMI());}}3.定义HealthManager类04项目演练publicvoidrecordExercise(){if(users.isEmpty()){System.out.println("暂无用户信息!");return;}System.out.print("请输入您的姓名:");Stringname=scanner.nextLine();Useruser=users.stream().filter(u->u.getName().equals(name)).findFirst().orElse(null);if(user==null){System.out.println("未找到用户!");return;}publicvoidrecordExercise(){if(users.isEmpty()){System.out.println("暂无用户信息!");return;}System.out.print("请输入您的姓名:");Stringname=scanner.nextLine();Useruser=users.stream().filter(u->u.getName().equals(name)).findFirst().orElse(null);if(user==null){System.out.println("未找到用户!");return;}3.定义HealthManager类04项目演练publicvoidprovideHealthAdvice(){if(users.isEmpty()){System.out.println("暂无用户信息!");return;}for(Useruser:users){doublebmi=user.calculateBMI();System.out.println(user);System.out.println("BMI:"+bmi);if(bmi<18.5){System.out.println("建议:您的体重过轻,建议增加营养摄入。");}elseif(bmi>=18.5&&bmi<24.9){System.out.println("建议:您的体重正常,继续保持健康的生活方式。");}else{System.out.println("建议:您的体重过重,建议增加运动量,控制饮食。");}}}publicvoidshowExerciseHistory(){if(users.isEmpty()){System.out.println("暂无用户信息!");return;}System.out.print("请输入您的姓名:");Stringname=scanner.nextLine();Useruser=users.stream().filter(u->u.getName().equals(name)).findFirst().orElse(null);if(user==null){System.out.println("未找到用户!");return;}3.定义HealthManager类04项目演练System.out.println("运动历史记录:");for(ExerciseRecordrecord:user.getExerciseRecords()){System.out.println(record);}}publicvoidshowMenu(){System.out.println("欢迎使用智能健康助手!");System.out.println("1.注册新用户");System.out.println("2.显示所有用户信息");System.out.println("3.记录运动");System.out.println("4.提供健康建议");System.out.println("5.查看运动历史记录");System.out.println("6.退出系统");}publicvoidrun(){while(true){showMenu();System.out.print("请选择操作:");intchoice=scanner.nextInt();scanner.nextLine();//清除缓冲区switch(choice){case1:registerUser();break;case2:displayUsers();break;case3:recordExercise();break;3.定义HealthManager类04项目演练System.out.println("运动历史记录:");for(ExerciseRecordrecord:user.getExerciseRecords()){System.out.println(record);}}publicvoidshowMenu(){System.out.println("欢迎使用智能健康助手!");System.out.println("1.注册新用户");System.out.println("2.显示所有用户信息");System.out.println("3.记录运动");System.out.println("4.提供健康建议");System.out.println("5.查看运动历史记录");System.out.println("6.退出系统");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论