实验一 Java编程基础

实验一 Java编程基础

姓名: xxx    班级: xxxxxxx    学号: xxxxxxxxxxx

一、实验目的

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

二、实验目标

(1)能够运用集成开发工具开发简单的Java程序,理解java语言的语法规则;
(2)能够利用Java语言解决实际问题,进一步熟悉和掌握java语言的程序设计的方法。

三、实验内容

3.1 实验环境

IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1

3.2 实验内容
  • 小明带了20元来商店买一本书,剩余的钱还可以买哪种商品?可以购买几件?剩余多少钱?
商品价格表
商品名称
价格
牛奶
5元
10元
橡皮
1元
尺子
2元
  • 利用switch语句将学生成绩分为优秀(90-100分)、良好(80-89)、中(70-79),及格(60-69)和不及格(<60)。
  • 定义一个计算器类,该类中包含加、减、乘、除4个静态方法,并定义一个测试类,调用对应的方法进行四则运算。
  • 打印100-999以内的水仙花数(水仙花数即每个位数上数字的3次幂之和等于数字它本身,如153=1*1*1+5*5*5+3*3*3)。
  • 在类中定义一个静态方法printStar打印一颗树,该方法没有返回值,需要一个整形参数number定义树的高度,在主方法中调用这个方法,number值为5和10时得到下图的结果。实验题目五

四、实验过程分析

4.1 实验步骤
  • 1.小明带了20元来商店买一本书,剩余的钱还可以买哪种商品?可以购买几件?剩余多少钱?

实验代码


public class experimentOne {
    public static void main(String[] args) {
        int money = 20 -10;
        int count = 0;
        for (int i = 0; i <= money/1; i++) {
            for (int j = 0; j <= money / 2; j++) {
                for (int k = 0; k <= money / 5; k++) {
                    for (int g = 0; g <= money / 10; g++) {
                        int sum = i * 1 + j * 2 + k * 5 + g * 10;
                        if (sum <= money) {
                            System.out.printf("方案%2d,买橡皮%2d个、买尺子%2d把、买牛奶%2d瓶、买书%2d本,剩余%2d元\n", ++count, i, j, k, g, money - sum);
                        } else break;
                    }
                }
            }
        }
        System.out.printf("总共%d种方案.\n", count);
    }
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=64278:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentOne
方案 1,买橡皮 0个、买尺子 0把、买牛奶 0瓶、买书 0本,剩余10元
方案 2,买橡皮 0个、买尺子 0把、买牛奶 0瓶、买书 1本,剩余 0元
						… …
方案49,买橡皮 9个、买尺子 0把、买牛奶 0瓶、买书 0本,剩余 1元
方案50,买橡皮10个、买尺子 0把、买牛奶 0瓶、买书 0本,剩余 0元
总共50种方案.

Process finished with exit code 0
  • 2.利用switch语句将学生成绩分为优秀(90-100分)、良好(80-89)、中(70-79),及格(60-69)和不及格(<60)。

实验代码

import java.util.Scanner;

public class experimentTwo {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int score = cin.nextInt();
        score /= 10;
        if (score > 10 || score < 0)
            return;
        switch (score) {
            case 10:
            case 9:
                System.out.println("优秀");
                break;
            case 8:
                System.out.println("良好");
                break;
            case 7:
                System.out.println("中");
                break;
            case 6:
                System.out.println("及格");
                break;
            default:
                System.out.println("不及格");
                break;
        }
    }
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=59140:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentTwo
60
及格

Process finished with exit code 0

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=62215:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentTwo
75
中

Process finished with exit code 0

  • 3.定义一个计算器类,该类中包含加、减、乘、除4个静态方法,并定义一个测试类,调用对应的方法进行四则运算。

实验代码

import java.util.Scanner;

class Calculator {
    public Calculator() { }

    public static int add(int n, int m) {return n + m;}

    public static int sub(int n, int m) {return n - m;}

    public static int mult(int n, int m) {return n * m;}

    public static int div(int n, int m) {
        try { return n / m; } 
        catch (ArithmeticException e) {
            System.out.println("/ by zero.");
            return 0;
        }
    }
}

class test {
    public static void testCa() {
        Calculator cA = new Calculator();
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int m = cin.nextInt();
        System.out.println("add:"+cA.add(n, m));
        System.out.println("mult:"+cA.mult(n, m));
        System.out.println("sub:"+cA.sub(n, m));
        System.out.println("div:"+cA.div(n, m));
    }
}

public class experimentThree {
    public static void main(String[] args) { test.testCa(); }
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=55362:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentThree
15 20
add:35
mult:300
sub:-5
div:0

Process finished with exit code 0

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=61776:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentThree
15 0
add:15
mult:0
sub:15
/ by zero.
div:0

Process finished with exit code 0
  • 4.打印100-999以内的水仙花数(水仙花数即每个位数上数字的3次幂之和等于数字它本身,如153=1*1*1+5*5*5+3*3*3)。

实验代码

public class experimentFour {
    public static void main(String[] args) {
        for (int i = 100; i <= 999; i++) {
            if (flower.isFlower(i))
                System.out.println(i);
        }
    }
}

class flower {
    public flower() {}

    public static boolean isFlower(int n) {
        int sum = 0;
        int N = n;
        while (N > 0) {
            int temp = N % 10;
            sum = sum + temp * temp * temp;
            N /= 10;
        }
        return sum == n;
    }
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=60409:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentFour
153
370
371
407

Process finished with exit code 0
  • 5.在类中定义一个静态方法printStar打印一颗树,该方法没有返回值,需要一个整形参数number定义树的高度,在主方法中调用这个方法,number值为5和10时得到下图的结果。
  • 实验题目五
import java.util.Scanner;

public class experimentFive {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int number = cin.nextInt();
        experimentFive_test.printStar(number);
    }
}

class experimentFive_test {
    public experimentFive_test() {}

    public static void printStar(int number) {
        for (int i = 1; i <= number; i++) {
            for (int j = 1; j <= number - i; j++) {
                System.out.print(' ');
            }
            for (int j = 1; j <= i * 2 - 1; j++) {
                System.out.print('*');
            }
            System.out.println();
        }
    }
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=50731:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentFive
5
    *
   ***
  *****
 *******
*********

Process finished with exit code 0

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=50737:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\FileRecv\MobileFile\lession\out\production\lession" experimentFive
10
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

Process finished with exit code 0
4.2 错误分析

错误情况
未考虑除数为0

  • 在计算器实验时在除法计算时未考虑到除数为0的情况。导致在进行除法运算时发生异常。

解决方案

//将
    public static int div(int n, int m) {return n / m;}
//替换为
    public static int div(int n, int m) {
        try {
            return n / m;
        } catch (ArithmeticException e) {
            System.out.println("/ by zero.");
            return 0;
        }
    }

五、个人总结

  在问题发生时应该多思考并与同学进行交流以获得帮助,并及时解决问题,借助强大的互联网知识平台能够有效的获得更多知识。熟悉以及掌握配置ide及实验环境十分必要,能够在编程时解决大量技术性错误。基础性知识的学习能为我们的编程思想提供极大的有效助力,基础知识的欠缺也是我目前遇到的最重大的问题,在课下的自我学习十分重要,在以后的学习生活中一定会努力加强相关知识的学习。十分感谢在遇到困难时同学们的热心帮助,他们为我提供了精神以及学习方面的极大帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值