Java语言程序设计A实验3接口Word文档下载推荐.docx
- 文档编号:20599214
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:17
- 大小:151.73KB
Java语言程序设计A实验3接口Word文档下载推荐.docx
《Java语言程序设计A实验3接口Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计A实验3接口Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
直角三角形面积S=a*b,周长L=a+b+
等边三角形的面积S=
周长L=3*a;
六边形的面积S=
周长L=6*a。
以下就是简略的UML类图:
1)接口Shape
2)三角形类Triangle
3)六边形类
4)椭圆形类
第二部分:
实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)
⏹Shape接口:
importjava、util、List;
publicinterfaceShape
{
publicdoubleculArea(List<
Double>
list);
publicdoubleculGirth(List<
}
⏹六边形类Hexagon:
importjava、util、*;
publicclassHexagonimplementsShape
privatedoublea;
List<
listData=newArrayList<
();
publicHexagon(doublea)
{
this、a=a;
listData、add(a);
}
@Override
list){
doubles=0;
s=Math、sqrt(3)*3*Math、pow(list、get(0),2)/2;
returns;
doublel=0;
l=list、get(0)*6;
returnl;
publicList<
getListData(){
returnlistData;
⏹三角形类Triangle:
publicclassTriangleimplementsShape{
privatedoubleb;
privatedoublec;
privatedoubleh;
publicTriangle(doublea)
listData、add(1、0);
publicTriangle(doublea,doubleb){
this、b=b;
listData、add(2、0);
listData、add(b);
publicTriangle(doublea,doubleb,doublec,doubleh)
super();
this、c=c;
this、h=h;
listData、add(3、0);
listData、add(c);
listData、add(h);
getListData()
{returnlistData;
publicvoidsetListData(List<
listData)
{
this、listData=listData;
list)
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)*list、get(4)/2;
{l=3*list、get
(1);
l=list、get
(1)+list、get
(2)+Math、sqrt(Math、pow(list、get
(1),2)+Math、pow(list、get
(2),2));
}
l=list、get
(1)+list、get
(2)+list、get(3);
⏹测试类ShapesDemo:
publicclassShapesDemo{
publicstaticvoidmain(String[]args)
menuStrip();
publicstaticvoidmenuStrip()
{
Scannersc=newScanner(System、in);
Stringchoice=null;
do{
System、out、println("
选择需要计算面积与周长的图形形状。
"
);
1、三角形"
2、正六边形"
3、椭圆形"
4、退出"
请输入选项【1-4】"
choice=sc、next();
switch(choice){
case"
1"
:
option1();
break;
2"
option2();
3"
option3();
4"
System、exit(0);
default:
System、err、println("
输入错误!
menuStrip();
}while(!
(choice、equals("
)));
privatestaticvoidoption1()
Scannersc1=newScanner(System、in);
StringtempChoice=null;
System、out、println("
请选择需要三角形的类型。
1、等边三角形"
2、直角形"
3、普通"
请输入选项【1-3】
(返回上一级请输入'
0'
)"
tempChoice=sc1、next();
if(tempChoice、equals("
))
try{
for(;
;
)
{System、out、print("
请输入等边三角形的边长:
doubleaIn=sc1、nextDouble();
if(aIn>
0)
{Triangletriangle1=newTriangle(aIn);
doublearea=triangle1、culArea(triangle1、getListData());
doublegirth=triangle1、culGirth(triangle1、getListData());
System、out、println("
此三角形的面积为:
+area+"
\n此三角形的周长为:
+girth);
break;
}
else
{System、err、println("
输入错误,请输入大于0的数值!
}catch(Exceptione)
{System、err、println("
输入错误,请重新输入!
option1();
elseif(tempChoice、equals("
)){
try{
for(;
{System、out、print("
请输入一条直角边长:
doubleaIn=sc1、nextDouble();
System、out、print("
请输入另一条直角边长:
doublebIn=sc1、nextDouble();
if(aIn>
0&
&
bIn>
{Triangletriangle1=newTriangle(aIn,bIn);
doublearea=triangle1、culArea(triangle1、getListData());
doublegirth=triangle1、culGirth(triangle1、getListData());
System、out、println("
break;
else
{System、err、println("
}
}catch(Exceptione)
{System、err、println("
option1();
elseif(tempChoice、equals("
{
try{
for(;
{
System、out、print("
请输入三角形底边长:
doubleaIn=sc1、nextDouble();
请输入高:
doublehIn=sc1、nextDouble();
请输入三角形一条侧边边长:
doublebIn=sc1、nextDouble();
请输入三角形另一条侧边边长:
doublecIn=sc1、nextDouble();
if(aIn>
cIn>
hIn>
{if((aIn+bIn)>
cIn&
(aIn+cIn)>
bIn&
(bIn+cIn)>
aIn)
{Triangletriangle1=newTriangle(aIn,bIn,cIn,hIn);
doublearea=triangle1、culArea(triangle1、getListData());
doublegirth=triangle1、culGirth(triangle1、getListData());
System、out、println("
break;
else
{System、err、println("
输入错误!
不能构成三角形!
请重新输入数、"
}}
else
{System、err、println("
}}
}catch(Exceptione)
{
System、err、println("
option1();
}}
0"
{menuStrip();
System、err、println("
Stringc=reChoice();
if(c、equals("
{option1();
{//返回主菜单
privatestaticvoidoption2()
{Scannersc2=newScanner(System、in);
Stringc=reChoice();
if(c、equals("
try{
System、out、print("
请输入正六边形的边长:
doubleaIn=sc2、nextDouble();
Hexagonhexagon=newHexagon(aIn);
doublearea=hexagon、culArea(hexagon、getListData());
doublegirth=hexagon、culGirth(hexagon、getListData());
此正六边形的面积为:
\n此正六边形的周长为:
}catch(Exceptione)
option2();
}}
else
{//返回主菜单
menuStrip();
}}
privatestaticvoidoption3()
Scannersc3=newScanner(System、in);
){
请输入椭圆长半轴长:
doubleaIn=sc3、nextDouble();
请输入椭圆短半轴长:
doublebIn=sc3、nextDouble();
{if(aIn>
bIn){Ellipseellipse=newEllipse(aIn,bIn);
doublearea=ellipse、culArea(ellipse、getListData());
doublegirth=ellipse、culGirth(ellipse、getListData());
此椭圆形的面积为:
\n此椭圆的周长为:
输入错误,长半轴长度小于短半轴,请重新您输入!
}}
}}
option3();
else{//返回主菜单
privatestaticStringreChoice()
Scannersc4=newScanner(System、in);
StringtempSelect;
for(;
){
System、out、println("
就是否要继续计算?
\n"
+"
[1]继续计算、[2]返回主菜单、\n"
+"
请输入选择【1-2】:
tempSelect=sc4、next();
if(tempSelect、equals("
)||tempSelect、equals("
{break;
else{System、err、println("
错误选项!
请重新选择!
//继续循环
}
returntempSelect;
运行结果如下:
①三角形的计算
②计算六边形:
③计算椭圆形:
教师签字__________
第三部分结果与讨论(可加页)
1、实验结果分析(包括数据处理、影响因素讨论、综合分析与结论等)
本例中的测试类与之前做的银行账号中的测试类运用的思想相同。
实验中因为考虑各种形状计算面积与周长参数个数不同的问题,所以想的比较复杂,其实可以忽略这个问题,在接口Shape的方法中不定义参数,在三角形类,椭圆形类以及六边形类中可以直接使用类中的实例变量进行计算,这样在实现计算的同时也可减小代码的复杂度。
因为三角形有多种计算方式,所以程序中对于不同的三角形,在创建实例的时候使用了不同的构造函数。
二、小结、建议及体会
虽然只就是一个简单的程序设计题,但在做的过程中要尽量考虑现实中的情况,考虑多种输入可能,考虑各种可能存在的找错(比如输入的不就是数值、或输入的数值小于0、或输入的三条边不能构成三角形等等)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 实验 接口