版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验课程名称:Java语言程序设计A实验项目名称实验3:接口实验成绩实验者专业班级组另U同组者无开始日期第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗 材,实验内容及要求,实验方案与技术路线等)一 实验目的及意义1自定义接口。2自定义类实现接口。3接口及实现类的多态处理。二实验基本原理与方法1接口的概念。2接口对多态的支持。三主要仪器设备及耗材1.PC及其兼容机。2计算机操作系统。3程序编辑器 EditPlus/Eclipse。4.Java开发工具 JDK。四实验内容及要求自定义形状接口Shape该接口声明了计算面积、周长的方法。然后,分别编写三角形类Tria
2、ngle、六边形类 Hexagon、椭圆形类 Ellipse,它们都实现了 Shape接口。最后,编写测试类 ShapesDemo多态地创建各种形状对象,计算面积、周长。五实验方案及技术路线(含各种形状面积、周长的计算公式,UML类图,注意事项)因为每种形状的面积、周长计算所需要的参数个数不同,并且不同类型的三角形计算周长的面积的方法也不同,所以抽象类的参数就定为可变长度集合ArrayList,一般三角形的面积S=a*h/2,周长L=a+b+c;直角三角形面积 S=a*b,周长L=a+b+2 b 2,等边三角形的面积S= 3* a2/4,周长L=3*a;六边形的面积 S=3 3*a2/2,周长
3、L=6*a。以下就是简略的 UML类图:1)接口 ShapeO Shapeo culArea(Li£t<Double)c b s c A 匚ulGirth(Li5t«Doubles) : double2)三角形类Triangle污 Trianglea : double 住 b : double jjj c : double 睜 h : double listData9 C Triangle(doiible) e r Triangldoiible, doubly c Triangle(doiible, double, double, double getListData
4、O ; Ust Doublo0 setL stData(LiEt4 Dou b1«>); void , a culArea(List<Doubledoub ? 曲 culGirthfList<Double*) : double3)六边形类轲 Heagori昶 a ; doubleA listData : List<Double>» c HexagonCdojble)令4 cu 1 Area(Lfst«Dquble>) : double a culGirthCLkteDoubles- : doub e getListDataO :
5、 List<Double-4)椭圆形类& Ellipseyj a : double (ci b ; doublelistData ; Li5rt«Double)匚 E llipsefdouble, double)a culAr«(List<>cMjble>: doubleOd culGirth(List< Double : doubk getListDataO ; List*Doubk>第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)Shape接口 :import java 、util 、List;p
6、ublic in teface Shapepublic double culArea(List<Double> list ); public double culGirth(List<Double>list );六边形类Hexagon:import java 、util 、*;public class Hexag on impleme nts Shapeprivate double a;List<Double> listData=new ArrayList<Double>();public Hexag on( double a)this 、a =
7、 a; listData 、add(a);Overridepublic double culArea(List<Double> list) double s=0;s=Math、sqrt(3)*3*Math 、pow(list 、get(0), 2)/2; return s;Overridepublic double culGirth(List<Double> list) double l=0;l=list 、get(0)*6;return l;public List<Double> getListData() return listData;三角形类Tria
8、ngle:import java 、util 、*;public class Triangleimplements Shape privatedoublea;privatedoubleb;privatedoublec;privatedoubleh;List<Double>listData =new ArrayList<Double>();publicTrian gle(double a)this 、a = a;listData 、add(1、0); listData 、add( a);public Triangle( double a, double this 、a =
9、 a;this、b = b;listData 、add(2、0);listData、add( a);listData、add( b);public Triangle( double a, double 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 List<Double> getListData()return listDa
10、ta ;public void setListData(List<Double>this、listData = listData ;Overridepublic double culArea(List<Double> double s=0;if(list、get(0)=1、0)s=Math、sqrt (3)*Math 、pow( list if(list、get(0)=2、0)s=list 、get(1)* list 、get(2)/2; if(list、get(0)=3、0)s=list 、get(1)* list 、get/2; returns;Overridepu
11、blic double culGirth(List<Double> double l =0;if (list 、get(0)=1、0)l =3* list 、get(1); if (list 、get(0)=2 、0)b) b, double c, doublelistData )list )、get(1), 2)/4;list ) h)2)+Math、 if l =list 、get(1)+ list 、get(2)+Math 、sqrt (Math、pow( list 、get(1), pow( list 、get(2), 2);(list=listreturn、get(0)=
12、3 、0)、get(1)+ list 、get(2)+list 、get(3);ShapesDemo:ShapesDemo public static menuStrip ();public staticScanner sc =public测试类classvoid main(Stringvoid menu Strip()args )igchoice =null ;System、out、println("选择需要计算面积与周长的图形形状System、out、println("1、三角形");System、out、println("2、正六边形")
13、;System、out、println("3、椭圆形");System、out、println("4、退出");System、out、println("请输入选项【1-4 ");new Sea nn er(System、in );do 。");choice = switch ( case 1 case 1 case 1 case 1 default menu Strip"1"2"3"4IIIIIIsc、n ext();choice ) :optio n1 ();:option2 ();
14、:option3 ();break ; break ; break ;:System、exit (0);:System、err、println("输入错误!");();II while (!(private staticchoice、equals( "4" ); void option 1()Scanner sc1 = new Scanner(System 、in);StringtempChoice =null ;System、out、println(System、out、println(System、out、 println("请选择需要三角
15、形的类型。");"1、等边三角形"); "2、直角形");System、out、println( "3、普通");System、out、println("请输入选项【1-3】(返回上一级请输入'0')"); tempChoice =sc1、next();if (tempChoice、equals( "1") try for (;)System、out、print("请输入等边三角形的边长:");double aln =sc1、nextDouble()
16、;if (aln >0)Tria ngletria ngle1 =new Trian gle( aln);double area =triangle1 、culArea( triangle1 、 getListData();double girth =triangle1、 culGirth(triangle1、getListData();System、out、println( "此三角形的面积为:"+area +"n 此三角形的周长为:"+girth );break ;elseSystem、err、println("输入错误,请输入大于0
17、的数值!"); catch (Exception e)System、err、println("输入错误,请重新输入!"); opti on1 ();else if (tempChoice、equals( "2" )try for (;)System、out、print("请输入一条直角边长:");double aln =sc1、nextDouble();System、out、print("请输入另一条直角边长:");double bln =sc1、nextDouble();if ( aln >0&a
18、mp;&bln >0)Triangletriangle1=new Triangle(aln , bln );double area =triangle1、culArea( triangle1、getListData();double girth =triangle1、culGirth( triangle1getListData();System、out、println( "此三角形的面积 为:"+area +"n此三角形的周长为:"+girth );break ;elseSystem、err、println("输入错误,请输入大于
19、0的数 值!"); catch (Exception e)System、err、prin tl n("输入错误,请重新输入!");option1 ();else if (tempChoice、equals( "3")try for (;)System、out、print("请输入三角形底边长:");double aln =sc1、nextDouble();System、out、print("请输入高:");double hln =sc1、nextDouble();System、out、print(&quo
20、t;请输入三角形一条侧边边 长:");double bln =sc1、nextDouble();System、out、print("请输入三角形另一条侧边边 长:");double cln =sc1、nextDouble();if (aIn >0&&bln >0&&cIn >0&&hIn >0)if ( aln +bln )> cln &&(aln +cln )> bln &&(bln +cln )> aln )Tria ngletria ng
21、le1=newTriangle( aln , bln , cln , hln );double area =tria ngle1、culArea( triangle1、getListData();double girth =tria ngle1 、 culGirth(triangle1、getListData();System、out、println("此三角形的面积为:"+area +"n此三角形的周长为:"+girth );break ;elseSystem、err、println("输入错误!不能构成 三角形!请重新输入数、")
22、;elseSystem、err、println("输入错误,请输入大于0 的数值!"); catch (Exception e)System、err、println("输入错误,请重新输入! ”); optio n1 ();else if (tempChoice、equals( "0")menuStrip ();elseSystem、err、println( "输入错误!");Stringc=reChoice ();if (c、equals( "1")optio n1 ();else/返回主菜单priva
23、te static void option2()Scanner sc2 = new Scanner(System 、in);Stringc=reChoice ();if (c、equals( "1" )try for (;)System、out、print("请输入正六边形的边长:");double aln =sc2、nextDouble();if (aln >0)Hexagon hexagon =new Hexagon( aln );double area =hexagon、culArea( hexagon、 getListData();doub
24、le girth =hexagon、culGirth(hexagon、getListData();System、out、println("此正六边形的面积为:"+area +"n 此正六边形的周长为:"+girth );break ;elseSystem、err、println("输入错误,请输入大于0的数值!"); catch (Exception e)System、err、println("输入错误,请重新输入!");option2 ();else/返回主菜单menu Strip (); private sta
25、tic void option3() Scanner sc3= new Scanner(System、in);Stringc=reChoice ();if (c、equals( "1")try for (;)System、out、print("请输入椭圆长半轴长:");double aln =sc3、nextDouble();System、out、print("请输入椭圆短半轴长:");double bln =sc3、nextDouble();if (aln >0&&bIn >0)if (aIn >b
26、In )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 ;elseSystem、err、println("输入错误,长半轴长度小于短 半轴,请重新您输入!&quo
27、t;); elseSystem、err、println("输入错误,请输入大于0的数 值!"); catch (Exceptione)System、err、println("输入错误,请重新输入!");option3 ();else /返回主菜单menuStrip ();private staticStri ng reChoice()Scanner sc4=new Scanner(System 、in);StringtempSelect ;for (;) System、out、println("就是否要继续计算? n" + "
28、;1继续计算、 2返回主菜单、n"II1-2 tempSelect = sc4、next();if (tempSelect 、equals( "1" )| tempSelect 、equals( "2") break ;else System、err、println("错误选项!请重新选择!");/继续循环return tempSelect ;运行结果如下:三角形的计算_ Problemi 橋 Javadcc 1;十,Declaration D Console 厨Shapes De mo 卩 ava Application匚
29、:Program Fi lesJ a vaj d kl. 7.0_7 9b inja va w. exe (20156 月自日 下午 9:12:43) 选择需要H算面积和周长的图形形状三角形2.正六边形4椭圆形4 退岀请输入选项1-411请选择需要三角形的类型。等边三角形2 直角形弓普通请输入选项1-3J (返回上一级请输入 V)1请输入等边三角形的边长 5此三角形的面和知 16.此三角形的周长为:15.02 Problems Javadoc 鹰 Declaration Con sole 為 |ShapesDemo Java Application C:Program FilesJavajdk
30、l.7.O_79bin'javaw.exe (20156月6日下午9:12:43) 选择需要计算面积和周长的图形形状。1 三角形2 正六边形3 椭圆形4 退岀请输入选项1-41请选择需要三角形的类型。1 等边三角形2 直角形3 昔通请输入选项【13】(返回上一级请输入)2请输入一条直角边长:4 请输入另一条直角边长:5 此三角形的面和为:10.0此三角形的周长为:_ Problems Javadoc 傢 Declaration 旦 Console 却ShapesDemo (Java Application C:Program FilesJavajdkl.7.0_79binjavaw.exe (2015年6月6日下午9:22:17) 请选择需要三角形的类型。1 等边三角形2 直角形3 昔通请输入选项【13】(返回上一级请输入*0')3请输入三角形底边长:55请输入高:34请输入三角形一条侧边边长:5请输入三角形另一条侧边边长:9请输入三角形底边长;输入错误!不能构成三角形!请重新输入数7请输入高:13请输入三角形一条侧边边长:15请输入三角形另一条侧边边长:9此三角形的面积为:45.5此三角形的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地下空隙利用优化-洞察与解读
- 2025年房地产评估师职业资格考试试卷及答案
- 老年群体健康权益保证承诺书9篇
- 绩效管理与KPI目标制定指南
- 丝路经济圈融合发展策略-洞察与解读
- 2025年人才梯队建设培训试卷及答案详解
- 初中鲁滨逊漂流记给我的启示5篇范文
- 跨云资源优化-洞察与解读
- 2025年江苏事业单位招聘考试综合类专业能力测试试卷(文秘类)真题
- 2025年数据合规管理能力提升模拟试卷
- 水利工程施工阶段减碳措施与碳排放管理研究
- 房产中介劳动合同参考模板
- 《儿童权利公约》课件
- 2025年移动式压力容器R2作业证理论全国考试题库(含答案)
- 2024年度汽车制造厂与经销商合作协议3篇
- 《青花》课件教学课件
- 2024年中级经济师《金融专业知识与实务》真题及答案
- 鲁班奖临建方案
- 《文字化妆轻松行》参考课件
- 03D201-4 10kV及以下变压器室布置及变配电所常用设备构件安装
- 安全培训学员登记表
评论
0/150
提交评论