撰写第三周课程总结及实验报告(一)
Java实验报告
班级 计科一班 学号 20188375 姓名 汤云云
完成时间
评分等级
实验一 Java开发环境与简单Java程序
一、 实验目的
(1) 熟悉JDK开发环境
(2) 熟练掌握结构化程序设计方法
二、 实验内容
- 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
- 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
- 编程求1!+2!+3!+…+20!。
- 编写Java程序,计算8+88+888+…前10项之和。
- 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
- 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
- 使用for循环打印下面的图形。
三、 实验过程
1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验源码:
1public class Flower 2{ 3 public static void main(String[] args) 4 { 5 int n, g, s, b; 6 7 for(n=100;n<1000;n++) 8 { 9 g=n%10; 10 s=n/10%10; 11 b=n/100%10; 12 13 if(n==g*g*g+s*s*s+b*b*b) 14 { 15 System.out.println(n); 16 } 17 } 18 } 19}
实验结果:

2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验源码:
1public class Sum 2{ 3 public static void main(String[] args) 4 { 5 int n; 6 int sum=0; 7 8 for(n=1;n<=100;n++) 9 { 10 if(n%2==0) 11 { 12 sum=sum-(n*10+3); 13 } 14 else 15 { 16 sum=sum+n*10+3; 17 } 18 } 19 System.out.println(sum); 20 } 21}
实验结果:

3. 编程求1!+2!+3!+…+20!。
实验源码:
1public class Factorial 2{ 3 public static void main(String[] args) 4 { 5 long sum=0; 6 for(int i=1;i<=20;i++) 7 { 8 sum+=fact(i); 9 } 10 System.out.println(sum); 11 } 12 public static long fact(int n) 13 { 14 long product=1; 15 for(int i=1;i<=n;i++) 16 { 17 product=product*i; 18 } 19 return product; 20 } 21}
实验结果:

4. 编写Java程序,计算8+88+888+…前10项之和。
实验源码:
1public class Eight 2{ 3 public static void main(String[] args) 4 { 5 int i; 6 long item=8; 7 long sum=0; 8 9 for(i=1;i<11;i++) 10 { 11 sum=sum+item; 12 item=item*10+8; 13 } 14 System.out.println(sum); 15 } 16}
实验结果:

5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验源码:
1 1 public class WanShu 2 2 { 3 3 public static void main(String[] args) 4 4 { 5 5 int i,j; 6 6 for(i=1;i<=1000;i++) 7 7 { 8 8 int sum=0; 9 9 for(j=1; j<i; j++) 1010 { 1111 if(i%j==0) 1212 { 1313 sum=sum+j; 1414 } 1515 } 1616 if(i==sum) 1717 { 1818 System.out.println( i ); 1919 } 2020 } 2121 } 2222 }
实验结果:

6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验源码:
1public class Bign 2{ 3 public static void main(String[] args) 4 { 5 int i; 6 int sum=0; 7 8 for(i=1; sum+i<8888; i++) 9 { 10 sum=sum+i; 11 } 12 13 System.out.println( i -1); 14 } 15}
实验结果:

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

实验源码:
1 1 public class Triangle 2 2 { 3 3 public static void main(String[] args) 4 4 { 5 5 for (int i = 0; i < 5; i++) 6 6 { 7 7 for (int j = i + 1; j < 5; j++) 8 8 { 9 9 System.out.print(" "); 1010 } 1111 for (int k = 0; k <= i; k++) 1212 { 1313 System.out.print("* "); 1414 } 1515 System.out.println(); 1616 } 1717 } 1818 }
实验结果:

总结:
一、This 关键字的使用方法:
(1)强调调用本类方法
(2)表示类中的属性
(3)可以使用this调用本类的构造方法
(4)this表示当前对象
以后在类中访问属性的时候都要加上this关键字
二、使用this调用构造方法的注意事项:
(1)this( )调用构造方法必须也只能放在构造方法的第一行
(2)对于this调用构造方法的时候一定要留一个构造方法作为出口
三、this表示当前对象:
在java中当前对象就是指当前正在调用类中方法的对象
四、static使用方法:
一个类中的方法不想由对象,而是由类名称直接调用;
非static声明的方法可以去调用static声明的属性或方法的。但是static声明的方法是不能调用非static类型声明的属性或方法的。
例如:
1class Person 2{ 3 private static String country="A城"; 4 private String name = "Hello"; 5 public static void sFun(String c) 6 { 7 System.out.println("name="+name); 8 fun( ); 9 } 10 public void fun( ) 11 { 12 System.out.println("World"); 13 } 14}

五、理解main( )方法
(1)public:表示此方法可以被外部所调用
(2)static:表示此方法可以由类名称直接调用
(3)void:主方法是程序的起点,所以不需要任何的返回值
(4)main:系统规定好默认调用的方法名称,执行的时候,默认找到main( )方法名称
(5)String args[]:表示的是运行时的参数。参数传递的形式为“Java”类名称 参数1 参数2 参数3........"。
main()的定义:
public static void main(String args[])