武汉理工Java实验报告二Word文档格式.docx

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

武汉理工Java实验报告二Word文档格式.docx

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

武汉理工Java实验报告二Word文档格式.docx

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

1.编写一个抽象的二维几何体接口Geometricinterface,其中定义求周长和求面积方法,再编写三角形类其实现Geometricinterface接口,有三个边长属性,编写矩形类继承Geometricinterface接口,有长和宽属性。

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

附:

求三角形面积

其中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)/*三角形类*/

publicclassTriangleimplementsGeomInterface

{

doublea,b,c;

//构造方法

Triangle(intx,inty,intz)

{

a=x;

b=y;

c=z;

}

//求周长

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)/*接口*/

interfaceGeomInterface{

voidperimeter();

voidarea();

}

(4)/*主函数*/

publicclassmian{

publicstaticvoidmain(String[]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-generatedconstructorstub

num1=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;

}

}

-'

*'

/'

('

if(ch2=='

)'

return2;

}else{

return1;

}

return0;

#'

return0;

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

"

);

Scannerscanner=newScanner(System.in);

Stringstr=scanner.next();

if(str.charAt(str.length()-1)!

=35){

System.out.println("

输入错误!

return;

intflag1=0,flag2=0,flag3=0;

numbernum1=null,num2=null;

numberfirstnum=newnumber();

firstnum.setA(0);

operatorfirstoperator=newoperator();

firstoperator.setCh('

operatorop1=firstoperator,op2=null;

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);

num1=firstnum;

flag2=1;

}else{

num2=newnumber();

num2.setA(ch-48);

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

}

flag2=0;

op2=newoperator();

op2.setCh(ch);

flag1=judge(op1.getCh(),op2.getCh());

switch(flag1){

case-1:

switch(op1.getCh()){

case'

num1.setA(newOperationadd(num1.getA(),num2.getA()).getResult());

op2=null;

num2=null;

op1=op1.last;

i--;

break;

num1.setA(newOperationsub(num1.getA(),num2.getA()).getResult());

op1.setCh(ch);

op1=op1.last;

i--;

num1.setA(newOperationmul(num1.getA(),num2.getA()).getResult());

num1.setA(newOperationdiv(num1.getA(),num2.getA()).getResult());

}

break;

case1:

{

op1.next=op2;

op2.last=op1;

op1=op2;

if(num2!

=null){

num1.next=num2;

num2.last=num1;

num1=num2;

}

case2:

...

case0:

case-2:

}

(2)/*number*/

package 

java实验2;

class 

number{

private 

double 

a;

number 

last;

next;

public 

void 

setA(double 

x){

a=x;

getA() 

return 

operator{

char 

ch;

operator 

setCh(char 

ch=x;

getCh() 

三、实验使用环境:

EclipseJAVAOxygen

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

1.

2.

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

1.程序运行成功,达到实验要求。

2.实验现象正常。

3.第二个实验难度较高,多次调试才正确运行。

三、实验小结、建议及体会

这次实验第二个题目实现较为复杂,写得时候思路不清晰,越写越混乱,以至于多次全部推翻重写,浪费了大量时间。

在写较复杂的程序时,先理清思路,找对数学方法显得至关重要。

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

当前位置:首页 > 人文社科 > 教育学心理学

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

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