实验报告(2015/2016学年第2学期)课程名称JAVA语言程序设计实验名称Java方法和数组的使用、类和对象实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专业1实验名称Java方法和数组的使用、类和对象指导教师朱艳梅实验类型上机实验学时2实验时间2016-4-21一、实验目的1.复习三大控制结构,会编写相关程序2.熟练掌握java方法的编程3.学会使用java的数组4.掌握类的基本概念,会编写简单的类二、实验环境(实验设备)1.每位学生配备计算机一台2.计算机需安装好JDK和JCreator三、实验内容1.编写程序,打印出100~999中所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。要求定义一个方法:publicstaticbooleanjudge(intn):用于判断n是否是水仙花数;按下面结构完成本程序:publicclassShuiXianShu{publicstaticbooleanjudge(intn){...}publicstaticvoidmain(Stringargs[]){...}}程序:package水仙花数;publicclassFlower{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根inti=0;for(i=100;i=999;i++){if(judge(i)){System.out.printf(%d,i);}}}publicstaticbooleanjudge(intn){inta,b,c;a=n%10;b=(n/10)%10;c=(n/100)%10;2if(n==a*a*a+b*b*b+c*c*c)returntrue;elsereturnfalse;}}运行结果:2.求斐波那契数列的第n项,n从键盘输入。程序:package斐波那契数列;importjava.util.Scanner;publicclassFibonacci_arrays{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根intn;System.out.print(输入需要的第N位斐波那契数:);Scannerinput=newScanner(System.in);n=input.nextInt();switch(n){case0:System.out.print(0);break;case1:System.out.print(1);break;default:System.out.print(循环迭代法:);System.out.print(circulate(n));System.out.print(\n);System.out.print(递归法:);System.out.print(iteration(n));}}publicstaticintcirculate(intn){inti,temp,sum1=0,sum2=1;for(i=2;i=n;i++){temp=sum2+sum1;sum1=sum2;sum2=temp;}3returnsum2;}publicstaticintiteration(intn){intsum;if(n==1)sum=1;elseif(n==0)sum=0;else{sum=iteration(n-1)+iteration(n-2);}returnsum;}}运行结果:3.由键盘输入5个整数存入数组,比较并输出其中的最大值和最小值并对其进行排序输出。程序:package数组排序;importjava.util.Scanner;publicclassarrays_search{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根intarray[]=newint[5];intmax=0,mini=0;System.out.println(请输入5个整数:);Scannersc=newScanner(System.in);array[0]=sc.nextInt();max=array[0];mini=array[0];for(inti=1;i5;i++){array[i]=sc.nextInt();max=max=array[i]?max:array[i];mini=mini=array[i]?mini:array[i];}4System.out.println(其中的最小值为:+mini);System.out.println(其中的最大值为:+max);System.out.println(beforesort:);for(inti=0;i5;i++){System.out.print(array[i]+);}System.out.println();sort(array);System.out.println(aftersort:);for(inti=0;i5;i++){System.out.print(array[i]+);}}publicstaticvoidsort(intarray[]){inttemp;for(inti=0;i4;i++){for(intj=4;ji;j--){if(array[j]array[j-1]){temp=array[j-1];array[j-1]=array[j];array[j]=temp;}}}}}运行结果:4.学生类的创建和使用①创建一个学Student类,成员变量包括:学号、班号、姓名、性别、年龄等,且都是private类型。②声明一个构造方法,初始化所有成员变量。③分别声明获得各属性的public类型的成员方法,方法名要求以get开头。④分别声明修改各属性的public类型的成员方法,方法名要求以set开头。⑤声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。5在主类中:创建2个Student对象,输出对象的所有域信息;修改对象的姓名和年龄,输出修改后的姓名和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。程序:Student类:packageStudent;publicclassStudent{privateStringnum;privateStringclassnum;privateStringname;privateStringsex;privateintage;privatestaticintcount=0;publicStudent(Stringnum,Stringclassnum,Stringname,Stringsex,intage){this.num=num;this.classnum=classnum;this.name=name;this.sex=sex;this.age=age;count++;}publicstaticintgetcount(){returncount;}publicStringgetnum(){returnnum;}publicStringgetclassnum(){returnclassnum;}publicStringgetname(){returnname;}publicStringgetsex(){returnsex;}publicintgetage(){returnage;}publicvoidsetnum(Stringnum){this.num=num;}6publicvoidsetclassnum(Stringclassnum){this.classnum=classnum;}publicvoidsetname(Stringname){this.name=name;}publicvoidsetsex(Stringsex){this.sex=sex;}publicvoidsetage(intage){this.age=age;}publicStringtoString(){return学号:+this.num+\t班号:+this.classnum+\t姓名:+this.name+\t性别:+this.sex+\t年龄:+this.age;}}测试函数:packageStudent;importStudent.Student;publicclassStudentTest{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根Students1=newStudent(001,98,张三,男,24);System.out.println(构造s1后,班级人数为:+Student.getcount());Students2=newStudent(002,9801,李四,女,21);System.out.println(构造s2后,班级人数为:+Student.getcount());s1.setname(王平);s2.setage(19);System.out.println(s1.toString());System.out.println(s2.toString());if(s1.getage()s2.getage())System.out.println(年龄较大的人的名字为:+s1.getname());elseSystem.out.println(年龄较大的人的名字为:+s2.getname());}}运行结果:78四、实验小结(包括问题和解决方法、心得体会等)五、指导教师评语成绩批阅人日期