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

班级 计科一班 学号 20188381 姓名 罗宇梁

一、 实验目的

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

二、 实验内容

  1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
  2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
  3. 编程求1!+2!+3!+…+20!。
  4. 编写Java程序,计算8+88+888+…前10项之和。
  5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
  6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
  7. 使用for循环打印下面的图形。

三、 实验过程

  1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
    实验源码:
public class Flower
{
   public static void main(String[] args)
   {
        int  n, a, c, b;
        
        for(n=100;n<1000;n++)
        {
             a=n%10;
             c=n/10%10;
             b=n/100%10;
          
             if(n==a*a*a+c*c*c+b*b*b)
             {
                   System.out.println(n);
              }
         }
     }
}

实验结果:

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

public  class Sum
{
     public static void main(String[] args)
     {
           int n;
           int sum=0;
    
           for(n=1;n<=100;n++)
          {
               if(n%2==0)
               {
                      sum=sum-(n*10+3);
               }
               else
               {
                       sum=sum+n*10+3;
               }
           }
              System.out.println(sum);
       }
}

实验结果:

3.编程求1!+2!+3!+…+20!
实验源码:

public class Factorial 
{
         public static void main(String[] args)
        {
                   long sum=0;
                 for(int i=1;i<=20;i++)
                {
                          sum+=fact(i);
                }
                 System.out.println(sum);
         }
         public static long fact(int n)
        {
             long product=1;
            for(int i=1;i<=n;i++)
           {
                   product=product*i;
           }
               return product;
        }
} 

实验结果:
 

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

public class Main {
    public static void main(String[] args){
       int sum = 0, n = 0;
       int i;
       for(i=1;;i++){
           sum = sum+i;
           if(sum>=8888){
               break;
           }
       }
       System.out.println(sum-i);
    }
}

实验结果:

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

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

实验结果:

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

public class Main {
    public static void main(String[] args) {
        int sum = 0, n = 0;
        int i;
       for(i=1;;i++){
           sum = sum+i;
           if(sum>=8888){
               break;
           }
       }
        System.out.println(sum-i);

    }
}

实验结果

  1. 使用for循环打印下面的图形。
public class Main {
    public static void main(String[] args) {
        int i, j;
        for(i = 1;i<=5;i++){  

            for(j = 5;j>=i;j--){   
                System.out.print(" ");
            }
            for(j = 1;j<=i;j++){
                System.out.print(" *");
            }
            for(j = 5;j>=i;j--)
            {
                System.out.print(" ");
            }
            System.out.println();
        }
    }

实验结果:

第三周课程总结

构造方法

构造方法用于程序的初始化和属性的初始化。

构造方法的声明需要遵守以下要点:

①构造方法必须与类名称一致。

②构造方法的声明处不能有任何返回值类型的声明。

③不能在构造方法中使用return返回值一个值。

构造方法定义格式:

class 类名称{

  访问权限 类名称(类型1 参数1,类型2 参数2,……){

          程序语句;

         ……  //构造方法没有返回值

                 }

}

this关键字

作用:1强调本类中的方法
2.表示类中的属性
3.可以使用this调用本类的构造方法
4.this表示当前对象

public:表示此方法可以被外部所调用

   static:表示此方法可以由类名称直接调用
   void:主方法是程序的起点,所以不需要任何的返回值
   main:系统规定好默认调用的方法名称,执行时,默认找到main方法名称
   String args[]:表示运行时的参数 参数传递的形式:
  java 类名称 参数1 参数2 参数3....

java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】

封装
    对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)
    具体来说:
            1.属性: 私有 private(提供set和get方法)
            2.方法: 公开或私有public/private
            3.方法声明 --> 公开
              方法实现 --> 隐藏
             实现改变时,对对象的使用者没有影响。
posted @ 2019-09-15 19:39  罗宇梁  阅读(196)  评论(0编辑  收藏  举报