第三周作业
Java实验报告
班级 : 计算机科学与技术二班 学号 : 20188440 姓名 : 黄诗荣
实验一 Java开发环境与简单Java程序
一、实验目的
(1)熟悉JDK开发环境
(2)熟练掌握结构化程序设计方法
二、实验内容
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循环打印下面的图形。
三、实验过程
- 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验源码:
public class fff {
public static void main(String[] args) {
int x,y,z;
for(int i=100;i<=999;i++) {
x=i/100;
y=(i%100)/10;
z=i%10;
if(Math.pow(x,3)+Math.pow(y, 3)+Math.pow(z, 3)==i) {
System.out.print(i);
System.out.print("\n");
}
}
}
}
实验结果:
153
370
371
407
- 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验源码:
public class fff {
public static void main(String[] args) {
int q=0;
int n=1;
for(int i=13;i<=1003;i=i+10) {
n=n+1;
q+=Math.pow(-1,n)*i;
}
System.out.print(q);
}
}
实验结果:
-500
- 编程求1!+2!+3!+…+20!。
实验源码:
public class fff {
public static void main(String[] args) {
int count=0;
for(int i=1;i<= 20;i++) {
count+=fat(i);
}
System.out.print(count);
}
public static int fat(int num) {
int reust=1;
for(int j=1;j<=num;j++) {
reust*=j;
}
return reust;
}
}
实验结果:
268040729
- 编写Java程序,计算8+88+888+…前10项之和。
实验源码:
public class fff {
public static void main(String[] args) {
long count=0;
for(long i=8;i<=8888888888l;i=i*10+8) {
count+=i;
}
System.out.print(count);
}
}
实验结果:
9876543200
- 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验源码:
public class fff {
public static void main(String[] args) {
int count=0;
for(int i=1;i<=1000;i++) {
count=0;
for(int j=1;j<i;j++) {
if(i%j==0) {
count=count+j;
}
if(count==i) {
System.out.print(i);
System.out.print("\n");
break;
}
}
}
}
}
实验结果:
6
24
28
496
- 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验源码:
public class fff {
public static void main(String[] args) {
int count=0;
for(int i=1;i<=8888;i++) {
count+=i;
if(count>8888) {
System.out.print(i-1);
break;
}
}
}
}
实验结果:
132
- 使用for循环打印下面的图形。
实验源码:
public class fff {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
for(int j=1;j<=5-i;j++) {
System.out.print(" ");
}
for(int k=1;k<=i;k++) {
System.out.print(" *");
}
System.out.print("\n");
}
}
}
实验结果:
*
* *
* * *
* * * *
* * * * *
总结:
封装性是面对对象的第一大特性,所谓的封装性就是指对外部不可见,将类中的属性封装(private),为属性封装:private 属性类型 属性名称;
构造方法,在面对对象程序中构造方法的主要作用是为类中的属性初始化,构造方法的名称与类名称一致,构造方法的声明处不能有任何返回值类型的声明,不能在构造方法中使用return返回一个值
构造方法可重载;一个类中至少会存在一个构造方法;
匿名对象,没有明确给出名字的对象。一般匿名对象只使用一次 只在堆内存中开辟对象,不存在栈内存的引用
this关键字,表示类中的属性,可以使用this调用本类的构造方法,this表示当前对象。static关键字,使用static声明属性,使用static声明方法