Java实验报告(一)
班级 18计科一班 学号 20188400 姓名 颜晴
一、 实验目的
- (1) 熟悉JDK开发环境
- (2) 熟练掌握结构化程序设计方法
二、 实验内容
1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验源码:
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Please enter a three-digit number.");
System.out.print(">: ");
String name = in.nextLine();
if (Integer.parseInt(name) == Math.pow(Integer.parseInt(name.substring(0, 1)), 3) + Math.pow(Integer.parseInt(name.substring(1, 2)), 3) + Math.pow(Integer.parseInt(name.substring(2, 3)), 3))
System.out.println(".");
/*函数式一行Java*/
/*IntStream.range(100, 1000).filter(i -> Arrays.stream((i + "").split("")).mapToDouble(j -> Math.pow(Integer.parseInt(j), 3)).sum() == i).forEach(System.out::println);*/
}
}
实验结果:
153
370
371
407
2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验源码:
package com.company;
public class Main {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++)
{
String single = String.valueOf(i) + "3";
sum += Integer.parseInt(single)*Math.pow(-1,i + 1);
}
System.out.println(sum);
}
}
实验结果:
-500
3. 编程求1!+2!+3!+…+20!。
实验源码:
package com.company;
public class Main {
public static void main(String[] args) {
long sum = 0;
for(int i = 1; i <= 20; i++)
{
sum += factorial((long) i);
}
System.out.println(sum);
}
public static long factorial(long number) {
if (number <= 1)
return 1;
else
return number * factorial(number - 1);
}
}
实验结果:
268040729
4. 编写Java程序,计算8+88+888+…前10项之和。
实验源码:
package com.company;
public class Main {
public static void main(String[] args) {
long sum = 0;
String single = "";
for(int i = 0; i < 10; i++)
{
single += "8";
sum = sum + Long.parseLong(single);
}
System.out.println(sum);
}
}
实验结果:
9876543200
5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验源码:
package com.company;
public class Main {
public static void main(String args[]) {
int sum = 0;
int i = 2,j = 1;
for(i = 2; i <= 1000; i++)
{
for(j = 1; j < i; j++)
if(i % j == 0)
sum += j;
if(sum == i)
System.out.println(" " + sum);
sum = 0;
}
}
}
实验结果:
6
24
28
496
6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验源码:
package New.Learn;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
int x=1, sum=0;
while (true)
{
if(sum + x<8888)
{
sum += x++;
}
else
{
break;
}
}
System.out.println(sum);
}
}
实验结果:
132
7. 使用for循环打印下面的图形。
*
* *
* * *
实验源码:
package New.Learn;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
int level = 5;
for (int i=1; i<=level; i++)
{
for (int k=0; k
实验结果:
*
* *
* * *
* * * *
* * * * *
内容总结
封装性:
1.封装性就是保证类内部的定义不被外部可见
2.所有属性都必须使用private封装,封装后的属性如果要被外部所访问,要定义相应的setter和getter方法。
构造方法:
1.构造方法是类的一种特殊方法,用来初始化类的一个新的对象。
2.构造方法的名称与类名称一致。
3.不能在构造方法中使用return返回一个值。
4.构造方法可重载;一个类中至少会存在一个构造方法。
匿名对象:
没有明确给出名字的对象。一般匿名对象只使用一次 只在堆内存中开辟对象,不存在栈内存的引用。