(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

 写在前面

1、基于2022级软件工程/计算机科学与技术实验指导书

2、代码仅提供参考

3、如果代码不满足你的要求,请寻求其他的途径

运行环境

window11家庭版

IntelliJ IDEA 2023.2.2

jdk17.0.6

实验要求

1、 控制台菜单。要求如下:

1) 在 Exp01_ x 类中添加一个方法 menu_x,用于显示下面各实验题目,并调它们的方 法;

2) 以菜单形式显示各实验题目,如:0.结束 1.面积和周长 2.成绩和等级;

3) 如果输入的题号不是菜单中所列数字序号,要明确提示是负数或超范围,并显示菜 单让用户重新选择;

4) 各实验题目执行完成后,继续显示菜单,直到用户选择 0 结束 menu_x 方法;

5) 本方法由 Main 类的 main 方法调用。

2、 面积和周长。要求如下:

1) 在 Exp01_ x 类中添加一个方法 areaPerimeter_x,功能是当输入的两个数都大于 0 且小于等于 30 时,则输出矩形的面积和周长;如果只有一个数大于 0 且小于等 于 30 时,则输出圆的面积和周长;如果两个数均小于等于 0 或者大于 30 时,则 提示输入数据无效;

2) 本方法由 Exp01_ x 类的 menu_x 方法调用。

3、 成绩和等级。要求如下:

1) 在 Exp01_ x 类中添加一个方法 grade_x,功能是打印某学生一学期的 Java,数据库 和英语的成绩和等级(优、良、中、及格和不及格),并计算出平均成绩。

2) 本方法由 Exp01_ x 类的 menu_x 方法调用。

4、 求近似值。要求如下:

1) 在 Exp01_ x 类中添加一个方法 approximate_x,功能是求 e=1+1/1!+1/2!+1/3!+…+1/n! 的近似值,当 1/n! 小于万分之一时停止计算。

2) 本方法由 Exp01_ x 类的 menu_x 方法调用。

5、 公式计算。要求如下:

1) 在 Exp01_ x 类中分别添加方法 formulaIf_x 和 formulaSwitch_x,分别用 if 和 switch 语句实现给定一个 t 值,计算并输出 y 的值,公式如下:

𝑦 = {

𝑡 2 − 1    0 ≤ 𝑡 < 1

𝑡 3 − 2 ⋅ 𝑡 − 2     1 ≤ 𝑡 < 3

𝑡 2 − 𝑡 ⋅ 𝑠𝑖𝑛𝑡     3 ≤ 𝑡 < 5

𝑡 + 1     5 ≤ 𝑡 < 7

𝑡 − 1     其他

}

2) 两个方法均由 Exp01_ x 类的 menu_x 方法调用

源代码

Exp01_x.java

import java.util.Scanner;
public class Exp01_x {// 实验题目1:面积和周长public void areaPerimeter_x() {Scanner scanner=new Scanner(System.in);int x, y;while (true) {System.out.println("实验题目1:面积和周长");System.out.println("请输入两个数(范围要求:大于0且小于等于30):");x = scanner.nextInt();y = scanner.nextInt();if (x > 0 && x <= 30 && y > 0 && y <= 30) {// 计算矩形的面积和周长System.out.println("输入数据都大于0且小于等于30,计算矩形面积");System.out.println("矩形的面积:" + (x * y));System.out.println("矩形的周长:" + (2 * (x + y)));break;} else if (x > 0 && x <= 30 || y > 0 && y <= 30) {// 计算圆的面积和周长double radius = (x > y) ? x : y;System.out.println("输入数据只有一个大于0且小于等于30,计算圆的面积");System.out.println("圆的面积:" + (Math.PI * radius * radius));System.out.println("圆的周长:" + (2 * Math.PI * radius));break;} else {System.out.println("输入的数据无效,请确保至少有一个数大于0且小于等于30。");}}}// 实验题目2:成绩和等级public void grade_x() {System.out.println("实验题目2:成绩和等级");double javaScore, databaseScore, englishScore;String javaGrade, databaseGrade, englishGrade;double averageScore;Scanner scanner=new Scanner(System.in);System.out.println("请输入学生的Java成绩:");javaScore = scanner.nextDouble();System.out.println("请输入学生的数据库成绩:");databaseScore = scanner.nextDouble();System.out.println("请输入学生的英语成绩:");englishScore =scanner.nextDouble();// 计算Java成绩等级if (javaScore >= 90) {javaGrade = "优";} else if (javaScore >= 80) {javaGrade = "良";} else if (javaScore >= 70) {javaGrade = "中";} else if (javaScore >= 60) {javaGrade = "及格";} else {javaGrade = "不及格";}// 计算数据库成绩等级if (databaseScore >= 90) {databaseGrade = "优";} else if (databaseScore >= 80) {databaseGrade = "良";} else if (databaseScore >= 70) {databaseGrade = "中";} else if (databaseScore >= 60) {databaseGrade = "及格";} else {databaseGrade = "不及格";}// 计算英语成绩等级if (englishScore >= 90) {englishGrade = "优";} else if (englishScore >= 80) {englishGrade = "良";} else if (englishScore >= 70) {englishGrade = "中";} else if (englishScore >= 60) {englishGrade = "及格";} else {englishGrade = "不及格";}// 计算平均成绩averageScore = (javaScore + databaseScore + englishScore) / 3;// 打印成绩和等级System.out.println("Java成绩:" + javaScore + "分,等级:" + javaGrade);System.out.println("数据库成绩:" + databaseScore + "分,等级:" + databaseGrade);System.out.println("英语成绩:" + englishScore + "分,等级:" + englishGrade);System.out.println("平均成绩:" + averageScore + "分");}// 实验题目3:求近似值public void approximate_x() {System.out.println("实验题目4:求近似值");double e = 1; // e的初始值为1int n = 1; // 初始化n为1double term; // 用来存储每一项的值while (true) {term = 1.0 / factorial(n); // 计算第n项的值e += term; // 将第n项加到e上n++; // n自增if (term < 0.0001) { // 当1/n!小于0.0001时停止计算break;}}System.out.println("e的近似值为:" + e);}// 计算n的阶乘public double factorial(int n) {if (n == 0) {return 1; // 0的阶乘定义为1} else {return n * factorial(n - 1); // 递归计算阶乘}}// 实验题目5:公式计算// 使用if语句计算y的值public static void formulaIf_x(double t) {double y;if (t >= 0 && t < 1) {y = t * t - 1;} else if (t >= 1 && t < 3) {y = t * t * t - 2 * t - 2;} else if (t >= 3 && t < 5) {y = t * t - t * Math.sin(Math.PI * t / 180);} else if (t >= 5 && t < 7) {y = t + 1;} else {y = t - 1;}System.out.println("使用if语句计算出的y值:" + y);}// 使用switch语句计算y的值public static void formulaSwitch_x(double t) {double y;int caseValue = (int) t;switch (caseValue) {case 0:case 1: y = t * t - 1; break;case 2:case 3: y = t * t * t - 2 * t - 2; break;case 4:case 5: y = t * t - t * Math.sin(Math.PI * t / 180); break;case 6: y = t + 1; break;default: y = t - 1; break;}System.out.println("使用switch语句计算出的y值:" + y);}
// 显示菜单并调用实验题目的方法public void menu_x() {int choice;Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请选择实验题目:");System.out.println("0.结束");System.out.println("1.面积和周长");System.out.println("2.成绩和等级");System.out.println("3.求近似值");System.out.println("4.公式计算(使用if语句)");System.out.println("5.公式计算(使用switch语句)");System.out.print("请输入你的选择:");choice = scanner.nextInt();switch (choice) {case 0:System.out.println("程序已退出");System.exit(0);break;case 1:areaPerimeter_x();break;case 2:grade_x();break;case 3:approximate_x();break;case 4:System.out.println("请输入t的值:");double t1=scanner.nextDouble();formulaIf_x(t1);break;case 5:System.out.println("请输入t的值:");double t2=scanner.nextDouble();formulaSwitch_x(t2);break;default:System.out.println("输入的数据无效,请重新输入");break;}}}}

Main.java

public class Main {public static void main(String[] args) {Exp01_x exp01 = new Exp01_x();exp01.menu_x(); // 调用菜单方法}
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器化技术(互联机制实现便捷互访)

容器的互联是一种让多个容器中的应用进行快速交互的方式。它会在源和接收容器之间创建连接关系&#xff0c;接收容器可以通过容器名快速访问到源容器&#xff0c;而不用指定具体的IP地址。 1.自定义容器命名 连接系统依据容器的名称来执行。因此&#xff0c;首先需要自定义一…

DataFunSummit 2023因果推断在线峰会:解码数据与因果,引领智能决策新篇章(附大会核心PPT下载)

在数据驱动的时代&#xff0c;因果推断作为数据科学领域的重要分支&#xff0c;正日益受到业界的广泛关注。DataFunSummit 2023年因果推断在线峰会&#xff0c;汇聚了国内外顶尖的因果推断领域专家、学者及业界精英&#xff0c;共同探讨因果推断的最新进展、应用与挑战。本文将…

人工智能的迷惑行为:一场技术与期望的较量

目录 写在开头1. 人工智能迷惑行为的现象1.1 智能助手的理解误区1.2 自动翻译的奇妙旅程1.3 在线客服的困惑回答1.4 图像识别的惊奇误会1.5 自动作文生成器的创意外溢1.6 生成式绘画AI的“艺术创作”1.7 音乐创作AI的奇特旋律1.8 自动生成的小说情节1.9 生成式AI写诗 2 导致迷惑…

天星数科立足专业,持续深化金融科技赋能产业

党的二十大报告提出“建设现代化产业体系”&#xff0c;要求“坚持把发展经济的着力点放在实体经济上”。这是站在改革开放40多年发展实践基础上&#xff0c;实现第二个百年奋斗目标作出的战略部署。天星数科作为深耕金融服务多年的科技公司&#xff0c;聚焦主业、立足于专业&a…

Python基础学习(6)函数基础与函数参数

文章目录 一.认识参数1.特点2.优点 二.定义函数三,函数参数1.必备参数2.默认参数3.不定长参数①不定长参数1②不定长参数2 四,返回值(return)五,文档字符串1.**作用**:2.**语法格式:**3.输出方式: Python基础学习(1)基本知识 Python基础学习(2)序列类型方法与数据类型转换 Pyth…

数字媒体专业AR增强现实仿真模拟实训

增强现实技术是一种利用计算机生成的图像、声音、传感器数据等多媒体信息&#xff0c;实时地与用户所处的真实环境相结合&#xff0c;为用户提供一种身临其境的体验。这种技术广泛应用于游戏、娱乐、旅游等领域&#xff0c;现在也逐渐在教育领域崭露头角。 二、数字媒体专业运用…

[MYSQL数据库]--表内操作(CURD)

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、表的 Cre…

Sklearn线性回归

Scikit-learn 中的线性回归是一个用于监督学习的算法&#xff0c;它用于拟合数据集中的特征和目标变量之间的线性关系。以下是使用 Scikit-learn 实现线性回归的基本步骤&#xff1a; 1. 导入所需库 首先&#xff0c;你需要导入所需的库和模块。 import numpy as np import …

蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party&#xff0c;并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来&#xff0c;他一共吹熄了236根蜡烛。 请问&#xff0c;他从多少岁开始过生日party的&#xff1f; 请填写他开始过生日party的年龄数。 注意&…

Mybatis的XML配置文件

Xml文件中写SQL 为什么要学? 学习了Mybatis中XML配置文件的开发方式了&#xff0c;大家可能会存在一个疑问&#xff1a;到底是使用注解方式开发还是使用XML方式开发&#xff1f; 官方说明&#xff1a;https://mybatis.net.cn/getting-started.html 结论&#xff1a;使用Myba…

【数据集】2023自动驾驶开源数据集-学习笔记

文章目录 1. 自动驾驶有哪些公开数据集2. 预测相关的数据集有哪些 1. 自动驾驶有哪些公开数据集 waymo open dataset 适应任务: 域适应&#xff0c;2D追踪&#xff0c;2D检测&#xff0c;3D追踪&#xff0c;3D检测&#xff0c;实时2D检测&#xff0c;实时3D检测&#xff0c;交互…

Python3 @get_time 装饰器

Python get_time 装饰器 get_time 装饰器可以用于计算函数的执行时间。 示例&#xff1a; import timedef get_time(func):def wrapper(*args, **kwargs):start_time time.time()func(*args, **kwargs)end_time time.time()print(f"函数 {func.__name__} 执行时间&am…

【数据挖掘】实验2:R入门2

实验2&#xff1a;R入门2 一&#xff1a;实验目的与要求 1&#xff1a;熟悉和掌握R数据类型。 2&#xff1a;熟悉和掌握R语言的数据读写。 二&#xff1a;实验内容 1&#xff1a;R数据类型 【基本赋值】 Eg.1代码&#xff1a; x <- 8 x Eg.2代码&#xff1a; a city …

php7.3.4连接sqlserver(windows平台)

前言 有个项目需要手上laravel连接客户的sqlserver数据库读取数据&#xff0c;故在本地开发的lnmp环境中&#xff0c;php需要增加扩展 过程 从微软官网下载sqlsrv扩展,注意注意php版本&#xff0c;下载地址 解压的文件会有nts和ts两个版本&#xff0c;本地打开phpinfo查看 将…

基于SSM框架的理发店管理系统的设计与实现【附项目源码】分享

基于SSM框架的理发店管理系统的设计与实现&#xff1a; 源码地址&#xff1a;https://download.csdn.net/download/qq_41810183/88842785 理发店管理系统设计与实现需求文档 一、引言 随着信息技术的发展和普及&#xff0c;各行业都在寻求信息化管理以提升服务效率与用户体验…

基于Springboot影城管理系统设计与实现

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一、研究背景…

惬意上手Redis

Redis介绍 Redis&#xff08;全称为REmote Dictionary Server&#xff09;是一个开源的、内存中的数据存储结构&#xff0c;主要用作应用程序缓存或快速相应数据库。 REmote Dictionary Server: 有道翻译Redis是“远程字典服务”&#xff0c;远程不过是远程访问&#xff0c;而…

计算机网络面经八股-解释一下HTTP长连接和短连接?

在HTTP/1.0中&#xff0c;默认使用的是短连接。也就是说&#xff0c;浏览器和服务器每进行一次HTTP操作&#xff0c;就建立一次连接&#xff0c;但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源&#xff0c;如JavaScript文件、图…

OpenCV和Mediapipe实现摸嘴或鼻检测

目录 引言 1.过程简介 2. 代码结构 2.1 导入库 2.2 初始化模型 2.3 读取视频流或摄像头 2.4 初始化FPS计算 2.5 主循环 2.6 转换BGR图像为RGB图像 2.7 运行姿势检测模型和手部检测模型 2.8 绘制姿势关键点及连接线 2.9 检测手部关键点 2.10 判断手部与鼻子、嘴的相对…

使用Flask快速搭建轻量级Web应用【第127篇—Flask】

使用Flask快速搭建轻量级Web应用 在Web开发领域&#xff0c;选择适合项目需求的框架至关重要。Flask&#xff0c;一个轻量级的Python Web框架&#xff0c;以其简洁、灵活和易扩展的特性而备受开发者青睐。本文将介绍如何使用Flask迅速搭建一个轻量级的Web应用&#xff0c;并通过…