武汉理工Java试验报告二Word文件下载.docx

上传人:b****2 文档编号:14528074 上传时间:2022-10-23 格式:DOCX 页数:11 大小:17.90KB
下载 相关 举报
武汉理工Java试验报告二Word文件下载.docx_第1页
第1页 / 共11页
武汉理工Java试验报告二Word文件下载.docx_第2页
第2页 / 共11页
武汉理工Java试验报告二Word文件下载.docx_第3页
第3页 / 共11页
武汉理工Java试验报告二Word文件下载.docx_第4页
第4页 / 共11页
武汉理工Java试验报告二Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

武汉理工Java试验报告二Word文件下载.docx

《武汉理工Java试验报告二Word文件下载.docx》由会员分享,可在线阅读,更多相关《武汉理工Java试验报告二Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

武汉理工Java试验报告二Word文件下载.docx

组别

同组者

实验日期

2017年

10月2

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

1.编写一个抽象的二维几何体接口

Geometricinteface,其中定义求周长和求面积方法,再编写三角形类其实现

Geometricinteface接口,有三个边长属性,编写矩形类继承Geometricinterface接口,有长和宽属性。

要求输入相关属性值后,可以求得相应的周长值和面积值。

附:

求三角形面积

1

s二如9一如一怖一4

L

其中a,b,c分别为三角形三边长,p为半周长,

S为三角形的面积。

2.使用面向对象的思想编写计算器,改进第一次试验的第4题,实现加、减、乘、除操作。

其中包括一个运算抽象类Operation和各个运算的实现。

要求:

(1)使用封装;

(2)使用继承;

(3)使用多态。

(4)实现表达式的加、减、乘、除运算。

计算:

“3+(5*6-4)”

实现思路:

1)创建抽象类Operation及其子运算类;

2)利用数据结构堆栈的思想,解析表达式;

(选做,如果不能实现可以定义成员变量运

算数1(numA)和运算数2(numB))

3)编写测试类TestCalc进行验证。

二、实验内容与设计思想

1./*几何*/

(1)/*三角形类*/

publicclassTriangleimplementsGeomlnterface{

doublea,b,c;

〃构造方法

Triangle(intx,inty,intz)

{

a=x;

b=y;

cf;

}

〃求周长

publicvoidperimeter()

System.out.println("

三角形的周长为

"

+(a+b+c));

〃求面积

publicvoidarea()

doublep=(a+b+c)/2;

doubleS;

S=Math.sqrt(p*(p-a)*(p-b)*(p-c));

三角形的面积为"

+S);

}

(2)长方形类类似三角形类,略。

(3)/*接口*/

interfaceGeomlnterface{

voidperimeter。

voidarea();

(4)/*主函数*/

publicclassmian{

^publ^^stat^jvoidmain(Strin^^args){^^^

//TODOAuto-generatedmethodstub

Squares=newSquare(4,5);

Trianglet=newTriangle(3,4,5);

s.perimeter();

s.area();

t.perimeter();

t.area();

2•计算器

(1)importjava.util.Scanner;

classoperator{

privatecharch;

operatorlast;

operatornext;

publicvoidsetCh(charx){

ch=x;

publicchargetCh(){

returnch;

abstractclassOperation{

doublenum1,num2,result;

abstractdoublegetResult();

classOperationaddextendsOperation{publicOperationadd(doublea,doubleb){

//TODOAuto-generatedconstructorstubnum1=a;

num2=b;

doublegetResult(){

returnnum1+num2;

classOperationsubextendsOperation{publicOperationsub(doublea,doubleb){

returnnum1-num2;

classOperationmulextendsOperation{publicOperationmul(doublea,doubleb){

returnnum1*num2;

classOperationdivextendsOperation{publicOperationdiv(doublea,doubleb){

returnnum1/num2;

}publicclassDemo2{

staticintjudge(charch1,charch2){

if(ch1=='

+'

){

switch(ch2){

case'

:

return-1;

•••

—default:

break;

-'

){switch(ch2){

*'

/'

('

if(ch2=='

)'

){return2;

}else{

return1;

if(ch仁='

){return0;

#'

return0;

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

请输入一个以#结尾的表达式:

);

^^Scannerscanner=newScanner(System.in);

Stringstr=scanner.next();

if(str.charAt(str」ength()-1)!

=35){

输入错误!

);

—return;

intflag仁0,flag2=0,flag3=0;

numbernum仁nuII,num2=nuII;

numberfirstnum=newnumber();

firstnum.setA(O);

operatorfirstoperator=newoperator。

;

firstoperator.setCh(#);

operatorop1=firstoperator,op2=nuII;

for(inti=0;

i<

str.length();

i++){

charch=str.charAt(i);

if(ch<

58&

&

ch>

47){

if(flag2==0){

if(firstnum.getA()==0){

firstnum.setA(ch-48);

num仁firstnum;

flag2=1;

num2=newnumber();

num2.setA(ch-48);

flag2=1;

num2.setA(num2.getA()*10+(ch-48));

}else{flag2=0;

op2=newoperator。

op2.setCh(ch);

flag仁judge(op1.getCh(),op2.getCh());

switch(flag1){

case-1:

switch(op1.getCh()){case'

num1.setA(new

Operationadd(num1.getA(),num2.getA()).getResult());

op2=null;

num2=null;

op1=op1」ast;

i--;

break;

numl.setA(new

Operationsub(num1.getA(),num2.getA()).getResult());

opl.setCh(ch);

num2=null;

}case'

{num1.setA(new

Operationmul(num1.getA(),num2.getA()).getResult());

op1.setCh(ch);

Operationdiv(num1.getA(),num2.getA()).getResult());

}break;

}case1:

{op1.next=op2;

op2」ast=op1;

op1=op2;

if(num2!

=null){num1.next=num2;

num2」ast=num1;

num1=num2;

case2:

■■■

case0:

case-2:

(2)/*number*/packagejava实验2;

classnumber{privatedoublea;

numberlast;

numbernext;

publicvoidsetA(doublex){a=x;

publicdoublegetA(){returna;

class

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

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

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