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

2022/1/18 1:05:16

本文主要是介绍实验一 java基础编程(预习报告),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

面向对象——Java实验报告

实验一: Java基础编程

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

<center> 
<strong>姓名:</strong> 
<u>XXX</u> 
&emsp;&emsp;
<strong>班级:</strong> 
<u>XXXXX</u> 
&emsp;&emsp;
<strong>学号:</strong>
<u>XXXXXXXXXXXX</u></center>

一、实验目标

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

二、实验环境

IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1

三、实验准备

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

**问题分析:**一本书的价格为10元,在购买完书之后还可以购买其他商品的数量的计算过程中,我觉得可以采用枚举的方式逐项枚举每件商品可能的数量。并使用判断语句以保证可能的数量的价值不会超过剩余金额。并通过计算已有商品的价值来计算余额。

money =20
for(橡皮)
    for(尺子)
        for(牛奶)
            for(书)
            {sum=n*price(橡皮)+m*price(尺子)+i*price(牛奶)+j*price(书);
                if sum<money-price(书):
    					余额=money-price(书)-sum;
    					输出数量与余额;
            }
  • 利用switch语句将学生成绩分为优秀(90-100分)良好(80-89)中(70-79)及格(60-69)不及格(<60)

**问题分析:**使用输入语句对分数进行输入然后进行除以十以划分等级。

switch (score){
    case 10:
    case 9:"优秀";break;//90-100分
    case 8:"良好";break;//80-89分
    case 7:"中";break;//70-79分
    case 6:"及格";break;//60-69分
        default:"不及格";break;//<60分
}

注意及时使用break语句,(break在switch(开关语句)中在执行一条case后跳出语句的作用。)

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

**问题分析:**本题目的两个实验目标点,分别实现计算器类与测试类,在计算器类之中还包含了加、减、乘、除四个静态方法。因此其应该有以下结构。

//计算器类结构
class Calculator {
	public static int add(int n, int m) ;
    public static int sub(int n, int m) ; 
    public static int mult(int n, int m) ;
    public static int div(int n, int m) ;
}

在测试类这一方面我有两种方案,一种是直接测试所有函数,一种则偏向于较能真实的计算器模式。

//直接测试
class test {
    public static void testCa() {
        Calculator cA = new Calculator();
        输入n,m;
        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));
    }
}
//提供用户选择
class test {
    public static void testCa() {
        Calculator cA = new Calculator();
        Scanner cin = new Scanner(System.in);
        输入m,n;
        System.out.println("please input your choice:(+ - * /)");
        int choice = cin.next().charAt(0);
        switch (choice) {
            case '+':
                System.out.println(cA.add(n, m));
                break;
            case '*':
                System.out.println(cA.mult(n, m));
                break;
            case '-':
                System.out.println(cA.sub(n, m));
                break;
            case '/':
                System.out.println(cA.div(n, m));
                break;
        }
    }
}
  • 打印100-999以内的水仙花数(水仙花数即每个位数上数字的3次幂之和等于数字它本身,如153=1*1*1+5*5*5+3*3*3)。

**问题分析:**水仙花数=每个位数上数字的3次幂之和;

可分析为:nmi=n*n*n+m*m*m+i*i*i,则是求每位数字mod(10)的结果,则其结构为

        while (N > 0) {
            int temp = N % 10;
            sum = sum + temp * temp * temp;
            N /= 10;
        }

定义boolean类型 函数isFlower(int n)按其返回值进行输出,则完整结构应该为:

    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;
    }
  • 在类中定义一个静态方法printStar打印一颗树,该方法没有返回值,需要一个整形参数number定义树的高度,在主方法中调用这个方法,number值为5和10时得到下图的结果。

**问题分析:**分析其图形结构,当number=5时:其结构如下

    *  //在第i层在*的左侧共有number-i个' '
   ***  //在第i层共有2*i-1个'*'
  *****
 *******
*********

因此其函数应该为以下结构:

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

四、预习遇到的问题

  对于基础知识的掌握并不太够,导致在问题分析时可能不是最优策略,由于对于问题的理解不同也与别人的方案存在着较大出入。但是实验就是为了发现问题以及解决问题。并且因为是实验所以更充满着许多不确定性,所以哪种方案是对的也犹未可知,正因为实验的不确定性才使着实验具有吸引力,实践出真知。



这篇关于实验一 java基础编程(预习报告)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程