ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:109.17KB ,
资源ID:4281778      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4281778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(广东自考JAVA语言程序设计一课后习题答案和源代码第七章.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广东自考JAVA语言程序设计一课后习题答案和源代码第七章.docx

1、广东自考JAVA语言程序设计一课后习题答案和源代码第七章第七章 17.1 编写一个应用程序,绘制一个五角星。 17.2 用Graphics2D绘制一条抛物线,设抛物线方程的系数从图形界面输入。 37.3 利用Graphics2D的平移,缩放,旋转功能。绘制一个六角星。 77.4 编写画图程序。 107.5 输入二次曲线的系数,画出二次曲线 177.6. 写音乐播放器,只能播放wav,mid格式的。 24第七章7.1 编写一个应用程序,绘制一个五角星。程序运行结果:源文件:Work7_1.javaimport java.awt.*;import javax.swing.*;/* * 7.1 画一

2、个五角星 * author 黎明你好 */public class Work7_1 public static void main(String args) JFrame win = new JFrame(第七章,第一题); win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); win.setBounds(50, 50, 210, 250); win.add(new FiveStarCanvas(100), BorderLayout.CENTER); win.setVisible(true); win.validate(); 画板类源文件: F

3、iveStarCanvas.java/* * 画板类,在上面画出五角星 * author 黎明你好 */class FiveStarCanvas extends Canvas private static final long serialVersionUID = 1L; /* 五角星外接圆的半径 */ private int radius; /* * 构造方法 * param r - 初始化外接圆半径 */ public FiveStarCanvas(int r) this.radius = r; public void paint(Graphics g) int ax = radius;

4、int ay = 0; int bx = (int) (radius * (1 - Math.cos(18 * Math.PI) / 180); int cx = (int) (radius * (1 + Math.cos(18 * Math.PI) / 180); int dx = (int) (radius * (1 - Math.cos(54 * Math.PI) / 180); int ex = (int) (radius * (1 + Math.cos(54 * Math.PI) / 180); int by = (int) (radius * (1 - Math.sin(18 *

5、Math.PI) / 180); int cy = (int) (radius * (1 - Math.sin(18 * Math.PI) / 180); int dy = (int) (radius * (1 + Math.sin(54 * Math.PI) / 180); int ey = (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

6、, 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,

7、ex, ey); 7.2 用Graphics2D绘制一条抛物线,设抛物线方程的系数从图形界面输入。程序运行结果:frame源文件:ParabolaFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;/* * 7.2 用Graphics2D画抛物线,抛物线方程的系数从图形界面输入. * author 黎明你好 */public class ParabolaFrame extends JFrame implements ActionListener private static final long se

8、rialVersionUID = 1L; private ParabolaCanvas canvas;/ 画出抛物线的花瓣 private JTextField inputA_text, inputB_text, inputC_text; / 三个文本框,接收方程系数 private JButton confirm_button;/ 确定按钮 private JLabel display_label; private JPanel panel;/ 布局面板 private double a, b, c;/ 抛物线三个系数 public ParabolaFrame() super(第七章,第二题

9、); a = 1; b = 0; c = 0; panel = new JPanel(); canvas = new ParabolaCanvas(a, b, c); inputA_text = new JTextField( + a, 3); inputB_text = new JTextField( + b, 3); inputC_text = new JTextField( + c, 3); confirm_button = new JButton(确定); display_label = new JLabel(); panel.add(new JLabel(a = ); panel.a

10、dd(inputA_text); panel.add(new JLabel(b = ); panel.add(inputB_text); panel.add(new JLabel(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.

11、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); public void actionPerformed(ActionEvent e) try a = Double.pa

12、rseDouble(inputA_text.getText(); b = Double.parseDouble(inputB_text.getText(); c = Double.parseDouble(inputC_text.getText(); catch( NumberFormatException Ee ) a = 0; b = 0; c = 0; canvas.set(a, b, c); canvas.repaint(); setLabel(); public void setLabel() String str = 方程:y = ; str += a = 0 ? : (a = 1

13、? x2 : a + x2 ); 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); public static void main(String args) new ParabolaFrame(); 画抛物线的画板类:ParabolaCanvas.java/* * 画板类,在上面画抛物线 * author 黎明你好 */class Parabol

14、aCanvas extends Canvas private static final long serialVersionUID = 1L; double a, b, c; /* 构造方法,抛物线初始状态 */ public ParabolaCanvas(double a, double b, double c) this.a = a; this.b = b; this.c = c; setBackground(new Color(100, 240, 240); /* * 设置抛物线系数 * param a - 二次项系数 * param b - 一次项系数 * param c - 常数项

15、*/ public void set(double a, double b, double c) this.a = a; this.b = b; this.c = c; public void paint(Graphics g) Graphics2D g2D = (Graphics2D) g; / 画坐标系 g2D.drawLine(0, 300, 600, 300);/ 横线 g2D.drawLine(300, 0, 300, 600);/ 竖线 中心坐标300,300 g2D.drawLine(300, 0, 294, 10); g2D.drawLine(300, 0, 306, 10);

16、/ 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

17、, 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.

18、drawString(0,0, 305, 318); g2D.drawString(y轴, 310, 15); g2D.drawString(x轴, 580, 290); for (int i = 0; i 600; i += 20) g2D.drawLine(i, 300, i, 303); g2D.drawLine(300, i, 303, i); / 下面程序为画抛物线 double x0, y0, x1, y1, x2, y2, scale; x0 = 300; y0 = 0; scale = 20.0; g2D.setColor(Color.RED); for (x1 = -15;

19、x1 15; 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.javaimport java.awt.*;import java.awt.geom.*;import javax.swing.*;/* * 7.3 利用Graphics2D的平移,缩放,旋转功能。绘制一个六

20、角星。 * author 黎明你好 */public class Work7_3 extends JFrame private static final long serialVersionUID = 1L; public Work7_3() super(第七章,第三题); this.add(new SixStarCanvas(80), BorderLayout.CENTER); this.setBounds(50, 50, 400, 400); this.setVisible(true); this.validate(); this.setDefaultCloseOperation(JFra

21、me.EXIT_ON_CLOSE); public static void main(String args) new Work7_3(); 画六角形的画板类:SixStarCanvas.java/* * 画板类,在上面画出六角星 * 通过先画一个三角形,然后旋转6次,得到六角形 * author 黎明你好 */class SixStarCanvas extends Canvas private static final long serialVersionUID = 1L; /* 六角星外接圆的半径 */ private int radius; /* 一个三角形三个顶点的x点坐标集 */ p

22、rivate int xPoints; /* 一个三角形三个顶点的y点坐标集 */ private int yPoints; /* * 构造方法 * param r - 初始化外接圆半径 */ public SixStarCanvas(int r) this.radius = r; xPoints = new int r, 2 * r, (int) (3 * r / 2) ; yPoints = new int r, r, (int) (r - Math.sqrt(3) * r / 2) ; public void paint(Graphics g) Graphics2D g2D = (Gra

23、phics2D) g; BasicStroke bs = new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER); g2D.setStroke(bs); AffineTransform trans = new AffineTransform(); trans.translate(10, 10);/ 移动 trans.scale(2, 2);/ 放大 for (int i = 1; i = 6; i+) trans.rotate(60.0 * Math.PI / 180, radius, radius);/ 旋转 g2

24、D.setTransform(trans); g2D.drawPolygon(xPoints, yPoints, 3); 7.4 编写画图程序。程序运行结果:控制画板的窗口类源文件:PaintFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;/* * 7.4 编写画图程序。 * 控制画板的窗口类 * author 黎明你好 */public class PaintFrame extends JFrame implements ItemListener, ActionListener private

25、static final long serialVersionUID = 1L; /* 画板 */ private PaintCanvas canvas; /* 画笔端点装饰,无装饰、圆形装饰、方形装饰 */ private JToggleButton cap_butt, cap_round, cap_square; /* 橡皮 */ private JToggleButton eraser; /* 画笔大小 */ private JComboBox width_box; /* 选择颜色的按钮 */ private JButton selectColor; /* 单选按钮分组 */ priva

26、te ButtonGroup group; private JPanel panel; private String item; private int strokeWidth = 1, strokeCap = 0, strokeJoin = BasicStroke.JOIN_BEVEL; public PaintFrame() super(画图小程序); canvas = new PaintCanvas(); selectColor = new JButton( ); cap_butt = new JToggleButton(标准); cap_round = new JToggleButto

27、n(圆形); cap_square = new JToggleButton(方形); eraser = new JToggleButton(橡皮); panel = new JPanel(); group = new ButtonGroup(); item = new String20; for (int i = 0; i 20; i+) itemi = + (i + 1); width_box = new JComboBox(item); width_box.setEditable(true);/ 组合框可以输入 cap_butt.setSelected(true);/ 笔形,标准为开始默认

28、 canvas.setPenColor(Color.BLACK); selectColor.setBackground(Color.BLACK);/ 画笔颜色,开始为黑色 / 添加监控 width_box.addItemListener(this); width_box.addActionListener(this); selectColor.addActionListener(this); cap_butt.addItemListener(this); cap_round.addItemListener(this); cap_square.addItemListener(this); eraser.addItemListener(this); / 画笔形式单选按钮 group.add(cap_butt); group.add(cap_round); group.add(cap_square); group.add(eraser); / 添加按钮 panel.setLayout(new FlowLayout(); panel.setBorder(BorderFactory.createTitledBorder(设置区); panel.add(new JLabel(笔形:); panel.add(ca

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

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