班级 计科一班 学号 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.方法声明 --> 公开
方法实现 --> 隐藏
实现改变时,对对象的使用者没有影响。