实验一 java基础编程(实验报告)

姓名: XXX          班级: XXX          学号: XXX

一、实验目的

  在集成开发环境下,依照Java语言的基本语法编译和执行简单Java的程序,通过本次实践环节理解java程序的运行机制,掌握 java 语言的基本结构和程序设计方法

二、实验目标

  学习使用java变量的声明和使用,掌握for循环等其他循环语句的使用,理解面向对象编程,会使用面向对象编程的方法解决问题,了解静态方法和普通方法的区别,熟悉访问限定符的修饰作用

三、实验内容

3.1 实验环境

IntelliJ IDEA Ultimate Edition 2021.2 x64. + openjdk-17.0.1.

3.2 具体实验内容

问题一
  • 小明带了20元来商店买一本书,剩余的钱还可以买哪种商品?可以购买几件?剩余多少钱?

问题分析:小明在买完数后,剩余的钱是10元,接下来通过枚举的方式,计算出他可以买的剩余物品的数量,使用三层for循环的方式。

选择模型:枚举

public class FirstQuestion {public static void main (String[] args) {int money = 20;money = money - 10;System.out.println("After purchasing book: " + money);for (int bookCount = 0; bookCount * 10 <= money; bookCount++)for (int milkCount = 0; milkCount * 5 <= money; milkCount++)for (int eraserCount = 0; eraserCount <= money; eraserCount++)for (int rulerCount = 0; rulerCount * 2 <= money; rulerCount++) {int restMoney = money - bookCount * 10 - milkCount * 5 - eraserCount - rulerCount * 2;if (restMoney >= 0)System.out.printf("他可以买%d本书, %d个牛奶, %d个橡皮擦, %d个尺子 剩余%d元\n", bookCount, milkCount, eraserCount, rulerCount, restMoney);}}
}
  • 实验结果

他可以买0本书, 0个牛奶, 0个橡皮擦, 0个尺子 剩余10元
他可以买0本书, 0个牛奶, 0个橡皮擦, 1个尺子 剩余8元
他可以买0本书, 0个牛奶, 0个橡皮擦, 2个尺子 剩余6元
他可以买0本书, 0个牛奶, 0个橡皮擦, 3个尺子 剩余4元
他可以买0本书, 0个牛奶, 0个橡皮擦, 4个尺子 剩余2元
他可以买0本书, 0个牛奶, 0个橡皮擦, 5个尺子 剩余0元
他可以买0本书, 0个牛奶, 1个橡皮擦, 0个尺子 剩余9元
他可以买0本书, 0个牛奶, 1个橡皮擦, 1个尺子 剩余7元
他可以买0本书, 0个牛奶, 1个橡皮擦, 2个尺子 剩余5元
他可以买0本书, 0个牛奶, 1个橡皮擦, 3个尺子 剩余3元
他可以买0本书, 0个牛奶, 1个橡皮擦, 4个尺子 剩余1元
他可以买0本书, 0个牛奶, 2个橡皮擦, 0个尺子 剩余8元
他可以买0本书, 0个牛奶, 2个橡皮擦, 1个尺子 剩余6元
他可以买0本书, 0个牛奶, 2个橡皮擦, 2个尺子 剩余4元
他可以买0本书, 0个牛奶, 2个橡皮擦, 3个尺子 剩余2元
他可以买0本书, 0个牛奶, 2个橡皮擦, 4个尺子 剩余0元
他可以买0本书, 0个牛奶, 3个橡皮擦, 0个尺子 剩余7元
他可以买0本书, 0个牛奶, 3个橡皮擦, 1个尺子 剩余5元
他可以买0本书, 0个牛奶, 3个橡皮擦, 2个尺子 剩余3元
他可以买0本书, 0个牛奶, 3个橡皮擦, 3个尺子 剩余1元
他可以买0本书, 0个牛奶, 4个橡皮擦, 0个尺子 剩余6元
他可以买0本书, 0个牛奶, 4个橡皮擦, 1个尺子 剩余4元
他可以买0本书, 0个牛奶, 4个橡皮擦, 2个尺子 剩余2元
他可以买0本书, 0个牛奶, 4个橡皮擦, 3个尺子 剩余0元
他可以买0本书, 0个牛奶, 5个橡皮擦, 0个尺子 剩余5元
他可以买0本书, 0个牛奶, 5个橡皮擦, 1个尺子 剩余3元
他可以买0本书, 0个牛奶, 5个橡皮擦, 2个尺子 剩余1元
他可以买0本书, 0个牛奶, 6个橡皮擦, 0个尺子 剩余4元
他可以买0本书, 0个牛奶, 6个橡皮擦, 1个尺子 剩余2元
他可以买0本书, 0个牛奶, 6个橡皮擦, 2个尺子 剩余0元
他可以买0本书, 0个牛奶, 7个橡皮擦, 0个尺子 剩余3元
他可以买0本书, 0个牛奶, 7个橡皮擦, 1个尺子 剩余1元
他可以买0本书, 0个牛奶, 8个橡皮擦, 0个尺子 剩余2元
他可以买0本书, 0个牛奶, 8个橡皮擦, 1个尺子 剩余0元
他可以买0本书, 0个牛奶, 9个橡皮擦, 0个尺子 剩余1元
他可以买0本书, 0个牛奶, 10个橡皮擦, 0个尺子 剩余0元
他可以买0本书, 1个牛奶, 0个橡皮擦, 0个尺子 剩余5元
他可以买0本书, 1个牛奶, 0个橡皮擦, 1个尺子 剩余3元
他可以买0本书, 1个牛奶, 0个橡皮擦, 2个尺子 剩余1元
他可以买0本书, 1个牛奶, 1个橡皮擦, 0个尺子 剩余4元
他可以买0本书, 1个牛奶, 1个橡皮擦, 1个尺子 剩余2元
他可以买0本书, 1个牛奶, 1个橡皮擦, 2个尺子 剩余0元
他可以买0本书, 1个牛奶, 2个橡皮擦, 0个尺子 剩余3元
他可以买0本书, 1个牛奶, 2个橡皮擦, 1个尺子 剩余1元
他可以买0本书, 1个牛奶, 3个橡皮擦, 0个尺子 剩余2元
他可以买0本书, 1个牛奶, 3个橡皮擦, 1个尺子 剩余0元
他可以买0本书, 1个牛奶, 4个橡皮擦, 0个尺子 剩余1元
他可以买0本书, 1个牛奶, 5个橡皮擦, 0个尺子 剩余0元
他可以买0本书, 2个牛奶, 0个橡皮擦, 0个尺子 剩余0元
他可以买1本书, 0个牛奶, 0个橡皮擦, 0个尺子 剩余0元

  • 错误分析

要注意这里不能有负的钱数
需要注意i f 的条件

问题二
  • 利用switch语句将学生成绩分为优秀(90-100分)良好(80-89)中(70-79)及格(60-69)不及格(<60)
import java.util.Scanner;public class SecondQuestion {public static void main (String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个有效成绩");try {int score = scanner.nextInt();switch (score / 10) {case 9,10 -> System.out.println("优秀");case 8 -> System.out.println("良好");case 7 -> System.out.println("中等");case 6 -> System.out.println("及格");default -> System.out.println("不及格");}} catch (Exception e) {System.out.println("输入错误");}}
}
  • 实验结果

请输入一个有效成绩
2
不及格

请输入一个有效成绩
;;;
输入错误

  • 错误分析

break忘记写,导致输出很多
分数除以10写成 模10
输入不为数字

问题三
  • 定义一个计算器类,该类中包含加、减、乘、除4个静态方法,并定义一个测试类,调用对应的方法进行四则运算。
public class ThirdQuestion {public static void main (String[] args) {Test.test();}
}class Calculator {public static double add (double o1, double o2) {return o1 + o2;}public static double sub (double o1, double o2) {return o1 - o2;}public static double multi (double o1, double o2) {return o1 * o2;}public static double div (double o1, double o2) throws ArithmeticException {return o1 / o2;}
}class Test {public static void test () {double num1 = 1;double num2 = 0;System.out.printf("%f + %f = %f\n", num1, num2, Calculator.add(num1, num2));System.out.printf("%f - %f = %f\n", num1, num2, Calculator.sub(num1, num2));System.out.printf("%f × %f = %f\n", num1, num2, Calculator.multi(num1, num2));try {System.out.printf("%f ÷ %f = %f\n", num1, num2, Calculator.div(num1, num2));} catch (ArithmeticException e) {System.out.println("计算错误,除数为0");}}
}
  • 实验结果

1.000000 + 0.000000 = 1.000000
1.000000 - 0.000000 = 1.000000
1.000000 × 0.000000 = 0.000000
1.000000 ÷ 0.000000 = Infinity

  • 错误分析

除数为0,需要处理异常

问题四
  • 打印100-999以内的水仙花数(水仙花数即每个位数上数字的3次幂之和等于数字它本身,如153=1*1*1+5*5*5+3*3*3)。
public class ForthQuestion {public static void main (String[] args) {for (int i = 100; i <= 999; i++) {int[] nums = getNumbers(i);if ((Math.pow(nums[0], 3) + Math.pow(nums[1], 3) + Math.pow(nums[2], 3)) == i)System.out.println(i);}}private static int[] getNumbers (int num) {int[] nums = new int[3];nums[0] = num / 100;nums[1] = (num - nums[0] * 100) / 10;nums[2] = num % 10;return nums;}
}
  • 实验结果

153
370
371
407

  • 错误分析

分解每个数位的时候,算法需要弄清楚

问题五
  • 在类中定义一个静态方法printStar打印一颗树,该方法没有返回值,需要一个整形参数number定义树的高度,在主方法中调用这个方法,number值为5和10时得到下图的结果。
public class FifthQuestion {public static void main (String[] args) {printStar(6);}private static void printStar (int n) {for (int line = 1; line <= n; line++) {for (int i = 0; i < n - line; i++) {System.out.print(" ");}for (int i = 0; i < 2 * line - 1; i++) {System.out.print("*");}System.out.println();}}
}
  • 实验结果
     *************************
***********
  • 错误分析

每一行的输出结果,跟行数有关系

四、实验总结

  学习和使用了java变量的声明,掌握了for循环等其他循环语句的使用,可以理解面向对象编程,会使用面向对象编程的方法解决问题,能说出静态方法和普通方法的区别,熟悉访问限定符的修饰作用,本次实验学到了很多

java实验一正式报告相关推荐

  1. java实验三正式报告

    实验三 面向对象(二)(实验报告) 姓名: XXX          班级: XXX          学号: XXX 一.实验目的   在集成开发环境下,实现类的继承及多态,实现抽象类.接口的定义, ...

  2. java浏览器实验报告_关于java实验报告模板

    关于java实验报告模板 1.掌握Java Applet的程序结构和开发过程. 2.学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法. 3. 掌握文本框对象的使用 ...

  3. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  4. java 实验报告模板_Java实验报告模板.doc.doc

    Java实验报告模板.doc 实 验 报 告 课程名称Java面向对象程序设计实验名称检查危险品姓名吴超益学号201424134114专业年级14物联网一.实验目的: 本实验的目的是让学生掌握try- ...

  5. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  6. Java实验实现一个circle类,java实验报告-类的定义.doc

    java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...

  7. java数组使用实验报告_JAVA数组与类的定义-java实验报告

    JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...

  8. java实验七实验报告_Java实验报告-7-风扇

    Java实验报告 实验题目实验七综合实验风扇 代码: import java.awt.Col or; import java.awt.Graphics; import java.awt.event.A ...

  9. Java简单记事本设计实验报告_基于JAVA的记事本设计报告.doc

    基于JAVA的记事本设计报告 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 11 页 XX学校计算机系综合性实验 实 验 报 告 课程名称 Java程序设计 实验学期 至 学年 第 学期 ...

最新文章

  1. QCom MSM MDP显示驱动一些点的简记
  2. Windows Socket 最大连接数
  3. Angular Template expression operators介绍
  4. 问题之JS中传递数值过大或前置有零时
  5. mongoose在子文档的array里update或insert
  6. php开发 文件下载,php 实现文件下载
  7. 光盘刻录大师刻录flac_Mac DVDRipper Pro(DVD光盘刻录软件)v9.0.1版
  8. 详细了解DAS、SAN和NAS三种存储方式
  9. 天使投资喜欢什么样的商业计划书
  10. python爬虫,用scrapy爬取天天基金
  11. Kafka ~ 消息队列之推还是拉
  12. ZZULIoj-1088: 手机短号 (多实例)
  13. 一道简简单单的字节跳动算法面试题
  14. Redis Redis Cluster 字段模糊匹配及删除
  15. mysql没有for循环语句(使用while替代)
  16. zz:Android 层次化安全架构
  17. CDH azkaban-3.75.2安装教程
  18. 多家银行同城跨行取款手续费上涨到4元
  19. python 源码编译 without_vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译(示例代码)...
  20. 浙大第五版概统复习提纲(前八章)

热门文章

  1. 获取服务器保存图片的位置,linux服务器存储图片路径
  2. Typora软件优化设置
  3. 小白自总结【数据预处理】英文数据预处理
  4. php魔鬼训练课训练第一阶段,魔鬼训练营
  5. mpvue+小程序云开发,纯前端实现婚礼邀请函
  6. 基于5G/4G边缘网关的建筑机器人应用
  7. 2017秋 《高级软件工程》学习总结
  8. jz1076 【基础】机器人的逻辑
  9. matlab gpu cpu 快,(Matlab)GPU计算简介,及其与CPU计算性能的比较
  10. 世界首富贝索斯上太空