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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(Java语言程序设计A实验3接口说课讲解.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java语言程序设计A实验3接口说课讲解.docx

1、Java语言程序设计A实验3接口说课讲解Java语言程序设计A实验3:接口实验课程名称:Java语言程序设计A实验项目名称实验3:接口实验成绩实 验 者专业班级组 别同 组 者无开始日期第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)一实验目的及意义1自定义接口。2自定义类实现接口。3接口及实现类的多态处理。二实验基本原理与方法1接口的概念。2接口对多态的支持。三主要仪器设备及耗材1PC及其兼容机。2计算机操作系统。3程序编辑器EditPlus/Eclipse。4Java开发工具JDK。四实验内容及要求自定义形状接口Sh

2、ape,该接口声明了计算面积、周长的方法。然后,分别编写三角形类Triangle、六边形类Hexagon、椭圆形类Ellipse,它们都实现了Shape接口。最后,编写测试类ShapesDemo,多态地创建各种形状对象,计算面积、周长。五实验方案及技术路线(含各种形状面积、周长的计算公式,UML类图,注意事项) 因为每种形状的面积、周长计算所需要的参数个数不同,并且不同类型的三角形计算周长的面积的方法也不同,所以抽象类的参数就定为可变长度集合ArrayList,一般三角形的面积S=a*h/2,周长L=a+b+c;直角三角形面积S=a*b,周长L=a+b+,等边三角形的面积S=,周长L=3*a;

3、六边形的面积S=,周长L=6*a。以下是简略的UML类图:1)接口Shape2)三角形类Triangle3)六边形类4)椭圆形类第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程) Shape接口:import java.util.List;public interface Shape public double culArea(List list); public double culGirth(List list); 六边形类Hexagon:import java.util.*;public class Hexagon implements Shape priva

4、te double a; List listData=new ArrayList(); public Hexagon(double a) this.a = a; listData.add(a); Override public double culArea(List list) double s=0; s=Math.sqrt(3)*3*Math.pow(list.get(0), 2)/2; return s; Override public double culGirth(List list) double l=0; l=list.get(0)*6; return l; public List

5、 getListData() return listData; 三角形类Triangle:import java.util.*;public class Triangle implements Shape private double a; private double b; private double c; private double h; List listData=new ArrayList(); public Triangle(double a) this.a = a; listData.add(1.0); listData.add(a); public Triangle(doub

6、le a, double b) this.a = a; this.b = b; listData.add(2.0); listData.add(a); listData.add(b); public Triangle(double a, double b, double c, double h) super(); this.a = a; this.b = b; this.c = c; this.h = h; listData.add(3.0); listData.add(a); listData.add(b); listData.add(c); listData.add(h); public

7、List getListData() return listData; public void setListData(List listData) this.listData = listData; Override public double culArea(List list) double s=0; if(list.get(0)=1.0) s=Math.sqrt(3)*Math.pow(list.get(1), 2)/4; if(list.get(0)=2.0) s=list.get(1)*list.get(2)/2; if(list.get(0)=3.0) s=list.get(1)

8、*list.get(4)/2; return s; Override public double culGirth(List list) double l=0; if(list.get(0)=1.0) l=3*list.get(1); if(list.get(0)=2.0) l=list.get(1)+list.get(2)+Math.sqrt(Math.pow(list.get(1), 2)+Math.pow(list.get(2), 2); if(list.get(0)=3.0) l=list.get(1)+list.get(2)+list.get(3); return l; 测试类Sha

9、pesDemo:public class ShapesDemo public static void main(String args) menuStrip(); public static void menuStrip() Scanner sc = new Scanner(System.in); String choice = null; do System.out.println(选择需要计算面积和周长的图形形状。); System.out.println(1.三角形); System.out.println(2.正六边形); System.out.println(3.椭圆形); Syst

10、em.out.println(4.退出); System.out.println(请输入选项【1-4】); choice = sc.next(); switch (choice) case 1: option1();break; case 2:option2();break; case 3:option3();break; case 4:System.exit(0); default:System.err.println(输入错误!); menuStrip(); while (!(choice.equals(4); private static void option1() Scanner s

11、c1=new Scanner(System.in); String tempChoice=null; System.out.println(请选择需要三角形的类型。); System.out.println(1.等边三角形); System.out.println(2.直角形); System.out.println(3.普通); System.out.println(请输入选项【1-3】(返回上一级请输入0); tempChoice=sc1.next(); if(tempChoice.equals(1) try for(;) System.out.print(请输入等边三角形的边长:); d

12、ouble aIn=sc1.nextDouble(); if(aIn0) Triangle triangle1=new Triangle(aIn); double area=triangle1.culArea(triangle1.getListData(); double girth=triangle1.culGirth(triangle1.getListData(); System.out.println(此三角形的面积为:+area+n此三角形的周长为:+girth); break; else System.err.println(输入错误,请输入大于0的数值!); catch (Exce

13、ption e) System.err.println(输入错误,请重新输入!); option1(); else if(tempChoice.equals(2) try for(;) System.out.print(请输入一条直角边长:); double aIn=sc1.nextDouble(); System.out.print(请输入另一条直角边长:); double bIn=sc1.nextDouble(); if(aIn0&bIn0) Triangle triangle1=new Triangle(aIn,bIn); double area=triangle1.culArea(tr

14、iangle1.getListData(); double girth=triangle1.culGirth(triangle1.getListData(); System.out.println(此三角形的面积为:+area+n此三角形的周长为:+girth); break; else System.err.println(输入错误,请输入大于0的数值!); catch (Exception e) System.err.println(输入错误,请重新输入!);option1(); else if(tempChoice.equals(3) try for(;) System.out.prin

15、t(请输入三角形底边长:); double aIn=sc1.nextDouble(); System.out.print(请输入高:); double hIn=sc1.nextDouble(); System.out.print(请输入三角形一条侧边边长:); double bIn=sc1.nextDouble(); System.out.print(请输入三角形另一条侧边边长:); double cIn=sc1.nextDouble(); if(aIn0&bIn0&cIn0&hIn0) if(aIn+bIn)cIn&(aIn+cIn)bIn&(bIn+cIn)aIn) Triangle tr

16、iangle1=new Triangle(aIn,bIn,cIn,hIn); double area=triangle1.culArea(triangle1.getListData(); double girth=triangle1.culGirth(triangle1.getListData(); System.out.println(此三角形的面积为:+area+n此三角形的周长为:+girth); break; else System.err.println(输入错误!不能构成三角形!请重新输入数.); else System.err.println(输入错误,请输入大于0的数值!);

17、catch (Exception e) System.err.println(输入错误,请重新输入!); option1(); else if(tempChoice.equals(0) menuStrip(); else System.err.println(输入错误!); String c=reChoice(); if(c.equals(1) option1(); else /返回主菜单 private static void option2() Scanner sc2=new Scanner(System.in); String c=reChoice(); if(c.equals(1) t

18、ry for(;) System.out.print(请输入正六边形的边长:); double aIn=sc2.nextDouble(); if(aIn0) Hexagon hexagon=new Hexagon(aIn); double area=hexagon.culArea(hexagon.getListData(); double girth=hexagon.culGirth(hexagon.getListData(); System.out.println(此正六边形的面积为:+area+n此正六边形的周长为:+girth); break; else System.err.print

19、ln(输入错误,请输入大于0的数值!); catch (Exception e) System.err.println(输入错误,请重新输入!); option2(); else /返回主菜单 menuStrip(); private static void option3() Scanner sc3=new Scanner(System.in); String c=reChoice(); if(c.equals(1) try for(;) System.out.print(请输入椭圆长半轴长:); double aIn=sc3.nextDouble(); System.out.print(请

20、输入椭圆短半轴长:); double bIn=sc3.nextDouble(); if(aIn0&bIn0) if(aInbIn)Ellipse ellipse=new Ellipse(aIn,bIn); double area=ellipse.culArea(ellipse.getListData(); double girth=ellipse.culGirth(ellipse.getListData(); System.out.println(此椭圆形的面积为:+area+n此椭圆的周长为:+girth); break; else System.err.println(输入错误,长半轴长度

21、小于短半轴,请重新您输入!); else System.err.println(输入错误,请输入大于0的数值!); catch (Exception e) System.err.println(输入错误,请重新输入!); option3(); else/返回主菜单 menuStrip(); private static String reChoice() Scanner sc4=new Scanner(System.in); String tempSelect; for (;) System.out.println(是否要继续计算?n + 1继续计算. 2返回主菜单.n + 请输入选择【1-2

22、】:); tempSelect = sc4.next();if(tempSelect.equals(1)|tempSelect.equals(2) break;elseSystem.err.println(错误选项!请重新选择!); /继续循环 return tempSelect; 运行结果如下:三角形的计算计算六边形:计算椭圆形:教师签字_第三部分 结果与讨论(可加页)1、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等) 本例中的测试类与之前做的银行账号中的测试类运用的思想相同。实验中因为考虑各种形状计算面积和周长参数个数不同的问题,所以想的比较复杂,其实可以忽略这个问题,在接口Shape的方法中不定义参数,在三角形类,椭圆形类以及六边形类中可以直接使用类中的实例变量进行计算,这样在实现计算的同时也可减小代码的复杂度。因为三角形有多种计算方式,所以程序中对于不同的三角形,在创建实例的时候使用了不同的构造函数。二、小结、建议及体会 虽然只是一个简单的程序设计题,但在做的过程中要尽量考虑现实中的情况,考虑多种输入可能,考虑各种可能存在的找错(比如输入的不是数值、或输入的数值小于0、或输入的三条边不能构成三角形等等)。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1