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

下载本文档

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

文档简介

学生学号实验课成绩武汉理工大学

学生实验报告书课程名称JAVA语言程序设计开课学院计算机科学与技术学院指导老师学生姓名专业班级20232023学年第一学期实验课程名称:JAVA语言程序设计实验项目名称类和对象实验成绩实验者专业班级组别同组者实验日期2023年10月2日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述).编写一个抽象的二维几何体接口Geometricinterface,其中定义求周长和求面积方法,再编写三角形类其实现Geomelricinierface接口,有三个边长属性,编写矩形类继承Ge。metricinterface接口,有长和宽属性。规定输入相关属性值后,可以求得相应的周长值和面积值。附:求三角形面积s=\/p(p-a){p-b)(p-c)其中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。.使用面向对象的思想编写计算器,改善第一次实验的第4题,实现加、减、乘、除操作。其中涉及一个运算抽象类Operation和各个运算的实现。规定:(D使用封装;(2)使用继承;(3)使用多态。(4)实现表达式的加、减、乘、除运算。计算:“3+(5*6-4)”实现思绪:1)创建抽象类Operati。n及其子运算类;2)运用数据结构堆栈的思想,解析表达式;(选做,假如不能实现可以定义成员变量运算数l(numA)和运算数2(numB))3)编写测试类TestCa1c进行验证。二、实验内容与设计思想1./*几何*/(1)/*三角形类*/publicclassTriangleimplementsGeomlnterface(doublea,b,c;。〃构造方法»Triangle(intxjnty,intz)°{°a=x;ob=y;。笺二z;。}。〃求周长publievoidperimeter()USystem.ou/.print1n("三角形的周长为"+(a+b+c));)“/求面积叩ubIicvoidarea()(oodoublep=(a+b+c)/2;doubleS;S=Math.sgrr(p*(p-a)*(p-b)*(p-c));«System,om.primln("三角形的面积为"+S);°l(2)长方形类类似三角形类,略。/*接口*/interfaccGeomInterface{voidperimeter();voidarea();)/(主函数*/pub1icclassmian{publicstaticvoidmain(String[]args){a//TODOAuto—generatedmethodstub。Squares=newSquare(4.5);订rianglet=newTriangle(3,4,5);.perimeter();area();“l.perimeter();area();°)}.计算器(l)importjava.utiLScanner;classopcrator{aprivatecharch;operator1ast;operalornext;^publicvoidsetCh(charx){ch=x;)publicchargetCh(){returnch;})abstractc1assOperation{edoublenum1,num2,rcsu1t;fabstractdoublegetResuIt();}classOperationaddextendsOperation{叩ublieOperationadd(doub1ea,doubleb){TODOAuto—gencratedconstructorstub»nunil=a;num2=b;)doublegetResu1t(){oreturnnuml+num2:I)classOperationsubextendsOperation{^public0peralionsub(doublea,doub1eb){。〃TODOAuto-generatedconstructorstubum1=a;num2=b;°)»doub1egetResult(){areturnnuml-num2;I)classOperationmu1extendsOperation{pub1icOperalionmul(doublea,doub1eb){。//TODOAuto-generatedconstructorstubnuml=a;num2=b;0,doublegetResult(){。returnnuml*num2;))classOperationdivextendsOperation{叩ublic0perationdiv(doublea,doubleb){。//TODOAuto—generatedconstructorstubnuml=a;nuni2=b;°}。doub1egetRcsult(){returnnuml/num2;))publieclassDemo2{staticintjudge(charchi,charch2){0if(chl=='+'){。switch(ch2){~caseodooretum-1;°«...defau1t:。brcak:TOC\o"1-5"\h\z00|00}if(chl==/){。®switch(ch2){8...°}.if(ch1=='*'){gswitch(ch2){,if(ch1=—'/'){^switch(ch2){0O...00}01»if(ch1=='('){aif(ch2==')'){return2;aa}else{wooreturnI;OOfrO)000}°if(ch1==')'){oreturn0;00|if(chl==,#'){,switch(ch2){oreturn0;°lpublicstaticvoidmain(String[]args){o//TODOAuto-generatedmethods(ubSystem,out.print1n("请输入一个以一结尾的表达式:");Seannerscanner=ne\vSeanncr(System,in);。Stringstr=scanner.next();««if(str.charAt(str.1ength()-1)!=35){System.out.println("输入错误!");return;}aintflag1=O,flag2=0,f1ag3=0;numbernuml=nu11,nuin2=nu11;numbcrfirstnum=ncwnumber。;®firstnum.setA(0);operatorfirstoperator=newoperator();ofirstoperator.setCh('#');^operatoropl=firstoperator,op2=null;»for(inti=0;i<str.length();i++){aharch=str.charAt(i);。,if(chV58&&ch>47){Mif(flag2==0){aif(firstnum.getA()==0){。firstnum.setA(ch-48);a。onuml=firstnum;。oag2=1;。}else{。。wonum2=newnumber();。。&num2.setA(ch-48);。。。。flag2=1;)。g}e1se{aum2.setA(num2.getA()*10+(ch-48));。wf]ag2=1;aoo)。o®}else{。gflag2=0;<«sop2=newoperator();K)p2.setCh(ch);3gflagl=judge(opl.getCh(),op2.getCh());。。gswitch(flag1){ooocase-1:{。oswitch(op1.gctCh()){◎ggcase'+':{。onum1.setA(newOperationadd(num1.getA(),nurn2.getA()).getResu11());。。。gop2=null:。。num2=nu11;°。wooopl=opl.last;O8i--;8abreak;}。ocase{a。numl.seiA(newOperationsub(numI.gelA(),num2.getA()).getResult());000

000000000。0000。0p1.setCh(ch);。a&num2=nu11;3Mosaop1=op1.last;TOC\o"1-5"\h\z。«i—;0003os,obrcak;},gcase'*{。。。®nuni1.setA(newOperationmul(numl.getA(),num2.getA()).getResult());g。a。opl.setCh(ch):«。op2=nul1;a«num2=nuli;,<>op1=opl.last;000j•*goa。obreak;)g。case'/{num1.setA(ncwOpcrationdiv(num1.getA(),num2,ge(A()).getResuit());ooooMoopl.setCh(ch);op2=nu1I;s。。num2=nu11;g。a$opl=op1.last;TOC\o"1-5"\h\z88&01;\o"CurrentDocument"023。break;I00o}g»break;}case1:卜pl.next=op2;ex。。op2.1ast=op1:◎。op1=op2;TOC\o"1-5"\h\z。。®if(num2!=nu11){。。^numl.next=num2;az。。num2.last=num1:sg。。num1=num2;M0)®break;。。2case2:{0°...。。break;00}。case0:{TOC\o"1-5"\h\zg3...。^break;amo}g®case-2:{0000...3brcak;aoo|00|(2)/*number*/packagejava实验2;classnumber{Aprivatedoublea;numberlast;numbernext;publicvoidsctA(doublcx)ga二x;)publicdoublegetA()Cr

温馨提示

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

评论

0/150

提交评论