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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验二数组面向对象程序设计入门.docx

1、实验二数组面向对象程序设计入门湖北工业大学工程技术学院实验报告课程名称: JAVA 实验内容: 实验二 数组面向对象的课程设计入门 学院: 工 程 技 术 学 院 专业班级: 11gb软件2班 教师: 程学先 成绩: 一、实验目的: 1、学习与掌握内部类、外部类、抽象类、静态方法、实例化、this、接口等的概念与应用方法2、掌握作用域的概念,protected、private、private各自影响范围3、学习数组定义与程序设计方法4、掌握判断素数、使用Calendar日历类、产生随机数、矩阵及其乘法、杨辉三角形等基本算法及程序设计方法5、学习并掌握递归程序设计方法6、学习选择法排序、直接选择

2、法排序、插入法排序、冒泡法排序的方法与程序设计方法二、实验内容: 1、执行下述程序,说明各程序功能,如果题后有问题,按问题进行设计并总结。将每题运行结果复制粘贴到一个Word文件中。1)判断从100到500之间的数那些是素数,那些不是素数。如果*是素数,就显示*是素数,否则显示*不是素数。 import java.util.*; public class a1 static long Primenumber(int n) long s1=0,i=2,m=(long)Math.sqrt(n); while (i=m & s1=0) if (n % i) = 0) s1=1; else i=i+1

3、; return s1; public static void main(String args) for (int i=100;iy?x:y; class B extends A /建立抽象类的子类 int min(int x, int y) /在A中min被声明为abstract,且因此未有实现语句,在子类中必须实现 return xy?x:y; public class Ex4_11 public static void main(String args) B b1=new B(); /由抽象类的子类派生对象 System.out.println(b1.max(3,19);/调用该子类继

4、承的抽象类的方法 2、参考上面的程序,编写程序使完成下列题目要求的功能并上机实现。将程序代码集中存放到一个WORD文件中,同时将运行结果的显示内容复制粘贴附在程序代码后面。1)求100以内的所有素数。要求只显示所有素数,每行显示10个素数整齐排列。以下是程序核心部分,请补充完整后调试并运行。 for (int n=2;n=50;n+) int i=0; long m=(long)Math.sqrt(n); for (i=2;i(int)m) System.out.print(+n+ ); 2)下面是选择法排序的主要部分,求编写程序随机生成100个整型数据,再用选择法排序。以下是程序核心部分,请

5、补充完整后调试并运行。 for (int i=0;in.length-1;i+) int k=i; for (int j=i+1;jnk) /选择i之后最大的 int temp=nk; nk=nj; nj=temp; 3)将本程序修改为直接选择法排序的程序。写出实现程序。4)下面是插入法排序的主要部分,求编写程序随机生成100个整型数据,再用插入法排序。 int arr =new int100; arr0=n0; for (int j = 1; j 0; i-) if (arri arri-1) break; int a=arri; arri = arri-1; arri-1 = a; 5)C

6、alendar类是有关日历数据的类。参考3-11题(包括题后说明),利用Calendar类设计一个程序,显示程序当前执行时间的时、分、秒值。3、执行以下程序,总结其算法与程序设计方法。将每题运行结果复制粘贴到同一个Word文件中。1)编程求满足下列不等式的最小自然数n的值。import java.util.*;public class Ex2_14 public static void main(String args) double s=0; int n=1;String str; do s=s+1.0/n; n+; while(s=5); str = 和数s = +Double.toStr

7、ing(s) + nn; str = str + 循环次数n = + Integer.toString(n); System.out.println(str); 2)随机生成一组整型数据,再用冒泡法将数组排序显示。public class Ex3_2 public static void main(String args) int n =new int100; for(int i=0;in.length;i+) ni=(int)(Math.random()*90)+10; /产生随机数并强制转为二位整型数 for (int i=0;in.length;i+) /排序 for (int j=0;

8、jnj+1) int k=nj; /次序不对交换位置 nj=nj+1; nj+1=k; for (int i=0;in.length;i+) /显示 if (i+1)%10 != 0) System.out.print(+ni+ ); else System.out.println(ni); 3)随机生成两个矩阵,然后将两个矩阵相乘。矩阵乘法:设A=aijmn , B=bijns ;其中,mn中m表示a行数,n表示列数;ns中n表示b行数,s表示列数;那么,AB的积为:C=cijms其中,Cij=ai1b1j+ai2b2j+ainbnj (i=1,2, ,m ; j=1,2,s)例如, C11

9、=a11b11+a12b21+a1nbn1又例如,C12=a11b12+a12b22+a1nbn2 C21=a21b11+a22b21+a2nbn1如果改为从0开始计数,那么: C00=a00b00+a01b10+a0nbn0 C01=a00b01+a01b11+a0nbn1 C10=a10b00+a11b10+a1nbn0首先看懂上面算法,再思考程序应当如何设计,之后上机操作,最后看懂程序设计方法。public class a1 public static void main(String args) int a=new int34; /动态初始化一个二维数组 int b=new int43

10、; /动态初始化一个二维数组 int c=new int33; /动态初始化一个二维数组 for (int i=0;i3;i+) for (int j=0;j4;j+) /随机生成矩阵数据 aij=(int)(Math.random()*90)+10; for (int i=0;i4;i+) for (int j=0;j3;j+) bij=(int)(Math.random()*90)+10; System.out.println(第一个矩阵数据:); for (int i=0;i3;i+) for (int j=0;j4;j+) System.out.print(+aij+ ); Syste

11、m.out.println(); System.out.println(第二个矩阵数据:); for (int i=0;i4;i+) for (int j=0;j3;j+) System.out.print(+bij+ ); System.out.println(); for (int i1=0;i13;i1+) /0到m-1; for (int j=0;j3;j+) /0到s-1; ci1j=0; /计算乘积 for (int k=0;k4;k+) ci1j=ci1j+ai1k*bkj; System.out.println(二个矩阵之积:); /显示结果 for (int i1=0;i13

12、;i1+) for (int j=0;j3;j+) System.out.print(+ci1j+ ); System.out.println(); 4)创建杨辉三角形。 分析:杨辉三角形中的各行是二项式(a + b)n展开式中各项的系数。注意到 注意到第一列全1 如果用i表示行,j表示列,那么每行从第2列起有:aij=a(i-1)(j-1)+a(i-1)jimport java.util.Scanner;public class Ex3_ 5 public static void main(String args) int a=new int99; /假设打印9行,各元素自动初始化为0 a0

13、0=1; /最上面第一个数 for(int i=1;i9;i+) /从第2行开始递推 ai0=1; /第i行的数据个数等于i for(int j=1;ji;j+) aij=ai-1j-1+ai-1j; for(int i=0;i9;i+) for(int j=0;ji;j+) System.out.print(+aij+ ); System.out.println(); 5)将上面程序改由递归求解,分析递归的可能性及程序实现方法import java.util.Scanner;public class Ex3_5_1 /非主方法必须声明静态 static long c(int n,int k)

14、 if (k=n) return 1; return (c(n-1,k)+c(n-1,k-1); public static void main(String args) / 主方法,可以不加public static for(int i=0;i=9;i+) for(int j=0;j=i;j+) System.out.print(c(i,j)+t); System.out.print(n); 6)将上题中方法c设计为内部类的方法public class Ex3_5_4 /主类 static class c0 /类Ex3_5_4的内部类,加static static long c0(int n

15、,int k) /构造方法,也可改为非构造方法 if (k=n) return 1; return (c0(n-1,k)+c0(n-1,k-1); public static void main(String args) for(int i=0;i=9;i+) for(int j=0;j=i;j+) System.out.print(c0.c0(i,j)+t); System.out.print(n); /上面引用c0(i,j)要求c0(i,j)为静态 /将方法c改为内部类c0的方法c0(静态方法),类c0的前面也要加static。编译时生成 Ex3_5_1$c0.class。7)将内部类改为

16、外部类class c0_1 /外部类,不加static static long c0_1(int n,int k) if (k=n) return 1; return (c0_1(n-1,k)+c0_1(n-1,k-1); public class Ex3_5_5 /主类 public static void main(String args) for(int i=0;i=9;i+) for(int j=0;j=i;j+) System.out.print(c0_1.c0_1(i,j)+t); System.out.print(n); /上面引用c0(i,j)要求c0(i,j)为静态 /将内部

17、类c0改外部类c0_1,方法c0_1设计为静态方法。8)同一目录下建二个类文件,调用静态方法(类方法)递归。源程序文件Ex3_5_2.java:public class Ex3_5_2 public static void main(String args) for(int i=0;i=9;i+) for(int j=0;j=i;j+) System.out.print(c.c(i,j)+t); System.out.print(n); /上面引用c(i,j)要求c(i,j)为静态 源程序文件c.javaclass cstatic long c(int n,int k) if (k=n) re

18、turn 1; return (c(n-1,k)+c(n-1,k-1); 对Ex3_5_1.java编译,生成Ex3_5_1.class和c.class二个类文件9)实例化class cClass long c1(int n,int k) if (k=n) return 1; return (c1(n-1,k)+c1(n-1,k-1); public class Ex3_5_3 public static void main(String args) cClass cObject=new cClass(); /实例化:建立类cClass的对象 for(int i=0;i=9;i+) for(i

19、nt j=0;j=i;j+) System.out.print(cObject.c1(i,j)+t); System.out.print(“n”); /上面引用c(i,j)不再要求c(i,j)为静态 10)改为接口实现interface cface /定义接口long c(int n,int k); /方法不许实现,即不能有方法体,用分号结束public class Ex3_5_6 implements cface/调用接口/必须实现接口中所有方法,且方法的名字、类型、参数个数及类型必须与接口中的完全一致 public long c(int n,int k) /不要忘了public if (k

20、=n) return 1; return (c(n-1,k)+c(n-1,k-1); public static void main(String args) for(int i=0;i=9;i+) for(int j=0;j=i;j+) System.out.print(c.c(i,j)+t);/上面引用接口中c(n,k)要求c(n,k)为public System.out.print(n); 比较以上各题,全面了解面向对象的程序设计主要的语言元素,学习各概念的意义、应用方法,特别注意其区别与设计要点。11)画出实验当天所在月的日历表。import java.util.Calendar;pu

21、blic class Ex4_27 /* * param args */ public static void main(String args) System.out.println( 日 一 二 三 四 五 六); Calendar calendar = Calendar.getInstance(); int m = 9; calendar.set(2012, m-1, 1); /设置日历表起始年月日的值 /在表中该日期算作该月1日在列出日历 int day_of_week = calendar.get(Calendar.DAY_OF_WEEK)-1; System.out.print(d

22、ay_of_week); /该日期是星期几? String a = new Stringday_of_week + 31; for(int i=0; iday_of_week; i+) ai = * ; for(int i=day_of_week, n=1; iday_of_week+31; i+) if (n = 9) ai = String.valueOf(n) + ; else ai = String.valueOf(n); n+; for (int i=0; ia.length; i+) if (i % 7 = 0) System.out.println(); System.out.print( + ai); /返回当前时间小时数:calendar.get(Calendar.HOUR_OF_DAY )/例如显示当前小时数语句:System.out.println(calendar.get(

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

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