




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 设计一个名为figure的图形软件包(package)。包中包含三角形、矩形、圆三个类。要求:(1)每个类都要构造方法并为成员设置get和set方法;(2)每个类都要有计算周长和面积的成员方法;(3)完成该软件包后的编码后,在另一个包的含有main方法的类中编写代码,分别使用图形软件包中的三个类,生成三个对象,并打印出其周长和面积。 *package figure;public class juxing/矩形的计算函数private double lenth,width;public juxing()lenth=0;width=0;public juxing (double x,double y)lenth=x;width=y;public void setLenth(double lenth)this.lenth=lenth;public double getLenth()return lenth;public void setWidth(double width)this.width=width;public double getWidth()return width; public double perimeter() return lenth*width; public double Area() return (lenth+width)*2; *package figure;import java.math.*;public class sanjiaoxing /三角形的计算函数private double side1;private double side2;private double side3;public sanjiaoxing()side1=0;side2=0;side3=0;public sanjiaoxing(double x,double y,double z)side1=x;side2=y;side3=z;public void setSide1(double side1)this.side1=side1;public double getSide1()return side1;public void setSide2(double side2)this.side2=side2;public double getSide2()return side2;public void setSide3(double side3)this.side3=side3;public double getSide3()return side3;public double perimeter()return side1+side2+side3;public double Area()double p=(side1+side2+side3)/2;return Math.sqrt(p*(p-side1)*(p-side2)*(p-side3);*package figure;import java.math.*;public class yuanxing /圆形的计算函数private double radius;public yuanxing()radius=0;public yuanxing(double x)radius=x;public void setRadius(double radius)this.radius=radius;public double getRadius()return radius;public double perimeter()return 2*Math.PI*radius;public double Area()return Math.PI*radius*radius;*package figure_show;import figure.juxing;import figure.sanjiaoxing;import figure.yuanxing;public class main public static void main(Stringargs)sanjiaoxing t=new sanjiaoxing(3,4,5);System.out.println(三角形的周长:+t.perimeter();System.out.println(三角形的面积:+t.Area();juxing r=new juxing(3,4);System.out.println(矩形的周长:+r.perimeter();System.out.println(矩形的面积:+r.Area();yuanxing c=new yuanxing(5);System.out.println(圆形的周长;+c.perimeter();System.out.println(圆形的面积:+c.Area();2. 设计一个教师类Teacher(属于.sdkd包),要求:1) 属性有编号(int no)、姓名(String name)、年龄(int age)、所属学院(seminary),为这些属性设置相应的get和set方法。2) 为Teacher类重写equals方法,要求:当两个教师对象的no相同时返回true。3) 重写Teacher类的toString方法,通过该方法可以返回“编号为*、姓名为*、年龄为*的*学院老师”形式的字符串。4) 由多个Teacher对象所形成的数组可以以两种方法排序(编号由低到高排序):1)使用Arrays.sort(Object a)方法;2)使用Arrays.sort(Object a, Comparator c)方法。5) 再定义一个类TeacherManagement(属于cn.sd包),提供方法search,方法可以在一组给定的教师中,根据姓名(或年龄)返回等于指定姓名(或年龄)的教师的字符串信息,信息格式为:“编号为*、姓名为*、年龄为*的*学院老师”。如果没有满足条件的教师,则返回“没有符合条件的教师”。6) 构造main方法进行测试。*package .sdkd;public class Teacher implements Comparableprivate int no;private String name;private int age;private String seminary; public Teacher(int no,String name,int age,String seminary) this.no=no; =name; this.age=age; this.seminary=seminary; public void setNo(int no) this.no=no; public int getNo() return no; public void setName(String name) =name; public String getName() return name; public void setAge(int age) this.age=age; public int getAge() return age; public void setSeminary(String seminary) this.seminary=seminary; public String getSeminary() return seminary; public boolean equals(Object o) boolean result=false; Teacher t = (Teacher)o; if(this.no=t.no) return true; return result; public String toString() return 编号为+getNo()+,姓名为+getName()+,年龄为+getAge()+的+getSeminary()+学院老师; /compareTo接口 public int compareTo(Object o) Teacher otherTea = (Teacher)o; if(nootherTea.no) return 1; return 0; package .sdkd;import java.util.Arrays;import cn.sd.*;public class main public static void main(String args) Teacher t1 = new Teacher(0001,白玉,28,信息); Teacher t2 = new Teacher(0002,李兰馨,36,地科); Teacher t3 = new Teacher(0003,张成宇,40,材料); Teacher TeaArray = new Teacher3; TeaArray0 = new Teacher(1001,白玉,28,信息); TeaArray1 = new Teacher(1005,李兰馨,42,地科); TeaArray2 = new Teacher(1003,张成宇,40,材料); System.out.println(t1.toString(); System.out.println(t2.toString(); System.out.println(t3.toString(); System.out.print(n); t1.setNo(t2.getNo(); System.out.println(*临时修改教师t3的信息*); System.out.println(教师t1与教师t2是否相同?); System.out.println(t1.equals(t2); System.out.println(教师1与教师t3是否相同?); System.out.println(t1.equals(t3); System.out.print(n); System.out.println(按编号升序排列:); Arrays.sort(TeaArray); for(int i=0;iTeaArray.length;i+) System.out.print(编号为+TeaArrayi.getNo()+、姓名为+TeaArrayi.getName()+、年龄为+TeaArrayi.getAge()+的+TeaArrayi.getSeminary()+学院老师); System.out.println(); System.out.println(); System.out.println(年龄为28的教师的信息:); System.out.println(TeacherManagement.search(28,TeaArray); 4. 一个公司有三种不同类型的员工,他们的薪水分别按年(计算方法:年薪*工作年数)、按月(计算方法:月薪*工作月数)、按周(计算方法:周薪*工作周数)结算。编写类Company,提供计算所有员工总薪水的方法getEarnings,该方法能够根据输入的一组员工(包含各类员工)返回这组员工的总薪水。package pay;public class pay public int wages; public int day; public pay(int wages,int day) this.wages = wages; this.day = day; public pay() public int show() return wages*day; class pay_a extends pay public pay_a(int a,int b)wages = a;day = b; public pay_a() public int show() return (int)(double)day/365)*wages); class pay_b extends pay public pay_b(int a,int b) wages = a; day = b; public pay_b() public int show() return (int)(double)day/30)*wages); class pay_c extends paypublic pay_c(int a,int b) wages = a; day = b; public pay_c() public int show() return (int)(wages*day);*package pay;import pay.pay;import pay.pay_a;import pay.pay_b;import pay.pay_c;public class teat24 public static int getEarings(payp,int length)int sum=0;for(int i=0;ilength;i+)sum+=pi.show();return sum;public static void main(String args)pay pp = new pay5;pp0 = (new pay_a(8, 2000);pp0 = (pay_a)pp0; pp1 = new pay_b(2, 500);pp1 = (pay_b)pp1; pp2 = new pay_c(10, 15000);pp2 = (pay_c)pp2; pp3 = new pay_a(12, 5000);pp3 = (pay_a)pp3; pp4 = new pay_c(5, 1100);pp4 = (pay_c)pp4; int sum = getEarings(pp, 5);for(int i=0;i4;i+)System.out.println(第+i+个员工的薪水为:+ppi.show();System.out.println(员工的总薪水为:+sum);5. 编码实现一个类:(1)提供一个静态方法,可以将输入的一个int数组按照从小到大的顺序排列;(2)提供静态方法,对排好序的数组使用折半查找(使用递归和非递归两种形式分别实现)查找某一个整数。package shiyaner5;import java.util.Scanner;public class myArray public static void sort(int a,int n) int temp; for(int i=0;in;i+) for(int j=0;jai) temp = aj; aj = ai; ai = temp; public static int BinarySearch(int array,int x,int n) int left = 0; int right = n-1; while(leftarraymiddle) left = middle+1; else right = middle-1; System.out.println(未找到!); return -1; public static void main(String args) int s = new int6,8,2,9,4,11,1,7,12,10; int n; Scanner scan = new Scanner(System.in); for(int i=0;i10;i+) System.out.print(si+ ); /排序 sort(s,10); System.out.println(); System.out.println(-); for(int i=0;i-1) e = arraytop; arraytop = null; top-; return e; public Object getTop() Object e = null; if(top-1) e = arraytop; return e; *package shiyaner6;import java.util.Scanner;public class main public static void main(String args) Stack stack = new Stack(32); Scanner scan = new Scanner(System.in); System.out.print(请输入一个正整数:); int n = scan.nextInt(); /测试Stack类 stack.push(n); System.out.println(输出: + stack.getTop(); System.out.println(stack.isEmpty(); stack.pop(); System.out.println(stack.isEmpty(); /求一个正整数对应的二进制数 while(n0) stack.push(n%2); n=n/2; System.out.println(-); while(!stack.isEmpty() System.out.print(stack.pop(); scan.close(); 7. 按照要求使用Java编码。1) 以类型int声明一个叫matrix的二维数组变量,将矩阵初始化为一个5个元素的数组。2) 以下列方式为matrix的内部元素赋值:matrix从零开始循环到其长度值;例如索引为i,在每次迭代中,将matrixi指向一个新的整数数组,其长度为i。然后用索引变量j,对数组中的每一个元素进行循环。在每次内部循环中,将matrixij赋值为(i*j)。3) 通过循环打印matrix中的所有元素,结果为:package shiyaner7;public class Matrix private int matrix; Matrix() matrix = new int5; matrix0 = new int0; matrix1 = new int1; matrix2 = new int2; matrix3 = new int3; matrix4 = new int4; for(int i=0;i5;i+) for(int j=0;ji;j+) matrixij = i*j; public void print() for(int i=0;i5;i+) System.out.print(); for(int j=0;j); *package shiyaner7;public class main public static void main(String args) Matrix matrix = new Matrix(); matrix.print(); 8.利用二维数组(double)实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为value;(2)get(int row,int col):取第row行第col列的元素;(3)width():返回矩阵的列数;(4)height():返回矩阵的行数;(5)Matrix add(Matrix b):返回当前矩阵与矩阵b相加后的矩阵;(6)Matrix multiply(Matrix b):返回当前矩阵与矩阵b相乘后的矩阵。(7)Matrix transpose():返回当前矩阵的转置矩阵;(8)print():以行和列的形式打印出当前矩阵。package shiyaner8;public class Matrix double array; private int height;/行数 private int width;/列数 Matrix(int height,int width) this.height = height; this.width = width; array = new doubleheightwidth; public void set(int row,int vol,double value) arrayrowvol = value; public double get(int row,int vol) return arrayrowvol; public int height() return height; public int width() return width; public Matrix add(Matrix b) if(b.height()=height & b.width()=width) for(int i=0;iheight;i+) for(int j=0;jwidth;j+) arrayij = arrayij + b.get(i, j); return this; public Matrix multiply(Matrix b) Matrix c = new Matrix(b.width,this.height); if(this.height = b.width) int temp = 0; for(int i=0;ithis.height;i+) for(int j=0;jb.width;j+) for(int k=0;kthis.width;k+) temp += this.get(i, k)*b.get(k, j); c.set(i, j, temp); temp = 0; return c; public void print() for(int i=0;ithis.height;i+) for(int j=0;jthis.width;j+) System.out.print(this.get(i, j) + t); System.out.println(); public void Matrixtranspose()double b=new doubleheightwidth; for(int i=0;iwidth;i+) for (int j=0;jheight;j+) bji=arrayij; System.out.print(bji+t); if(i%(width-1)=0&i!=0) System.out.println(); *package shiyaner8;public class main public static void main(String args) Matrix ma = new Matrix(3,3); Matrix mb = new Matrix(3,3); Matrix mc = new Matrix(2,4); Matrix md = new Matrix(4,2); for(int i=0;i3;i+) for(int j=0;j3;j+) ma.set(i,j,1.0); for(int i=0;i3;i+) for(int j=0;j3;j+) mb.set(i,j,2.0); for(int i=0;i2;i+) for(int j=0;j4;j+) mc.set(i, j,(i+1)*(j+1); for(int i=0;i4;i+) for(int j=0;j2;j+) md.set(i, j, i+j+1); System.out.println(矩阵A:); ma.print(); System.out.println(矩阵A的行数:+ma.height(); System.out.println(矩阵A的列数:+ma.width(); System.out.println(矩阵A的转置矩阵:); ma.Matrixtranspose(); System.out.println(-); System.out.println(矩阵B:); mb.print(); System.out.println(矩阵B的行数:+mb.height(); System.out.println(矩阵B的列数:+mb.width(); /测试矩阵的加法函数 System.out.println(-); System.out.println(矩阵A、B相加:); ma.add(mb); ma.print(); System.out.println(-); System.out.println(矩阵C:); mc.print(); System.out.println(矩阵C的转置矩阵:); mc.Matrixtranspose(); System.out.println(-); System.out.println(矩阵D:); md.print(); /矩阵乘法 System.out.println(-); System.out.println(矩阵C、D相乘:); mc.multiply(md).print(); 9 9. 利用随机函数产生100个整数给一维数组赋值,然后输入任意一个整数,查找该整数是否在数组中存在,并统计出现次数。package shiyaner9;import java.util.Scanner;import java.math.*;public class random public static void main(Strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实训室教育培训
- 印刷企业岗前培训
- 社区保密文件培训
- 离婚无房财产分割及子女抚养权及赡养费支付协议书
- 保密协议模板定制与保密制度建立合同
- 病案信息学考试题及答案
- 婚纱拍摄场地加盟使用协议合同5篇
- 2025烧伤护理知识试题及答案
- (2025年)外科手术部位医院感染知识培训试题(答案)
- 2025高考美术试卷试题及答案
- 国开《建设监理》形成性作业1-4答案
- 智能采矿导论PPT完整全套教学课件
- 腹壁整形课件
- 过盈配合压装力计算
- ECMO IABP完整版可编辑
- 华为项目管理10大模板Excel版可直接套用-非常实用
- 部编版五年级上册语文教案1-6单元(表格式)
- HPLC高效液相色谱解读课件
- 移动通信5G关键技术分析课件
- 理想与前途教育主题班会
- 无人机操作与使用教案
评论
0/150
提交评论