班级 计科一班 学号 20188381 姓名 罗宇梁
一、 实验目的
(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循环打印下面的图形。
三、 实验过程
- 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验源码:
public class Flower { public static void main(String[] args) { int n, a, c, b; for(n=100;n<1000;n++) { a=n%10; c=n/10%10; b=n/100%10; if(n==a*a*a+c*c*c+b*b*b) { System.out.println(n); } } } }
实验结果:
2.编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验源码:
public class Sum { public static void main(String[] args) { int n; int sum=0; for(n=1;n<=100;n++) { if(n%2==0) { sum=sum-(n*10+3); } else { sum=sum+n*10+3; } } System.out.println(sum); } }
实验结果:
3.编程求1!+2!+3!+…+20!
实验源码:
public class Factorial { public static void main(String[] args) { long sum=0; for(int i=1;i<=20;i++) { sum+=fact(i); } System.out.println(sum); } public static long fact(int n) { long product=1; for(int i=1;i<=n;i++) { product=product*i; } return product; } }
实验结果:
4.编写Java程序,计算8+88+888+…前10项之和
public class Main { public static void main(String[] args){ int sum = 0, n = 0; int i; for(i=1;;i++){ sum = sum+i; if(sum>=8888){ break; } } System.out.println(sum-i); } }
实验结果:
5.一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
代码
public class Main { public static void main(String[] args){ int i, j; for (i = 1; i <= 1000; i++) { int sum=0; for (j = 1; j <= i; j++) { if (i % j == 0) { sum+=j; } } if ((sum - i) == i) { System.out.println(i); } } } }
实验结果:
6.编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
public class Main { public static void main(String[] args) { int sum = 0, n = 0; int i; for(i=1;;i++){ sum = sum+i; if(sum>=8888){ break; } } System.out.println(sum-i); } }
实验结果
- 使用for循环打印下面的图形。
public class Main { public static void main(String[] args) { int i, j; for(i = 1;i<=5;i++){ for(j = 5;j>=i;j--){ System.out.print(" "); } for(j = 1;j<=i;j++){ System.out.print(" *"); } for(j = 5;j>=i;j--) { System.out.print(" "); } System.out.println(); } }
实验结果:
第三周课程总结
构造方法
构造方法用于程序的初始化和属性的初始化。
构造方法的声明需要遵守以下要点:
①构造方法必须与类名称一致。
②构造方法的声明处不能有任何返回值类型的声明。
③不能在构造方法中使用return返回值一个值。
构造方法定义格式:
class 类名称{
访问权限 类名称(类型1 参数1,类型2 参数2,……){ 程序语句; …… //构造方法没有返回值 }
}
this关键字
作用:1强调本类中的方法
2.表示类中的属性
3.可以使用this调用本类的构造方法
4.this表示当前对象
###public:表示此方法可以被外部所调用
static:表示此方法可以由类名称直接调用
void:主方法是程序的起点,所以不需要任何的返回值
main:系统规定好默认调用的方法名称,执行时,默认找到main方法名称
String args[]:表示运行时的参数 参数传递的形式:
java 类名称 参数1 参数2 参数3....
java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】
封装 对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性) 具体来说: 1.属性: 私有 private(提供set和get方法) 2.方法: 公开或私有public/private 3.方法声明 --> 公开 方法实现 --> 隐藏 实现改变时,对对象的使用者没有影响。