您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 21自考JAVA语言程序设计(一)课后习题答案和源代码(第七章)
第七章7.1编写一个应用程序,绘制一个五角星。程序运行结果:源文件:Work7_1.javaimportjava.awt.*;importjavax.swing.*;/***7.1画一个五角星BR*@author黎明你好*/publicclassWork7_1{publicstaticvoidmain(Stringargs[]){JFramewin=newJFrame(第七章,第一题);win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);win.setBounds(50,50,210,250);win.add(newFiveStarCanvas(100),BorderLayout.CENTER);win.setVisible(true);win.validate();}}画板类源文件:FiveStarCanvas.java/***画板类,在上面画出五角星*@author黎明你好*/classFiveStarCanvasextendsCanvas{privatestaticfinallongserialVersionUID=1L;/**五角星外接圆的半径*/privateintradius;/***构造方法*@paramr-初始化外接圆半径*/publicFiveStarCanvas(intr){this.radius=r;}publicvoidpaint(Graphicsg){intax=radius;intay=0;intbx=(int)(radius*(1-Math.cos((18*Math.PI)/180)));intcx=(int)(radius*(1+Math.cos((18*Math.PI)/180)));intdx=(int)(radius*(1-Math.cos((54*Math.PI)/180)));intex=(int)(radius*(1+Math.cos((54*Math.PI)/180)));intby=(int)(radius*(1-Math.sin((18*Math.PI)/180)));intcy=(int)(radius*(1-Math.sin((18*Math.PI)/180)));intdy=(int)(radius*(1+Math.sin((54*Math.PI)/180)));intey=(int)(radius*(1+Math.sin((54*Math.PI)/180)));g.setColor(Color.RED);g.drawLine(dx,dy,ax,ay);g.drawLine(ax,ay,ex,ey);g.drawLine(ex,ey,bx,by);g.drawLine(bx,by,cx,cy);g.drawLine(cx,cy,dx,dy);g.setColor(Color.BLUE);g.drawOval(0,0,2*radius,2*radius);g.drawLine(radius,radius,ax,ay);g.drawLine(radius,radius,bx,by);g.drawLine(radius,radius,cx,cy);g.drawLine(radius,radius,dx,dy);g.drawLine(radius,radius,ex,ey);}}7.2用Graphics2D绘制一条抛物线,设抛物线方程的系数从图形界面输入。程序运行结果:frame源文件:ParabolaFrame.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/***7.2用Graphics2D画抛物线,抛物线方程的系数从图形界面输入.BR*@author黎明你好*/publicclassParabolaFrameextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateParabolaCanvascanvas;//画出抛物线的花瓣privateJTextFieldinputA_text,inputB_text,inputC_text;//三个文本框,接收方程系数privateJButtonconfirm_button;//确定按钮privateJLabeldisplay_label;privateJPanelpanel;//布局面板privatedoublea,b,c;//抛物线三个系数publicParabolaFrame(){super(第七章,第二题);a=1;b=0;c=0;panel=newJPanel();canvas=newParabolaCanvas(a,b,c);inputA_text=newJTextField(+a,3);inputB_text=newJTextField(+b,3);inputC_text=newJTextField(+c,3);confirm_button=newJButton(确定);display_label=newJLabel();panel.add(newJLabel(a=));panel.add(inputA_text);panel.add(newJLabel(b=));panel.add(inputB_text);panel.add(newJLabel(c=));panel.add(inputC_text);panel.add(confirm_button);panel.add(display_label);confirm_button.addActionListener(this);inputA_text.addActionListener(this);inputB_text.addActionListener(this);inputC_text.addActionListener(this);setLabel();this.add(panel,BorderLayout.NORTH);this.add(canvas,BorderLayout.CENTER);this.setBounds(50,50,800,600);this.setVisible(true);this.validate();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidactionPerformed(ActionEvente){try{a=Double.parseDouble(inputA_text.getText());b=Double.parseDouble(inputB_text.getText());c=Double.parseDouble(inputC_text.getText());}catch(NumberFormatExceptionEe){a=0;b=0;c=0;}canvas.set(a,b,c);canvas.repaint();setLabel();}publicvoidsetLabel(){Stringstr=方程:y=;str+=a==0?:(a==1?x^2:a+x^2);str+=b==0?:(a==0?(b==1?x:b+x):(b==1?+x:++b+x));str+=c==0?:(a==0&&b==0?c:++c);display_label.setText(str);}publicstaticvoidmain(Stringargs[]){newParabolaFrame();}}画抛物线的画板类:ParabolaCanvas.java/***画板类,在上面画抛物线*@author黎明你好*/classParabolaCanvasextendsCanvas{privatestaticfinallongserialVersionUID=1L;doublea,b,c;/**构造方法,抛物线初始状态*/publicParabolaCanvas(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;setBackground(newColor(100,240,240));}/***设置抛物线系数*@parama-二次项系数*@paramb-一次项系数*@paramc-常数项*/publicvoidset(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicvoidpaint(Graphicsg){Graphics2Dg2D=(Graphics2D)g;//画坐标系g2D.drawLine(0,300,600,300);//横线g2D.drawLine(300,0,300,600);//竖线中心坐标300,300g2D.drawLine(300,0,294,10);g2D.drawLine(300,0,306,10);//y轴箭头g2D.drawLine(600,300,590,294);g2D.drawLine(600,300,590,306);//x轴箭头g2D.drawLine(200,300,200,308);g2D.drawString(-5,197,320);g2D.drawLine(100,300,100,308);g2D.drawString(-10,97,320);g2D.drawLine(400,300,400,308);g2D.drawString(5,397,320);g2D.drawLine(500,300,500,308);g2D.drawString(10,497,320);g2D.drawLine(300,100,307,100);g2D.drawString(10,310,103);g2D.drawLine(300,200,307,200);g2D.drawString(5,310,203);g2D.drawLine(300,400,307,400);g2D.drawString(-5,310,403);g2D.drawLine(300,500,307,500);g2D.drawString(-10,310,503);g2D.drawString(0,0,305,318);g2D.drawString(y轴,310,15);g2D.drawString(x轴,580,290);for(inti=0;i600;i+=20){g2D.drawLine(i,300,i,303);g2D.drawLine(300,i,303,i);}//下面程序为画抛物线doublex0,y0,x1,y1,x2,y2,scale;x0=300;y0=0;scale=20.0;g2D.setColor(Color.RED);for(x1=-15;x115;x1+=0.001D){y1=a*x1*x1+b*x1+c;x2=x0+x1*scale;y2=y0+y1*scale;g2D.fillOval((int)x2,300-(int)y2,2,2);}}}7.3利用Graphics2D的平移,缩放,旋转功能。绘制一个六角星。程序运行结果:源文件:Work7_3.javaimportjava.awt.*;importjava.awt.geom.*;importjavax.swing.*;/***7.3利用Graphics2D的平移,缩放,旋转功能。绘制一个六角星。BR*@author黎明你好*/publicclassWork7_3extendsJFrame{privatestaticfinallongserialVersionUID=1L;publicWork7_3(){super(第七章,第三题);this.add(newSixStarCanvas(80
本文标题:21自考JAVA语言程序设计(一)课后习题答案和源代码(第七章)
链接地址:https://www.777doc.com/doc-5481564 .html