南京邮电大学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() ); } } 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) {
3:有些问题java也没有封装方法,查找api也没有找到一个直接将int类型转换成int数组的方法。最后只能手写int类型转数组。
4:有编译器挺方便,直接可以生成第四题类中的Constructor和Getter,Setter方法。 |
|||||||||||
五、指导教师评语
|
|||||||||||
成 绩 |
|
批阅人 |
|
日 期 |
|
||||||