ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:20.06KB ,
资源ID:10466510      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10466510.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java数组与对象实验报告.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Java数组与对象实验报告.docx

1、Java数组与对象实验报告实验六 Java对象和数组一 实验目的1掌握Java中对象和引用变量的概念2掌握Java数组的使用和本质3掌握数组相关常用算法二 实验内容1类的定义和对象创建定义类MyPoint用以包含属性x,y表示一个点的坐标。在类中编写main()方法,在其中声明两个MyPoint类型的对象start和end,分别创建对象并赋值给对象名start和end。将对象start的成员x和y分别赋值为10,将对象end的成员x和y分别赋值为20。【程序代码】package exp6;public class MyPoint int x,y; public MyPoint( int x,i

2、nt y) this.x=x; this.y=y; public static void main(String args) MyPoint start; MyPoint end; start=new MyPoint(10,10); end=new MyPoint(20,20); 1.1 输出两个对象的字符串表示。用两种方法实现(1)System.out.println(Start MyPoint = x:+start.x + y+ start.y);(2)通过改写toString()方法来实现,然后使用 System.out.println(start);【写出toString()方法的全部

3、代码】 public String toString() return x=+x+ +Y=+y; 1.2 在main()方法中增加代码,以完成下列操作:声明一个新的MyPoint类型对象stray。将对象end的赋值给stray,随后输出end和stray变量的成员x和y的值。将对象stray的成员x和y赋任意新值,输出end和stray的成员的值。将start对象的成员x和y赋予新的值(任意),再次输出start和end的成员值。分析程序输出结果,得出相应结论。【程序代码和分析:填写增加部分的代码即可】 MyPoint start=new MyPoint(10,10); MyPoint en

4、d=new MyPoint(20,20); MyPoint stray; stray=end; System.out.println(end); System.out.println(stray); stray=end; stray.x=30; stray.y=30; System.out.println(end); System.out.println(stray); start.x=50; start.y=50; System.out.println(end); System.out.println(start);运行结果:x=20 Y=20x=20 Y=20x=30 Y=30x=30 Y

5、=30x=30 Y=30x=50 Y=50分析程序:(1)、将对象end的赋值给stray,则将引用变量end的内存地址赋给stray,两者指向同一数组。所以输出X=20 Y=20(2)、将对象stray的成员x和y赋任意新值,则将引用变量stray指向新的内存,输出X=30 Y=30(3)、将start对象的成员x和y赋予新的值(任意),则将引用变量start指向新的内存,输出X=50 Y=502一维数组的使用2.1 定义一个BasicArray类,在main()方法中声明(非创建)两个整型数组, thisArray和thatArray。创建一个数组,它的初值是1至10。将这个数组的引用赋值

6、给变量thisArray。使用for循环输出thisArray数组的所有值。如何控制循环的次数?编译并运行程序,记下输出结果。【程序代码和分析】package exp6;public class BasicArray public static void main(String args) int thisArray; int thatArray; int arrayNew=1,2,3,4,5,6,7,8,9,10; thisArray=arrayNew; for(int i=0;ithisArray.length;i+) System.out.println(thisArrayi); 运行结

7、果:1 2 3 4 5 6 7 8 9 10分析程序:声明数组thisArray,thatArray,声明数组arrayNew并初始化。将arrayNew赋给thisArray,则将arrayNew的内存地址赋给thisArray,两者指向同一数组。最后用for循环输出thisArray指向的数组。2.2 对每个thisArray的元素,把它的值赋值为下标值的阶乘。并输出数组的所有元素。重新编译并运行程序。【程序代码和分析:填写增加部分的代码即可】for(int i=0;ithisArray.length;i+) int j; for( j=1,thisArrayi=1;j=i;j+) thi

8、sArrayi*=j; System.out.println(thisArray+i+=+thisArrayi); 运行结果:thisArray0=1thisArray1=1thisArray2=2thisArray3=6thisArray4=24thisArray5=120thisArray6=720thisArray7=5040thisArray8=40320thisArray9=362880分析程序:因为将thisArray的赋值为下标的阶乘,所以thisArray指向的数组其元素将被重新赋值。2.3将thisArray赋值给thatArray。输出thatArray的所有元素。编译并运

9、行程序,分析程序运行结果。【程序代码和分析:填写增加部分的代码即可】thatArray=thisArray;int length=thatArray.length;for(i=0;ilength;i+)System.out.println(thatArrayi+thatArrayi);运行程序:thatArray0=1thatArray1=1thatArray2=2thatArray3=6thatArray4=24thatArray5=120thatArray6=720thatArray7=5040thatArray8=40320thatArray9=362880分析程序:因为thisArra

10、y赋值给thatArray,所以thisArray,thatArray将指向同一数组。2.4 任意修改thisArray数组的某些元素,输出thatArray数组的值。编译并运行程序,分析运行结果。【程序代码和分析:填写增加部分的代码即可】thisArray4=4444; thatArray=thisArray; int length=thatArray.length; for(i=0;ilength;i+) System.out.println(thatArrayi+thatArrayi);2.5 创建一个长度为20个元素的整型数组。将新数组的引用给变量thatArray,输出thatArr

11、ay的值。编译并运行程序,记录输出结果并分析原因。【程序代码和分析:填写增加部分的代码即可】int otherArray= new int20; thatArray=otherArray; for(int i=0;ithatArray.length;i+) System.out.print(thatArrayi+ ); 运行结果:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0分析程序:因为创建了一个数组但是没有初始化,所以输出的时候输出的是该数组的数据类型的默认值2.6使用arraycopy方法将thisArray数组的值给thatArray数组。输出thatA

12、rray数组中元素的值。编译并运行程序。分析程序运行结果。【程序代码和分析:填写增加部分的代码即可】int thisArray; int thatArray; int arraynew=1,2,3,4,5,6,7,8,9,10; thisArray=arraynew; int otherArray= new int20; thatArray=otherArray; System.arraycopy(thisArray, 0, thatArray, 1,thisArray.length); for(int i=0;ithatArray.length;i+) System.out.print(th

13、atArrayi+ ); 运行结果:0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0分析程序:使用arraycopy()方法将thisArray的值赋给thatArray,arraycopy()方法中的参数的意思是:将thisArray数组从下标为0的元素开始,复制到thatArray数组的下标为1的元素,一共复制thisArray.length个元素,其余的元素不变。2.7 改变thatArray数组中某些元素的值,输出thisArray和thatArray数组的所有元素。编译并运行程序。分析程序运行结果。【程序代码和分析:填写增加部分的代码即可】thatAr

14、ray15=15; System.out.print(thisArray:); for(int i=0;ithisArray.length;i+) System.out.print(thisArrayi+ ); System.out.println(); System.out.print(thatArray:); for(int i=0;ithatArray.length;i+) System.out.print(thatArrayi+ ); 运行结果:thisArray:1 2 3 4 5 6 7 8 9 10 thatArray:0 1 222 3 4 5 6 7 8 9 10 0 0 0

15、 0 0 0 0 0 03在文本文件中存放着一系列的整数,整数与整数之间用逗号分隔。编写程序将这些整数读入程序,然后对数组进行特定处理后输出。提示:可以使用Scanner类的nextLine()方法得到一个字符串line,其中存放着所有的整数。然后用 String arr=line.split(“,”); 可将逗号作为分隔符分离出一个数组,数组的长度即为整数的个数,每一个数组元素可通过Integer.parseInt()转换为整型数据存放到新创建的整型数组中(数组长度即为arr的长度)。3.1 将数据读取分析功能单独设计为一个方法 public static int readData();【写

16、出方法代码】import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.BufferedWriter;import java.io.IOException;import java.util.Scanner;public static int readData()throws FileNotFoundException Scanner sc=new Scanner(new BufferedReader(n

17、ew FileReader(E:实验备份XX云同步盘Javaworkspacesource.txt); String st=sc.nextLine(); String arr=st.split(,); int arrLength=arr.length; int intArr = new intarrLength; int i; for(i=0;iarrLength;i+) intArri=Integer.parseInt(arri); return intArr; 3.2 将读取到的整数使用冒泡排序法按升序排序,写出方法代码。方法原型为public static void bubbleSort

18、(int a,int n); /n为元素个数public static void bubbleSort(int a,int n) throws FileNotFoundException int j; for(j=0;jn-1;j+) boolean flag=true; for(int i=0;iai+1) int temp=ai; ai=ai+1; ai+1=temp; flag=false; if(flag=true)break; for(j=0;ja.length;j+) System.out.print(aj+ ); public static void main(String ar

19、gs) throws FileNotFoundException bubbleSort(readData(),readData().length); 运行结果:98 94 91 90 89 89 88 78 75 603.2 将读取到的整数使用选择排序法按升序排序,写出方法代码。方法原型为public static void selectSort(int a,int n); /n为元素个数public static void selectSort(int a,int n) throws FileNotFoundException int i; for(i=0;in;i+) int lowInd

20、ex = i; for(int j=i+1;jalowIndex) lowIndex = j; int temp = ai; ai = alowIndex; alowIndex = temp; for(i=0;ia.length;i+) System.out.print(ai+ ); 运行结果:60 75 78 88 89 89 90 91 94 983.3 将读取到的整数使用Arrays类中的sort方法进行排序,写出方法代码。public static void ArraySort(int x) throws FileNotFoundException Arrays.sort(x); fo

21、r(int i=0;ix.length;i+)System.out.print(xi+ ); public static void main(String args) throws FileNotFoundException ArraySort(readData(); 3.4 对读取到的整数进行分析,求出最大值、最小值、平均值并输出。同样设计为一个单独的方法。public static void aboutArray(int a,int n) int max=0,min=100,sum=0; int i; float ave; for(i=0;imax) max=ai; if(aimin) m

22、in=ai; sum+=ai;/ System.out.print(最大值+max+ +最小值+min); ave=sum/(float)n; System.out.println(最大值:+max+ +最小值:+min+ +平均值:+ave); 4. 定义MyDate类,包含year,month,day三个成员。在MyDate类中改写toString()方法,equals方法并实现Compareable接口。在大小比较时,返回两个日期相差的天数。为了计算相差的天数,设计方法int order()返回日期在该年的序号,设计函数 int diff(MyDate ad)计算本日期和ad日期之间相差

23、的天数。package exp6;public class MyData int year; int month; int day; public MyData(int x,int y,int z) year=x; month=y; day=z; public void setYear(int x) year=x; public void setMonth(int y) month=y; public void setDay(int z) day=z; public int getYear() return year; public int getMonth() return month; p

24、ublic int getDay() return day; public String toString() /重写toString() return year+年+month+月+day+日; public boolean isLeapYear() if(year%4=0&year%100!=0)|year%400=1) return true; else return false; public int order() int j=0; int numOfMonth=0,0,31,28,31,30,31,30,31,31,30,31,30; int numOfMonth2=0,0,31,

25、29,31,30,31,30,31,31,30,31,30; if(isLeapYear()/计算这天在这年中的次序 for(int i=1;i=month;i+)/闰年的计算方法 j+=numOfMonth2i; else for(int i=1;i=month;i+)/平年的计算方法 j+=numOfMonthi; return j+day; public int numOfYear(MyData md) if(md.isLeapYear() return 366; else return 365; public static int diff(MyData md1,MyData md2)

26、 int sd=md1.getYear()-md2.getYear(); int numOfLeap=(sd-2)/4;/两个日期之间的闰年个数 int different; different =numOfLeap*366+(sd-numOfLeap-1)*365+md1.order()+(md2.numOfYear(md2)-md2.order(); return different; public static void main(String args) MyData md = new MyData(2008,3,1); MyData md2= new MyData(2004,3,1); System.out.println(diff(md,md2); 【实验小结】实验准备和过程实验结果实验报告总分

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2