Java课程第二次实验报告
1.寻找并输出11~999之间的数m,它满足m、m2、m3均为回文数。回文数是各位数字左右对称的整数。判断是否为回文要求通过编写方法来完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class HelloWorld { public static boolean isPalindrome (int s) { String str = Integer.toString(s); if ( str.charAt(0 ) == str.charAt(str.length() - 1 ) ) return true ; else return false ; } public static void main (String []args) { for (int s = 11 ; s < 1000 ; s++) { if (isPalindrome(s) && isPalindrome(s*s) && isPalindrome(s*s*s) ) System.out.println(s); } } }
2.由键盘输入10个整数,比较并输出其中的最大值和最小值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.Scanner;public class HelloWorld { public static void main (String []args) { Scanner s = new Scanner(System.in); int []arr = new int [10 ]; int maxn = -1000000000 ; int minn = 1000000000 ; for (int i = 0 ; i < 10 ; i++) { arr[i] = s.nextInt(); if ( arr[i] < minn ) minn = arr[i]; if ( arr[i] > maxn) maxn = arr[i]; } System.out.printf("最大值:%d ,最小值:%d \n" ,maxn,minn); } }
3.随机产生50个1-100之间的整数,存放于一个10´5的二维数组中,要求按照10´5的格式打印这个数组(即共显示10行,每行5个数,数与数之间间隔一个空格),并求出该数组所有元素之和。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class HelloWorld { final static int row = 10 ; final static int col = 5 ; static int [][]arr = new int [row][col]; public static void main (String []args) { int sum = 0 ; for (int i = 0 ; i < row; i++) { for (int j = 0 ; j < col; j++) { arr[i][j] = (int )(Math.random()*100 + 1 ); sum += arr[i][j]; System.out.printf("%d " ,arr[i][j]); } System.out.println(); } System.out.println("SUM:" +sum+"" ); } }
4.学生类的创建和使用
①创建一个学Student类,成员变量包括:学号、班号、姓名、性别、年龄等,且都是private类型。
②声明一个构造方法,初始化所有成员变量。
③分别声明获得各属性的public类型的成员方法,方法名要求以get开头。
④分别声明修改各属性的public类型的成员方法,方法名要求以set开头。
⑤声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。
⑥声明统计创建Student对象的个数的私有域count和得到Student对象的个数的public方法。
⑦将类Student放在子包student中。
⑧在子包student外,创建测试类Student的主类。
在主类中:创建2个Student对象,输出对象的所有域信息;修改对象的姓名和年龄,输出修改后的姓名和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。
Student.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 package student;public class Student { private int uid; private int classNum; private String name; private String gender; private int age; private static int cnt = 0 ; public Student (int uid , int classNum , String name , String gender , int age) { this .uid = uid; this .classNum =classNum; this .name = name; this .gender = gender; this .age = age; cnt += 1 ; } public void setUid (int uid) { this .uid = uid; } public int getUid () { return uid; } public void setClassNum (int classNum) { this .classNum = classNum; } public int getClassNum () { return classNum; } public void setName (String name) { this .name = name; } public String getName () { return name; } public void setGender (String gender) { this .gender = gender; } public String getGender () { return gender; } public void setAge (int age) { this .age = age; } public int getAge () { return age; } public static int getCnt () { return cnt; } @Override public String toString () { return String.format("学号为%d的同学,在%d班,姓名为%s,性别为%s,年龄为%d," , uid,classNum,name,gender,age); } }
HelloWorld.java
1 2 3 4 5 6 7 8 9 10 11 12 13 import student.*;public class HelloWorld { public static void main (String []args) { Student stu1 = new Student(1 ,1 ,"cl" , "male" , 20 ); Student stu2 = new Student(3 ,2 ,"cjl" , "female" , 20 ); System.out.println(stu1); System.out.println(stu2); stu1.setName("cl2" ); stu1.setAge(21 ); System.out.printf("修改之后的姓名:%s,修改后的年龄:%d\n" ,stu1.getName(),stu1.getAge()); System.out.println( stu1.getAge() > stu2.getAge() ?stu1 : stu2); } }