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

实验报告

一、实验目的

熟悉JDK开发环境

熟练掌握结构化程序设计方法

二、实验内容

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是一个“水仙花数”。

实验源码:

package test;

public class Domo1 {

    public static void main(String[] args) {
	    // TODO Auto-generated method stub
	    int i,sum=0,j,k;
	    for(i=100;i<1000;i++)
	    {
	    	    k=i;
		    while(k>0)
		    {
			    j=k%10;
			    sum=sum+j*j*j;
			    k=k/10;
		    }
		    if(sum==i)
			    System.out.println(i);
		    sum=0;
	    }

    }

}

实验结果:

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

实验源码:

package test;

public class Domo2 {

    public static void main(String[] args) {
	    // TODO Auto-generated method stub
	    int sum=0;
	    int i,flag=1;
	    for(i=13;i<=1003;i+=10)//for循环没设置好,想得太复杂
	    {
		    sum=sum+flag*i;
		    flag=-flag;
	    }
	    System.out.print(sum);
    }
}

实验结果:

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

实验源码:

package test;

public class Domo3 {
    public static void main(String[] args) {
	    long i,j,sum1=1,sum2=0;
	    for(i=1;i<=20;i++)
	    {
		    for(j=1;j<=i;j++)
			    sum1=sum1*j;
		    sum2+=sum1;
		    sum1=1;
	    }
	    System.out.print(sum2);
    }	
}

实验结果:

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

实验源码:

package test;

public class Domo4 {

    public static void main(String[] args) {
	    // TODO Auto-generated method stub
	    long i,sum=0;//计算结果int的范围
	    long a=8;//第十项超过int的范围
	    for(i=1;i<=10;i++)
	    {
		    sum+=a;
		    a=a*10+8;
	    }
	    System.out.print(sum);
    }

}

实验结果:

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

实验源码:

package test;

public class Domo5 {

    public static void main(String[] args) {
	    // TODO Auto-generated method stub
	    int i,j,sum=0;
	    for(i=1;i<=1000;i++)
	    {
		    for(j=1;j<=i/2;j++)
		    {
			    if(i%j==0)
				    sum=sum+j;
		    }
		    if(sum==i)
			    System.out.println(sum);
		    sum=0;
	    }
    }

}

实验结果:

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

实验源码:

package test;

public class Domo6 {

    public static void main(String[] args) {
	    // TODO Auto-generated method stub
	    int sum=0,i;
	    for(i=1;sum+i<8888;i++)
	    {
		    sum=sum+i;
	    }
	    System.out.print("最大正整数n是:"+(i-1));//i-1是因为在sum+i大于8888时跳出循环,因此i-1;sum+i才会小于8888
    }
}

实验结果:

7. 使用for循环打印下面的图(等腰三角形)

实验源码:

package test;

public class Domo7 {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
	    int i,j;
	    for(i=1;i<=5;i++)
	    {
		    for(j=5-i;j>0;j--)
			    System.out.print(" ");
		    for(j=1;j<=i;j++)
			    System.out.print("* ");
		    System.out.print("\n");
	    }
    }

}

实验结果:

总结:这几个题挺简单的,但是我还是犯了些小错误,例如计算的数据超出了类型的取值范围,希望下次能更好的完成实验。

课程总结

类:类是由属性和方法组成的,一个属性就是一个变量,方法是一些操作的行为。

类的定义

class 类名称{
        数据类型属性;
·······
        public 返回值的数据类型 方法名称(参数1,参数2···){
                程序语句;
                [return 表达式;]
        }
}

类的定义没有加上“static”关键字,因为此时的定义方法将要由对象调用,而不是与主方法定义在一个类中且由主方法直接调用。

对象的创建

类名 对象名称=new 类名();

如果一个对象要被使用,对象必须被实例化。

封装性

private 属性类型 素性名称
private 方法返回值 方法名称(参数列表){}

只要是被封装的属性,必须通过setter和getter方法设置和取得。
private声明的属性或方法只能在其类的内部调用。
如果要强调是本类中的方法,可以在调用的时候按“this.方法名称()"。

构造方法

class 类名称{
        访问权限 类名称(类型1 参数1,类型2 参数2,·····){
                        程序语句;
        }
}

构造方法的名称必须与类名称一致;
构造方法的声明处不能有任何返回值类型的声明;
不能在构造方法中使用return返回一个值。

匿名对象

匿名对面指没有给出名字的对象。一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。

使用static声明属性

在程序中使用static声明属性,此属性称为全局变量,对所有的对象是共享的。

使用static声明方法

使用static声明的方法可以直接由类名称直接调用。
:非static声明的方法可以去调用static声明的属性或方法,但是static声明的方法是不能调用非static类型声明的属性或方法的。

posted @ 2019-09-09 21:26  L磊  阅读(269)  评论(0编辑  收藏  举报