第三周课程总结及实验报告(一)

Java实验报告(一)

班级 18计科一班 学号 20188400 姓名 颜晴

一、 实验目的

  • (1) 熟悉JDK开发环境
  • (2) 熟练掌握结构化程序设计方法

二、 实验内容

1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。

实验源码:

package com.company;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Please enter a three-digit number.");
        System.out.print(">: ");

        String name = in.nextLine();

        if (Integer.parseInt(name) == Math.pow(Integer.parseInt(name.substring(0, 1)), 3) + Math.pow(Integer.parseInt(name.substring(1, 2)), 3) + Math.pow(Integer.parseInt(name.substring(2, 3)), 3))
            System.out.println(".");

        /*函数式一行Java*/
        /*IntStream.range(100, 1000).filter(i -> Arrays.stream((i + "").split("")).mapToDouble(j -> Math.pow(Integer.parseInt(j), 3)).sum() == i).forEach(System.out::println);*/
    }
}

实验结果:

153
370
371
407

2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。

实验源码:

package com.company;

public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i <= 100; i++)
        {
            String single = String.valueOf(i) + "3";
            sum += Integer.parseInt(single)*Math.pow(-1,i + 1);
        }
        System.out.println(sum);
    }
}
实验结果:
-500

3. 编程求1!+2!+3!+…+20!。

实验源码:

package com.company;

public class Main {
    public static void main(String[] args) {
        long sum = 0;
        for(int i = 1; i <= 20; i++)
        {
            sum += factorial((long) i);
        }
        System.out.println(sum);
    }

    public static long factorial(long number) {
        if (number <= 1)
            return 1;
        else
            return number * factorial(number - 1);
    }
}

实验结果:

268040729

4. 编写Java程序,计算8+88+888+…前10项之和。

实验源码:

package com.company;

public class Main {
    public static void main(String[] args) {
        long sum = 0;
        String single = "";
        for(int i = 0; i < 10; i++)
        {
            single += "8";
            sum = sum + Long.parseLong(single);
        }
        System.out.println(sum);
    }
}

实验结果:

9876543200

5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。

实验源码:

package com.company;

public class Main {
    public static void main(String args[]) {
        int sum = 0;
        int i = 2,j = 1;
        for(i = 2; i <= 1000; i++)
        {
            for(j = 1; j < i; j++)
                if(i % j == 0)
                    sum += j;
            if(sum == i)
                System.out.println(" " + sum);
            sum = 0;
        }
    }
}

实验结果:

6
24
28
496

6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。

实验源码:

package New.Learn;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        int x=1, sum=0;

        while (true)
        {
           if(sum + x<8888)
           {
               sum += x++;
           }

           else
           {
               break;
           }

        }

        System.out.println(sum);
    }

}

实验结果:

132

7. 使用for循环打印下面的图形。

     *
   *  *
 *  *  *

实验源码:

package New.Learn;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        int level = 5;

        for (int i=1; i<=level; i++)
        {
            for (int k=0; k

实验结果:

         *
        * *
       * * *
      * * * *
     * * * * *

内容总结

封装性:

1.封装性就是保证类内部的定义不被外部可见
2.所有属性都必须使用private封装,封装后的属性如果要被外部所访问,要定义相应的setter和getter方法。

构造方法:

1.构造方法是类的一种特殊方法,用来初始化类的一个新的对象。
2.构造方法的名称与类名称一致。
3.不能在构造方法中使用return返回一个值。
4.构造方法可重载;一个类中至少会存在一个构造方法。

匿名对象:

没有明确给出名字的对象。一般匿名对象只使用一次 只在堆内存中开辟对象,不存在栈内存的引用。

JAVA学习之路:不走弯路,就是捷径。

你可能感兴趣的:(第三周课程总结及实验报告(一))