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


    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<level-i; k++)
                {
                    System.out.print(" ");
                }
    
                for (int j=1; j<=i; j++)
                {
                    if(j==i)
                    {
                        System.out.print("*");
                    }
    
                    else
                    {
                        System.out.print("* ");
                    }
                }
    
                System.out.println("");
            }
    
        }
    
    }
    
    
    

    实验结果:

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

    内容总结

    封装性:

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

    构造方法:

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

    匿名对象:

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

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

  • 相关阅读:
    .Net Core使用Socket与树莓派进行通信
    c#中Socket网络通信的入门
    django 中 cookie与session 相关的知识
    怎么解决MySQL密码问题
    python 虚拟环境安装与卸载
    Linux 怎么清理缓存
    VMware 虚拟机黑屏问题
    如何在Ubuntu上给软件创建快捷方式
    Linux-Windows10双系统安装
    Tomcat开启JMX监控
  • 原文地址:https://www.cnblogs.com/zsbhs/p/11524041.html
Copyright © 2020-2023  润新知