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

实验报告

一、实验目的

熟悉JDK开发环境

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

二、实验内容

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

  1. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
  2. 编程求1!+2!+3!+…+20!。
  3. 编写Java程序,计算8+88+888+…前10项之和。
  4. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
  5. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
  6. 使用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;
        }

    }

}

实验结果:
1582044-20190909210156967-2094419621.png

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);
    }
}

实验结果:
1582044-20190909210443535-724952039.png

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);
    }   
}

实验结果:
1582044-20190909211126499-2139833798.png

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);
    }

}

实验结果:
1582044-20190909211411389-611912103.png

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;
        }
    }

}

实验结果:
1582044-20190909211553740-1623678951.png

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
    }
}

实验结果:
1582044-20190909211941454-454275717.png

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");
        }
    }

}

实验结果:
1582044-20190909212213457-1516662042.png

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

课程总结

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

类的定义

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类型声明的属性或方法的。

转载于:https://www.cnblogs.com/jk-liulei/p/11494344.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值