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

实验一 Java开发环境与简单Java程序

一、实验目的

(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 Project{
     public static void main(String args[]) {
         int x,y,z;
         for(int i=0;i<1000;i++) {
             x=i/100;
             y=(i%100)/10;
             z=i%10;
             if(Math.pow(x, 3)+Math.pow(y, 3)+Math.pow(z, 3)==i){
                 System.out.println(i);
             }
         }
     }
} 

 运行结果

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

源码:

public class Project2{
    public static void main(String[] args) {
        int i, j = 1, sum = 0, k=0;
        for(i = 13;i <= 1003; i = i + 10) {
            k = (j) * i;
            sum = sum + k;
            j = -j;
        }
        System.out.println(sum);
    }
}

 运行结果

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

源码

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

 运行结果

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

源码

public class Project4 {
    public static void main(String[] args) {
        int   i , y = 8;
        long sum = 0,x = 8;
        for(i = 1;i <= 10;i++ ) {
            sum = sum + x;
            x = (x * 10 ) + y;
        }
        System.out.println(sum);
    }
}

运行结果

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

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

}

运行结果

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

源码

public class Project6 {
    public static void main(String[] agrs) {
        int i, sum = 0;
        for(i = 0;sum + i< 8888; i++) {
            sum = sum + i;
        }
        System.out.println(i - 1);
        System.out.println(sum);
    }
}

运行结果

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

 

源码

public class Project7 {
    public static void main(String[] args) {
        int i, j, x = 4,k,l = 4;
        for(i = 0;i < 5;i++) {
            for(j = x;j > 0;j--) {
                System.out.print(" ");
            }
            x = x -1;
            for(k = l;k < 5;k++) {
            System.out.print("* ");
        }
            System.out.print("
");
            l--;
    }
    }
}

 运行结果

二、学习总结

 1、构造方法可以为类中的属性初始化,构造方法与类名称相同,无法返回值声明,如果在类中没有明确的定义出构造方法,则会自动生成一个无参的声明都不做的构造方法,在一个类中的构造方法可以重载,但是每个类都至少有一个构造方法。

2、String类在Java中较为特殊,String可以使用直接赋值的方式,也可以通过构造方法进行实例化,前者只产生一个实例化对象,而且此实例化对象可以重用,后者将产生两个实例化对象,其中一个是垃圾空间,在String中比较雷人实验equals方法,而“==”比较的只是两个字符串的地址值,字符串的内容一旦声明则不可改变。

3、在Java中使用this关键字可以表示当前的对象,通过this属性可以调用本类中的属性,通过this方法()可以调用本类中 的其他方法,也可以通过this()的形式调用本类中 的构造方法,但是调用时要求放在构造方法的首行。

4、使用static声明的属性和方法可以由类名称直接调用,static属性是所有地下共享的,所有对象都可以对其进行操作。

原文地址:https://www.cnblogs.com/JokerXue/p/11522426.html