南京邮电大学java第二次实验报告

时间:2023-03-09 23:04:32
南京邮电大学java第二次实验报告

实 验 报 告

( 2017 / 2018学年 第2学期)

课程名称

JAVA语言程序设计

实验名称

Java集成开发环境的安装与使用、

Java变量、表达式与控制结构

实验时间

2018

4

11

指导单位

计算机学院软件教学中心

指导教师

许棣华

学生姓名

王利国

班级学号

B160209

学院(系)

电子与光学工程学院,微电子学院

专    业

微电子科学与工程

实验名称

方法、数组和类

指导教师

许棣华

实验类型

上机

实验学时

2

实验时间

2017.4.11

一、    实验目的

1. 掌握方法的声明和调用

2. 掌握数组的声明、创建、初始化和使用

3. 掌握类的定义

4. 掌握对象的创建和使用

5. 掌握构造方法的使用

6. 掌握包的创建和使用

二、实验环境(实验设备)

1. 每位学生配备计算机一台

2. 计算机需安装好JDK和Jcreator

三、实验内容

1. 寻找并输出11~999之间的数m,它满足m、m2、m3均为回文数。回文数是各位数字左右对称的整数。判断是否为回文要求通过编写方法来完成。

package Test;

/**
* @Author liguo
* @Description 寻找并输出11~999之间的数m,它满足m、m2、m3均为回文数。
* 回文数是各位数字左右对称的整数。判断是否为回文要求通过编写方法来完成。
* @Data 2018-04-11
*/
public class Test21 {
//将数按照位数转化为数组,然后比较数组首尾是否相同来判断是否为回文
static boolean huiWen(int a) {
boolean flag = true;
int temp = String.valueOf( a ).length();
int b[] = new int[temp]; for (int i = 0; i <= temp - 1; i++) {
b[i] = a % 10;
a = a / 10;
}
int mid = temp / 2;
for (int i = 0; i <= mid; i++) {
if (b[i] != b[temp - 1 - i]) {
flag = false;
break;
}
}
return flag;
// for ( int number : b)
// System.out.println( number );
} public static void main(String[] args) {
for (int i = 11; i <= 999; i++) {
if (huiWen( i )) {
if (huiWen( i * i )) {
if (huiWen( i * i * i ))
System.out.println( i + " " );
}
} }
}
}

2. 由键盘输入10个整数,比较并输出其中的最大值和最小值。

package Test;

  import java.util.Arrays;

  import java.util.Scanner;

  /**

 * @Author liguo

 * @Description 由键盘输入10个整数,比较并输出其中的最大值和最小值。

 * @Data 2018-04-11

 */

  public class Test22 {

    public static void main(String[] args) {

        Scanner in = new Scanner( System.in );

        int[] array = new int[10];

        for (int i = 0; i < 10; i++) {

            array[i] = in.nextInt();

        }

        Arrays.sort( array );

        System.out.println( "最大值为" + array[9] + "最小值为" + array[0] );

    }

}
3. 随机产生50个1-100之间的整数,存放于一个10´5的二维数组中,要求按照10´5的格式打印这个数组(即共显示10行,每行5个数,数与数之间间隔一个空格),并求出该数组所有元素之package Test;
  
  /**

 * @Author liguo

 * @Description

 * @Data 2018-04-11 

 */

  public class Test23 {

    public static void main(String[] args) {

        int[][] array = new int[10][5];

        int i = 0;

        for (int[] row : array) {

            for (int value : row) {

                value = (int) (Math.random() * 100);

                System.out.print( value + " " );
          int sum = 0;
} System.out.println(); } } }

4. 学生类的创建和使用

①创建一个学Student类,成员变量包括:学号、班号、姓名、性别、年龄等,且都是private类型。

②声明一个构造方法,初始化所有成员变量。

③分别声明获得各属性的public类型的成员方法,方法名要求以get开头。

④分别声明修改各属性的public类型的成员方法,方法名要求以set开头。

⑤声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。

⑥声明统计创建Student对象的个数的私有域count和得到Student对象的个数的public方法。

⑦将类Student放在子包student中。

⑧在子包student外,创建测试类Student的主类。

在主类中:创建2个Student对象,输出对象的所有域信息;修改对象的姓名和年龄,输出修改后的姓名和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象package student;



  /**

 * @Author liguo

 * @Description

 * @Data 2018-04-11

 */

  public class Student {

    private int studentID;

    private int clssID;

    private String name;

    private String sex;

    private int age;

    private static int count;

    public static int getCount() {

        return count;

    }

    public Student(int studentID, int clssID, String name, String sex, int age) {

        this.studentID = studentID;

        this.clssID = clssID;

        this.name = name;

        this.sex = sex;

        this.age = age;

        count++;

    }

    @Override

    public String toString() {

        return "Student{" +

                "studentID=" + studentID +

                ", clssID=" + clssID +

                ", name='" + name + '\'' +

                ", sex='" + sex + '\'' +

                ", age=" + age +

                '}';

    }

    public int getStudentID() {

        return studentID;

    }

    public void setStudentID(int studentID) {

        this.studentID = studentID;

    }

    public int getClssID() {

        return clssID;

    }

    public void setClssID(int clssID) {

        this.clssID = clssID;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String getSex() {

        return sex;

    }

    public void setSex(String sex) {

        this.sex = sex;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

}
 

地生院作业版本答案

import java.util.*;
class Student {
private String studentID;
private String name;
private String sex;
private int age;
private static int count; public static int getCount() {
return count;
} public Student(String studentID, String name, String sex, int age) {
this.studentID = studentID;
this.name = name;
this.sex = sex;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public static void setCount(int count) {
Student.count = count;
} public static void main(String[] args) {
//顺序输入两个学生的学号、姓名、性别、年龄,一行输入一个学生
//
//输出一下字符串“The older student is 年龄较大的学生姓名.”
// B01 zhang male 20
// B02 li female 25
Scanner in = new Scanner( System.in );
String xuehao1 = in.next( );
String name1 = in.next( );
String sex1 = in.next( );
int age1 = in.nextInt();
String xuehao2 = in.next( );
String name2 = in.next( );
String sex2 = in.next( );
int age2 = in.nextInt();
Student s1 = new Student( xuehao1, name1, sex1, age1);
Student s2 = new Student( xuehao2, name2, sex2, age2 );
if (s1.getAge() > s2.getAge())
System.out.println( "the older student is "+ s1.getName() );
else
System.out.println( "the older student is "+ s2.getName() );
}
}
class Main{
  public static void main(String[] args) {

        Student one = new Student( 16020913, 9, "王利国", "男", 19 );

        Student two = new Student( 16020912, 9, "王宁宁", "男", 20 );

        System.out.println( one.toString() + "\n" + two.toString() );

        one.setName( "lili" );

        one.setAge( 20 );    

        two.setName( "dingding" );

        two.setAge( 21 );

        System.out.print( "两个学生年龄较大者为:" );

        System.out.println( one.getAge() > two.getAge() ? one.getAge() : two.getAge() );

        System.out.println( "student对象的个数为"+getCount() );

    }
}
 

四、实验小结(包括问题和解决方法、心得体会等)

1:可以使用String.valueOf(数据).length方法来获取int类型的长度。

2第一次在二维数组中使用foreach,挺好的,框架如下

for (int[] row : array) {
    for (int value : row) {
        value = (int) (Math.random() * 100);
        System.out.print( value + " " );
    }
    System.out.println();
}

3:有些问题java也没有封装方法,查找api也没有找到一个直接将int类型转换成int数组的方法。最后只能手写int类型转数组。

4:有编译器挺方便,直接可以生成第四题类中的Constructor和Getter,Setter方法。

五、指导教师评语

成  绩

批阅人

日  期

                       
、、