实验报告(一)
1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int a,b,c; for(int i=100;i<=999;i++) { a=i/100; b=(i%100)/10; c=i%10; if(i==Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)) { System.out.println(i); } } } }
实验结果:
2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int value1=13,value2=23,sum=0; for(;value2<=1003;) { sum=sum+value1+value2; value1+=10; value2+=10; } System.out.println(sum); } }
实验结果:
3. 编程求1!+2!+3!+…+20!
实验源码;
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int sum=1,SUM=0; for(int i=1;i<=20;i++) { sum=sum*i; SUM=SUM+sum; } System.out.println(SUM); } }
实验结果:
4. 编写Java程序,计算8+88+888+…前10项之和
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int a=8,sum=0; for(int i=1;i<=10;i++) { sum=sum+a; a=(8+a*10); } System.out.println(sum); } }
实验结果:
5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int sum=0; for(int i=1;i<=1000;i++) { for(int j=1;j<=i/2;j++) { if(i%j==0) { sum=sum+j; } } if(i==sum) { System.out.println(i); } sum=0; } } }
实验结果:
6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int sum=0; for(int i=1;sum<8888;i++) { sum=i+sum; if(sum+i>8888) { System.out.println(i); break; } } } }
实验结果:
7. 使用for循环打印下面的图形。
实验源码:
import java.util.Scanner; public class Text1 { public static void main(String[] args) { int value1=5,point=1; for(int i=1;i<=5;i++){ point=1; for(int j=1;;j++){ if(j<=value1){ System.out.print(" "); } else{ for(int a=1;a<=i;a++){ System.out.print("* "); if(a==i){ System.out.print(" "); point=0; break; } } } if(point==0){ break; } } value1--; } } }
实验结果:
总结:
本次实验主要都偏向基础,有一定C语言基础就不难,大部分都考察了常见的循环结构和分支结构,我在实验过程中没有出现什么值得一提的问题。
第三周课程总结
1,封装性
为属性封装:private 属性类型 属性名称
为方法封装:private 方法返回值 方法名称(参数列表){}
只要是被封装的属性,则必须通过setter和getter方法设置和取得。
setter和和getter可以在eclipse上的源码选项中快速建立。
2,构造方法
构造方法用于程序的初始化和属性的初始化。
构造方法的声明需要遵守以下要点:
①构造方法必须与类名称一致。
②构造方法的声明处不能有任何返回值类型的声明。
③不能在构造方法中使用return返回值一个值。
构造方法定义格式:
class 类名称{
访问权限 类名称(类型1 参数1,类型2 参数2,……){
程序语句;
…… //构造方法没有返回值
}
}
3,this关键字
this关键字有以下作用:
①强调调用本类方法。
②表示类的成员属性(变量)。
③调用构造方法(需放在行首且不能循环调用)
④表示当前对象。
4,static关键字
如果使用static声明属性,则此属性称为全局属性(有些也可称为静态属性)。
当我们需要将大量对象的一个属性修改为同一个结果时,就可以用static将该属性改为公共属性。
类属性调用:
类名称.static 属性
使用static声明方法:
Static既可以在声明属性时使用,也可以用其来声明方法,用它声明的方法有时也被称为“类方法”,可以由类名称直接调用。
5,Java常用的内存区域:
①栈内存空间:保存所有的对象名称(保存了引用的堆内存空间的地址)
②堆内存空间:保存每个对象的具体属性内容。
③全局数据区:保存static类型的属性。
④全局代码区:保存所有的方法定义。