实 验 报 告

( 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方法。

五、指导教师评语

成  绩

批阅人

日  期

                       
、、

南京邮电大学java第二次实验报告的更多相关文章

  1. 南京邮电大学java第一次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  2. 南京邮电大学java第四次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 6 月 ...

  3. 南京邮电大学java第三次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  4. java第二次实验报告

    课程:Java实验   班级:201352     姓名:池彬宁  学号:20135212 成绩:             指导教师:娄佳鹏   实验日期:15.05.05 实验密级:         ...

  5. java第二次实验报告20135231

    Java实验报告二:Java面向对象程序设计 20135231 何佳 实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉 ...

  6. Java第二次实验报告——Java面向对象程序设计

    北京电子科技学院(BESTI) 实    验    报    告 课程名称:java程序设计实验      班级:1352         姓名:洪韶武      学号:20135219 成绩:   ...

  7. 南京邮电大学java程序设计作业在线编程第二次作业

    王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60  1. 表达式9==8&&3<7的运算结果是( ) ...

  8. 20165210 Java第二次实验报告

    20165210 实验二 Java面向对象程序设计 一.面向对象程序设计1--单元测试和TDD 实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html ...

  9. 南京邮电大学java程序设计作业在线编程第四次作业

    王利国的的 "Java语言程序设计第4次作业(2018)" 详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:40  1.下列方法定义中,正确的是() A.doub ...

随机推荐

  1. UVA 10305 Ordering Tasks(拓扑排序的队列解法)

    题目链接: https://vjudge.net/problem/UVA-10305#author=goodlife2017 题目描述 John有n个任务,但是有些任务需要在做完另外一些任务后才能做. ...

  2. PAT 个位数统计

    描述 给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个 ...

  3. hi-nginx-1.3.4编译安装

    hi-nginx既是 web 服务器,也是 application 服务器.它开源在https://github.com/webcpp/hi-nginx 它是NGINX的超集,因此与编译NGINX稍有 ...

  4. js获取input file文件二进制码

    <html> <body> <img id="image"src=""/> <br/> <input ty ...

  5. Algorithm --> 二进制中1的个数

    行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数.例如6(二进制0000 0110) ...

  6. 随记PC-win7 64位系统网络连接状态一直转圈、等待状态的异常解决方案

    各位看官好~ 最近电脑也做了下升级,入手个士必得360G的SSD来玩玩,顺便也下个新系统,看看有什么区别,想想顺便升级下系统也是好的,就开始了装机,装系统的路程~~~~~~ 好了不说废话,直接进入主题 ...

  7. KVM之七:KVM克隆

    1.在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机.以虚拟机 snale 为例,先暂停虚拟机,如下 [root@kvm ~ ::]#virsh list Id 名称 状态 ------------ ...

  8. Suricata默认规则集相关

    Suricata规则集 Suricata 基于规则检测和控制数据流量,所有规则的配置文件保存在rules目录内 .这些是已知和确认的活动僵尸网络和其C&C(command and contro ...

  9. Java基础学习笔记二十 IO流

    转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...

  10. Rails 定时任务——whenever实现周期性任务

    根据项目的进展,我们需要实现后台进行定时读取信息的功能,而最关键的实现部分是周期性功能,根据调研,决定使用whenever来实现这一功能. github:https://github.com/java ...