武汉理工Java实验报告(二)_第1页
武汉理工Java实验报告(二)_第2页
武汉理工Java实验报告(二)_第3页
武汉理工Java实验报告(二)_第4页
武汉理工Java实验报告(二)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生学号实验课成绩武汉理工大学学生实验报告书课程名称JAVA语言程序设计开课学院计算机科学与技术学院指导老师学生姓名专业班级20172018学年第一学期实验课程名称:JAVA语言程序设计实验项目名称类和对象实验成绩实验者专业班级名且另IJ同组者实验日期2017年10月2日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述).编写一个抽象的二维几何体接口Geometricinterface,其中定义求周长和求面积方法,再编写三角形类其实现Geometricinterface接口,有三个边长属性,编写矩形类继承Geometricinterface接口,有长和宽属性。要求输入相关属性值后

2、,可以求得相应的周长值和面积值。附:求三角形面积s-dp(p-瞰p-匚)其中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。.使用面向对象的思想编写计算器,改进第一次试验的第4题,实现加、减、乘、除操作。其中包括一个运算抽象类Operation和各个运算的实现。要求:(1)使用封装;(2)使用继承;(3)使用多态。(4)实现表达式的加、减、乘、除运算。计算:“3+(5*6-4)”实现思路:1)创建抽象类Operation及其子运算类;2)利用数据结构堆栈的思想,解析表达式;(选做,如果不能实现可以定义成员变量运算数1(numA)和运算数2(numB)3)编写测试类TestCalc进

3、行验证。二、实验内容与设计思想1./*几何*/(1)/*三角形类*/publicclassTriangleimplementsGeomlnterfacedoublea,b,c;构造方法Triangle(intx,inty,intz)a=x;b=y;c=z;求周长publicvoidperimeter。System.out.println(m角形的周长为+(a+b+c);求面积publicvoidarea()doublep=(a+b+c)/2;doubleS;S=Math.sqrt(p*(p-a)*(p-b)*(p-c);System.out.println(m角形的面积为+S);(2)长方形类

4、类似三角形类,略。/*接口*/interfaceGeomlnterfacevoidperimeter。;voidarea();/*主函数*/publicclassmianpublicstaticvoidmain(String口args)/TODOAuto-generatedmethodstubSquares=newSquare(4,5);Trianglet=newTriangle(3,4,5);s.perimeter();s.area();t.perimeter();t.area();2.计算器importjava.util.Scanner;classoperatorprivatecharch

5、;operatorlast;operatornext;publicvoidsetCh(charx)ch=x;publicchargetCh()returnch;abstractclassOperationdoublenum1,num2,result;abstractdoublegetResult();classOperationaddextendsOperationpublicOperationadd(doublea,doubleb)/TODOAuto-generatedconstructorstubnum1=a;num2=b;doublegetResult()returnnum1+num2;

6、classOperationsubextendsOperationpublicOperationsub(doublea,doubleb)/TODOAuto-generatedconstructorstubnum1=a;num2=b;doublegetResult()returnnum1-num2;classOperationmulextendsOperationpublicOperationmul(doublea,doubleb)/TODOAuto-generatedconstructorstubnum1=a;num2=b;doublegetResult()returnnum1*num2;cl

7、assOperationdivextendsOperationpublicOperationdiv(doublea,doubleb)/TODOAuto-generatedconstructorstubnum1=a;num2=b;doublegetResult()returnnum1/num2;publicclassDemo2staticintjudge(charch1,charch2)if(ch1=+)switch(ch2)case+:return-1;default:break;if(ch1=-)switch(ch2)if(ch1=*)switch(ch2)if(ch1=/)switch(c

8、h2)1)if(ch2=)return2;elsereturn1;if(ch1=)return0;if(ch1=#)switch(ch2)return0;publicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubSystem.out.println(请输入一个以#结尾的表达式:);Scannerscanner=newScanner(System.in);Stringstr=scanner.next();if(str.charAt(str.length()-1)!=35)System.out.println(nn);return;i

9、ntflag1=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;istr.length();i+)charch=str.charAt(i);if(ch47)if(flag2=0)if(firstnum.getA()=0)firstnum.setA(ch-48);n

10、um1=firstnum;flag2=1;elsenum2=newnumber();num2.setA(ch-48);flag2=1;elsenum2.setA(num2.getA()*10+(ch-48);flag2=1;elseflag2=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

11、=null;num2=null;op1=op1.last;i-;break;case-:num1.setA(newOperationsub(num1.getA(),num2.getA().getResult();opl.setCh(ch);op2=null;num2=null;op1=op1.last;i-;break;case*:num1.setA(newOperationmul(num1.getA(),num2.getA().getResult();opl.setCh(ch);op2=null;num2=null;op1=op1.last;i-;break;case/:num1.setA(

12、newOperationdiv(num1.getA(),num2.getA().getResult();opLsetCh(ch);op2=null;num2=null;op1=op1.last;i-;break;break;case1:op1.next=op2;op2.last=op1;op1=op2;if(num2!=null)num1.next=num2;num2.last=num1;num1=num2;break;一case2:.break;case0:break;21case-2:,(2)/*number*/packagejava实验2;classnumberprivatedouble

13、a;numberlast;numbernext;publicvoidsetA(doublex)a=x;publicdoublegetA()returna;classoperatorprivatecharch;operatorlast;operatornext;publicvoidsetCh(charx)ch=x;publicchargetCh()returnch;l验使用环境iJAVAOxygen第二部分:实验调试与结果分析(可加页)第二部分:实验调试与结果分析(可加页)调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)=:terininaledmianJavaApp矩弓”.田长为9定号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论