主观

阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内

 [说明]

 以下程序的功能时三角形、矩形和正方形的面积输出。

 程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。

 [Java程序]

 public class areatest {

 public static viod main(string args[]){

 Figure[]Figures={

 New triangle(2,3,3),new rectangle(5,8),new square(5)

 };

 for(int i=0; i<Figures.length;i++){

 system.out.println(Figures+"area="+Figures.getarea());

 }

 }

 }

 public abstract class figure {

 public abstract double getarea();

 }

 public class rectangle extends (1) {

 double height;

 double width;

 public rectangle (double height,double width){

 this.height=height;

 this.width=width;

 }

 public string tostring(){

 return"rectangle:height="+height+",width="+width+":";

 }

 public double getarea(){

 return (2) 

 }

 }

 public class square exends (3) 

 {

 public square(double width){

  (4);

 }

 public string tostring(){

 return"square:width="+width":";

 }

 }

 public class triangle entends (5) 

 {

 double la;

 double lb;

 double lc;

 public triangle(double la,double lb,double lc){

 this.la=la;this.lb=lb;this.lc=lc;

 }

 public string tostring()(

 return"triangle:sides="+la+","+lb+","+lc+":";

 }

 public double get area(){

 double s=(la+lb+lc)/2.0;

 return math.sqrt(s*(s-la)*(s-lb)*(s-lc));

 }

 }

参考答案
您可能感兴趣的试题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

 [说明]

 设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。

 本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。

 [C函数]

 int count(char*s,int start,int end)

   {inti,c=0,color=s[start],step=(start>end)?-1:1;

 for(i=start;s[i]==color;i+=step){

 if(step>0 && i>end || (1) ) break;

  (2) ;

 }

 return c;

 }

 void main()

 {  char t,s[120];

 int i,j,C,len,maxc,cut=0;

 printf("请输入环上代表不同颜色珠子字符串:");

 scanf("%s",s );

 len=strlen(s);

 for(i=maxc=0;i<len;i++){  /*尝试不同的剪开方式*/

 c=count(s,0,len-1);

 if(c<len) C+=count( (3));

 if(c>maxc){cut=i;maxc=c; )

 /*数组s的元素循环向左移动一个位置*/

 t=s[0];

 for(j=1;i<len;i++) (4);

  (5);

 }

 printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服