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


    实验报告

    一、实验目的

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

    实验结果:

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

    课程总结

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

    类的定义

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

  • 相关阅读:
    题解:SPOJ1026 Favorite Dice
    机器学习笔记
    机器学习第二次作业
    机器学习第一次作业
    2019软工实践总结作业
    软工2019作业6——软件评测
    2019软工作业五-实现师门树
    软件工程 “校园汇” 个人IDEA竞选分析与总结
    软工2019作业四
    软工2019作业三
  • 原文地址:https://www.cnblogs.com/jk-liulei/p/11494344.html
Copyright © 2020-2023  润新知