QQ空间 新浪微博 腾讯微博 微信 更多
  

南京邮电大学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方法。

五、指导教师评语

 

成  绩

 

批阅人

 

日  期

 

                       

 

 

 

 

 

、、

posted @ 2018-04-11 19:49  nupt想象之中  阅读(3613)  评论(0编辑  收藏  举报